如何 运行 多个时间序列中 python 的脚本?
How to run a script in python on multiple time series?
我正在尝试 运行 使用 the StatsModels library 以下脚本:
cadf = ts.adfuller(df1.spread)
print 'Augmented Dickey Fuller test statistic =',cadf[0]
print 'Augmented Dickey Fuller p-value =',cadf[1]
print 'Augmented Dickey Fuller 1%, 5% and 10% test statistics =',cadf[4]
在我的数据框上,我的数据框目前包含多个时间序列 (200+),我想 运行 在每个时间序列上使用上述脚本。以下是数据框的示例:
Sn.No A-B B-C A-C
1 10 11.15 13.22
2 11 12.36 14.75
3 10.75 11.54 14.21
所以,我想 运行 A-B、B-C 和 A-C 上的 ADF 测试脚本,并为每个测试 statistic/output。
要单独访问列,而不是访问整个数据框,基本上:
df1['A-B']
将为您提供第一列。在列表中将它们四舍五入:
columns = ['A-B', 'B-C', 'A-C']
如果您有 200 多个列,您应该以不同的方式访问它们。假设你有 200 个。这样的事情应该是可能的:
columns = range(200)
在这种情况下,您不需要下面的 xrange
函数,但像这样:
df1.iloc(column)
我之所以知道这是因为我查阅了the source code for dataframe in the statmodels library, which apparently is a Pandas dataframe。假设您必须像上例那样输入点差,将输出统计信息收集在一个
使用列表理解表达式列出。
cadfs = [ts.adfuller(df1[column].spread) for column in columns]
相反,如果您通过数字索引访问:
cadfs = [ts.adfuller(df1.iloc(column).spread) for column in columns]
为了让代码更
可读使用局部常量。
TEST = 0
P = 1
PERCENTILES = 4
values = [cadfs[column][TEST] for column in xrange(columns)]
ps = [cadfs[column][P] for column in xrange(columns)]
pct = [cadfs[column][PERCENTILES] for column in xrange(columns)]
print 'Augmented Dickey Fuller Test'
print 'ADF Test Statistics - p - Percentiles 1%, 5% and 10%'
print values, ps, pct
我正在尝试 运行 使用 the StatsModels library 以下脚本:
cadf = ts.adfuller(df1.spread)
print 'Augmented Dickey Fuller test statistic =',cadf[0]
print 'Augmented Dickey Fuller p-value =',cadf[1]
print 'Augmented Dickey Fuller 1%, 5% and 10% test statistics =',cadf[4]
在我的数据框上,我的数据框目前包含多个时间序列 (200+),我想 运行 在每个时间序列上使用上述脚本。以下是数据框的示例:
Sn.No A-B B-C A-C
1 10 11.15 13.22
2 11 12.36 14.75
3 10.75 11.54 14.21
所以,我想 运行 A-B、B-C 和 A-C 上的 ADF 测试脚本,并为每个测试 statistic/output。
要单独访问列,而不是访问整个数据框,基本上:
df1['A-B']
将为您提供第一列。在列表中将它们四舍五入:
columns = ['A-B', 'B-C', 'A-C']
如果您有 200 多个列,您应该以不同的方式访问它们。假设你有 200 个。这样的事情应该是可能的:
columns = range(200)
在这种情况下,您不需要下面的 xrange
函数,但像这样:
df1.iloc(column)
我之所以知道这是因为我查阅了the source code for dataframe in the statmodels library, which apparently is a Pandas dataframe。假设您必须像上例那样输入点差,将输出统计信息收集在一个 使用列表理解表达式列出。
cadfs = [ts.adfuller(df1[column].spread) for column in columns]
相反,如果您通过数字索引访问:
cadfs = [ts.adfuller(df1.iloc(column).spread) for column in columns]
为了让代码更 可读使用局部常量。
TEST = 0
P = 1
PERCENTILES = 4
values = [cadfs[column][TEST] for column in xrange(columns)]
ps = [cadfs[column][P] for column in xrange(columns)]
pct = [cadfs[column][PERCENTILES] for column in xrange(columns)]
print 'Augmented Dickey Fuller Test'
print 'ADF Test Statistics - p - Percentiles 1%, 5% and 10%'
print values, ps, pct