如何计算 python 中的季节性?
How to compute the seasonality in python?
我必须计算季节性,但我的图表给出了错误的结果。此数据集中的季节性是季度性的(频率为 4 个月)
振幅为 1.2。如果有任何帮助,我将不胜感激!
它应该是这样的:
我的图表:
import numpy as np
x_axis = np.arange(0, 200)
seasonality = np.zeros(len(x_axis))
for i, _ in enumerate(x_axis):
seasonality[i] = 1.2 * np.sin(2 * np.pi * x_axis[i] / 4)
plt.figure(figsize=(14,5))
plt.plot(x_axis[0:13], seasonality[0:13])
此代码已被教授使用,因此是正确的。但他举的例子不同。可能是句号不对。
您没有足够的 X 来获得平滑的曲线。使用np.linspace
足够的点(num
应该比开始和停止之间的差异大得多)。
此外,使用矢量代码而不是循环来计算点:
import numpy as np
import matplotlib.pyplot as plt
x_axis = np.linspace(0, 12, num=200)
seasonality = 1.2 * np.sin(2 * np.pi * x_axis / 4)
plt.figure(figsize=(14,5))
plt.plot(x_axis, seasonality)
我必须计算季节性,但我的图表给出了错误的结果。此数据集中的季节性是季度性的(频率为 4 个月) 振幅为 1.2。如果有任何帮助,我将不胜感激!
它应该是这样的:
我的图表:
import numpy as np
x_axis = np.arange(0, 200)
seasonality = np.zeros(len(x_axis))
for i, _ in enumerate(x_axis):
seasonality[i] = 1.2 * np.sin(2 * np.pi * x_axis[i] / 4)
plt.figure(figsize=(14,5))
plt.plot(x_axis[0:13], seasonality[0:13])
此代码已被教授使用,因此是正确的。但他举的例子不同。可能是句号不对。
您没有足够的 X 来获得平滑的曲线。使用np.linspace
足够的点(num
应该比开始和停止之间的差异大得多)。
此外,使用矢量代码而不是循环来计算点:
import numpy as np
import matplotlib.pyplot as plt
x_axis = np.linspace(0, 12, num=200)
seasonality = 1.2 * np.sin(2 * np.pi * x_axis / 4)
plt.figure(figsize=(14,5))
plt.plot(x_axis, seasonality)