【问题标题】:Test for autocorrelation on a number of stock returns对多个股票收益的自相关性检验
【发布时间】:2018-10-30 16:35:38
【问题描述】:

我想对股票收益数据集进行自相关测试(比如 Durbin Watson)。特别是,我有一个包含季度股票收益的数据集,因此每个季度有 1 个观察值,它代表该季度收益公告后 1 天的股价收益。 2 只股票和 3 个季度的一个最小示例如下所示:

data = [{'date': '3/22/18', 'return': 1},{'date': '3/22/18', 'return': 1}, 
{'date': '6/22/18', 'return': 3},{'date': '6/22/18', 'return': 3},
{'date': '9/22/18', 'return': 2},{'date': '9/22/18', 'return': 2}]
df = pd.DataFrame(data, index=['s1', 's2','s1','s2','s1','s2'])

        date  return
 s1  3/22/18       1
 s2  3/22/18       1
 s1  6/22/18       3
 s2  6/22/18       3
 s1  9/22/18       2
 s2  9/22/18       2

由于我有大量股票,我认为对每只股票单独执行测试,然后对每只股票进行一系列 DW 测试统计数据可能是有意义的。说这样的话:

  s1 0.453
  s2 1.593
  s3 3.453

我正在考虑使用:

statsmodels.stats.stattools.durbin_watson(resids, axis=0)

但我不太确定如何继续获取上述数组。非常感谢任何帮助。

【问题讨论】:

    标签: python pandas correlation


    【解决方案1】:

    按组使用 DW 测试的一种方法如下。 我正在重用您的数据生成过程,将系列添加为列,进行 groupby 并直接应用测试

    data = [{'date': '3/22/18', 'return': 1},{'date': '3/22/18', 'return': 1}, 
    {'date': '9/22/18', 'return': 3.0},{'date': '9/22/18', 'return': 3},
    {'date': '6/22/18', 'return': 2},{'date': '6/22/18', 'return': 2}]
    df = pd.DataFrame(data, index=['s1', 's2','s1','s2','s1','s2'])
    df.reset_index(inplace=True)
    df.groupby('index')['return'].apply(lambda x: 
    statsmodels.stats.stattools.durbin_watson(x, axis=0))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-26
      • 1970-01-01
      • 1970-01-01
      • 2018-11-25
      • 2021-03-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多