我想在一个股票收益数据集上进行一个自相关测试(比如说Durbin Watson)。特别是,我有一个季度股票收益的数据集,所以每个季度都有一个观察值,它表示该季度公布收益后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

我想用:
状态模型.STATS.STATORKORK.Dur宾尼沃森(ResiDS,Axess=0)
但我不太确定如何获得上述数组。任何帮助都是非常感谢的。

最佳答案

按组使用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))

python - 测试大量股票 yield 的自相关-LMLPHP

关于python - 测试大量股票 yield 的自相关,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50441751/

10-12 18:11