我是编程语言的新手,我已经选择了Python来回溯测试交易策略(因为我听说它相对简单)。我在学习基础知识方面取得了一些进展,但是我目前仍然坚持在时间序列数据帧上执行ADFuller测试。
This is how my Dataframe looks
现在我需要在列上运行ADF测试 - “A-Btd”,“A-Ctd”等等(我有66列像这样)。我想得到每个的测试统计/输出它们。
我厌倦了cadfs = [ts.adfuller(df1)]
这样的行。由于我缺乏专业知识,因此无法根据我的数据框架调整代码。
如果我错过了一些我必须提供的重要信息,我会提前道歉。请留下评论,我会尽快提供。
提前多多感谢!
答案 0 :(得分:1)
如果你必须为这么多人做,我会尝试将结果放在一个字典中,如下所示:
import statsmodels.tsa.stattools as tsa
df = ... #load your dataframe
adf_results = {}
for col in df.columns.values: #or edit this for a subset of columns first
adf_results[col] = tsa.adfuller(df[col])
显然可以根据需要指定其他设置,例如tsa.adfuller(df[col], autolag='BIC')
。或者,如果您不想要所有输出,而只是解析每一列以查明它是否静止,则测试统计信息是adfuller()
返回的元组中的第一个条目,因此您可以使用{ {1}}并根据您的阈值测试它以获得布尔结果,然后将其作为您的字典中的值。