我想在股票回报数据集上进行一次自相关测试(比如Durbin )。特别是,我有一个季度股票回报率的数据集,所以每个季度都有一个观察数据,它代表了该季度收益公告后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)
但是,我不太确定如何获得如上所述的数组。任何帮助都是非常感谢的。
发布于 2018-05-21 04:13:30
按组使用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))

https://stackoverflow.com/questions/50441751
复制相似问题