【发布时间】:2019-02-12 15:34:39
【问题描述】:
我在 python 中实现了一个函数来计算时间序列在特定滞后 k 处的自相关。它是在某些时间序列可能不是平稳的假设下实现的。 但是我发现对于其中一些我得到的值大于 1,特别是在最后的滞后。所以我想我一定是计算错了。
我正在执行以下操作:
对于与滞后序列相对应的术语,我正在计算从滞后 k 开始的平均值和标准偏差。
我在 python 中实现了以下代码,它计算特定滞后 k 的自相关:
def custom_autocorrelation(x, lag = 12):
n = len(x)
std = x.std()
mu = x.mean()
autocov = 0
mu_lag = x[lag:].mean()
std_lag = x[lag:].std()
for j in range(n-lag):
autocov += (x[j] - mu)*(x[j+lag] - mu_lag)
autocorr = autocov/(std*std_lag*(n-lag))
return autocorr
例如,我尝试使用以下序列,对于 k = 12,获得 1.03 的系数:
np.array([20623., 11041., 5686., 2167., 2375., 2057., 3141., 504.,
152., 6562., 8199., 15103., 16632., 7190., 6987., 2652.,
1949., 2223., 1703., 2163., 1850., 6932., 5932., 13124.,
14846., 7850., 4526., 1277., 1036., 1500., 1648., 1384.,
1446., 3477., 6818., 12446., 9734.])
任何帮助将不胜感激!
【问题讨论】:
-
嗨@AlexanderMcFarlane 抱歉,如果在某些方面似乎不太清楚。让我知道您对问题表述有什么疑问。
-
我认为你的问题在于手段和标准开发:你有方程的来源吗?我怀疑您的问题是理论/概念问题,而不是编码
-
@AlexanderMcFarlane 是的,我也这么认为。我通过计算非归一化自相关(en.wikipedia.org/wiki/Autocorrelation#Signal_processing)与一些 python 库进行了比较,结果是相同的。所以肯定跟这个有关
-
是的@AlexanderMcFarlane itfeature.com/time-series-analysis-and-forecasting/…
-
这似乎不是同一个方程式?
标签: python time-series