我有一个开发人员创建了一个 python 脚本来确定几个数据集的格兰杰因果关系,这些数据集大约是 3 年的日常数据(每个时间序列大约 1100 个数据点)。该脚本似乎运行良好,但我们不确定应该选择哪个 MaxLag。我们的目标是确定可能的因果关系并确定因果关系中的滞后时间(1 天、2 天、7 天、14 天等)。显然,当我们将 maxlag 数字从 1 更改为 15 时,我们会得到非常不同的数字。请参阅下面我所指的代码部分。
granger_test_result = grangercausalitytests(data[:, 1::-1], maxlag=12, verbose=False)
optimal_lag = -1
F_test = -1.0
for key in granger_test_result.keys():
_F_test_ = granger_test_result[key][0]['params_ftest'][0]
if _F_test_ > F_test:
F_test = _F_test_
optimal_lag = key
return optimal_lag
据我了解,MaxLag 越高,对时间序列进行的“分析”就越多,这会导致 MaxLag 数字越高,因果关系就越强。这似乎很有帮助,但前提是我们知道因果关系的实际“滞后”是什么。