constant_all = [38.315546998853549,40.187217618535399,43.71380567455396,45.450748920811293,50.112269986599735,59.275158665010736,65.979556682432815,106.81142772445702,122.61124737594076,160.38976378829483,109.69662873794118,86.785774468513864,73.201627114685436,62.980558157294979,60.149903740134562,54.010569668890867,54.657627915195405,57.065262050299623,59.576109894133168,61.568376379726971,64.51074294474725]
我得到了如上所列的列表。然后我使用cadf = ts.adfuller(constant_all)
运行adfuller测试,然后我想通过cadf[0]
访问p值。
然而,我总是零。我做错了什么?
答案 0 :(得分:0)
根据the documentation,cadf[0]
是测试统计信息,而cadf[1]
是 p - 值,在您的情况下,约为0.959。
为了便于参考,我们还要添加高和低 p - 值示例:
import statsmodels.tsa.stattools as ts
import numpy as np
# Generate random residuals
np.random.seed(0)
errors = np.random.normal(0, 1, 1000)
# Create AR(1) samples for models with and without unit roots
x_unit_root = [0]
x_no_unit_root = [0]
for i in range(len(errors)):
x_unit_root.append(x_unit_root[-1] + errors[i])
x_no_unit_root.append(0.9*x_no_unit_root[-1] + errors[i])
# Calculate Augmented Dickey--Fuller p-values
ts.adfuller(x_unit_root)[1], ts.adfuller(x_no_unit_root)[1]
# (0.89251931327396528, 3.8562004970538103e-06)