如何计算 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)