首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有可能对58行和(时间序列)和10467列的大型GDP数据进行向量自回归分析?

是否有可能对58行和(时间序列)和10467列的大型GDP数据进行向量自回归分析?
EN

Stack Overflow用户
提问于 2019-09-19 07:18:24
回答 1查看 3.8K关注 0票数 2

我有一个很大的GDP数据集,我试图在它上运行一个VAR模型。它包含世界上所有国家的48个国内生产总值指标,共计194项。因此,每个国家都有自己的指标价值。这意味着每个国家都有自己的48栏。时间序列从1950年到2017年不等。每个国家的指标值。所以这是一个相当大的数据集。因为这是我在python中用于var建模的第一个代码。我在这个过程中有很多问题。

我试图在数据集上运行格兰杰因果关系测试,但是这个错误外挂包含inf或nans。

代码语言:javascript
复制
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:局外人包含inf或nans

EN

回答 1

Stack Overflow用户

发布于 2019-09-19 07:30:22

从您的代码中,我只能猜测您在您的数据集中丢失了值(这并不令人惊讶:自1950年以来,我预计每年都不会为小国提供48个不同的GDP指标)。

您应该找到一种策略来处理这些缺失的值。这显然不是一项容易的任务。在各种可能性中:

(naive)

  • Linearly用列的平均值替换
  • (很难知道是否相关)
  • 删除所有列或所有缺少值的行(残酷)

其他一些方法更微妙,但也更难到位。我相信你可以用关键字missing values在网上找到它们。祝你好运!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58005681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档