测试一些股票的自相关 returns
Test for autocorrelation on a number of stock returns
我想对股票 returns 的数据集进行自相关测试(例如 Durbin Watson)。特别是,我有一个包含季度股票 return 的数据集,因此每个季度有 1 个观察值,代表该季度收益公告后 1 天的股价 return。对于 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(残基,轴=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))
我想对股票 returns 的数据集进行自相关测试(例如 Durbin Watson)。特别是,我有一个包含季度股票 return 的数据集,因此每个季度有 1 个观察值,代表该季度收益公告后 1 天的股价 return。对于 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(残基,轴=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))