gpt4 book ai didi

python - 是否可以对具有 58 行、(时间序列)和 10467 列的大型 GDP 数据运行向量自回归分析?

转载 作者:太空宇宙 更新时间:2023-11-03 20:23:28 32 4
gpt4 key购买 nike

我有一个大型 GDP 数据集,我正在尝试在其上运行 VAR 模型。它包含了世界各国48个GDP指标,总计194个。所以每个国家都有自己的指标值。这意味着每个国家都有自己的 48 个专栏。时间序列从 1950 年到 2017 年。每个国家都有指标值。所以这是一个相当大的数据集。因为这是我在 python 中进行 var 建模的第一个代码。我在这个过程中遇到了多个问题。

我尝试对数据集运行格兰杰因果关系测试,但此错误 exog 包含 inf 或 nans。

from statsmodels.tsa.stattools import grangercausalitytests
maxlag=12

test = 'ssr-chi2test'

def grangers_causality_matrix(data, variables, test = 'ssr_chi2test', verbose=False):

dataset = pd.DataFrame(np.zeros((len(variables), len(variables))), columns=variables, index=variables)

for c in dataset.columns:
for r in dataset.index:
test_result = grangercausalitytests(data[[r,c]], maxlag=maxlag, verbose=False)
p_values = [round(test_result[i+1][0][test][1],4) for i in range(maxlag)]
if verbose: print(f'Y = {r}, X = {c}, P Values = {p_values}')

min_p_value = np.min(p_values)
dataset.loc[r,c] = min_p_value

dataset.columns = [var + '_x' for var in variables]

dataset.index = [var + '_y' for var in variables]

return dataset

grangers_causality_matrix(dataset, variables = dataset.columns)

MissingDataError: exog contains inf or nans

最佳答案

根据您的代码,我只能猜测您的数据集中缺少值(这并不奇怪:我不希望自 1950 年以来每年都有 48 个小国家可用的不同 GDP 指标)。

您应该找到一种策略来处理这些缺失的值。这显然不是一件容易的事。其中的可能性:

  • 将它们替换为该列的平均值(简单)
  • 对它们进行线性回归(很难知道它是否相关)
  • 删除所有包含缺失值的列或所有行(残酷)

其他一些方法更微妙,但也更难实现。我确信您可以使用关键字缺失值在网上找到它们。祝你好运!

关于python - 是否可以对具有 58 行、(时间序列)和 10467 列的大型 GDP 数据运行向量自回归分析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58005681/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com