【发布时间】:2019-09-19 03:46:59
【问题描述】:
【问题讨论】:
-
你得到了什么?
-
这里有很多错误,1) 你对
np.sum的使用没有按照你的想法做,2) 每当i == 2你的'demoninator == 0` 会抛出一个@ 987654327@除以0
标签: python function numpy time-series autocorrelation
【问题讨论】:
np.sum 的使用没有按照你的想法做,2) 每当i == 2 你的'demoninator == 0` 会抛出一个@ 987654327@除以0
标签: python function numpy time-series autocorrelation
每个定义的第一个元素的自相关为 1.0。对于其余元素,我们使用列表推导(请注意,问题中的公式假定索引从 1 到 T,而 python 数组是基于 0 的):
mean = np.mean(x)
denominator = np.sum((x-mean)**2)
[1.0] + [np.sum((x[j:]-mean) * (x[:-j]-mean)) / denominator for j in range(1, len(x))]
【讨论】:
[1.0] 代表什么?它的目的是什么?
lag = 0 的自相关。当您解决问题中给出的 k = 0 公式时,您会看到得到 1.0。
x[:-j]) 变为 x[:-0],这是一个空数组,因为 python 在 x[:0] 之间没有区别(最多不包括第 0 个)元素)和x[:-0],我们需要将其解释为从末尾开始的第0个元素(=整个数组),但python将其视为x[:0]。因此,我们将第一个元素设置为先验已知值 1.0,而不是计算它。