statsmodels adfuller() 中使用的回归方法?
Regression Method Used in statsmodels adfuller()?
adfuller()
中使用的回归方法是什么?我正在对时间序列执行增强的 dickey fuller 测试,并且正在尝试两种不同的方法。
首先,我使用 pandas.diff()
获取价格变化 dy
。然后我将原始时间序列作为自变量 y
以及 dy
作为依赖变量传递给 statsmodels.OLS(dy,y)
并获得结果。然后,我提取斜率参数 model.params[1]
和斜率参数的标准误差 model.bse[1]
。这些项的商是我称之为 DF = model.params[1]/model.bse[1]
的 Dickey Fuller 检验统计量。
其次,我将奇异时间价格序列传递到 adfuller()
中:
adfstat, pvalue, critvalues, resstore = ts.adfuller(y.y,regression='c',store=True,regresults=True)
现在,为了获得 Dickey Fuller 检验统计数据,我只需通过
DF = resstore.tvalues[1]
使用 OLS 我得到:
DF = -1.81495580198
使用 adfuller():
DF = -1.56386414181
我想知道这两种方法有什么区别? adfuller() 是否在内部执行与 OLS 不同的线性回归?根据我从中获取示例的一本书,我观察到 OLS 的结果无可否认是正确的。但我更喜欢使用 adfuller(),因为它提供了测试统计的临界值作为输出的一部分。此外,adfuller() 结果似乎有很多回归系数:
print resstore.resols.params ==>
[-0.00491391 0.02366782 -0.00295179 0.01354619 0.06399901 -0.06018851
-0.00328142 -0.03876784 0.02934003 -0.10224276 0.00227549 0.01042279
-0.04627873 0.05503934 -0.02707106 0.02664511 -0.02428741 0.04894767
-0.06206492 0.00508655]
我通过获取回归线的斜率来确定均值回归的半衰期。这里看起来 adfuller()
正在计算 20 阶回归?这似乎不对。也许我做错了?有人可以阐明 adfuller()
吗?
这可以通过在 adfuller() 的输入中设置 maxlag=1 来解决
adfuller()
中使用的回归方法是什么?我正在对时间序列执行增强的 dickey fuller 测试,并且正在尝试两种不同的方法。
首先,我使用 pandas.diff()
获取价格变化 dy
。然后我将原始时间序列作为自变量 y
以及 dy
作为依赖变量传递给 statsmodels.OLS(dy,y)
并获得结果。然后,我提取斜率参数 model.params[1]
和斜率参数的标准误差 model.bse[1]
。这些项的商是我称之为 DF = model.params[1]/model.bse[1]
的 Dickey Fuller 检验统计量。
其次,我将奇异时间价格序列传递到 adfuller()
中:
adfstat, pvalue, critvalues, resstore = ts.adfuller(y.y,regression='c',store=True,regresults=True)
现在,为了获得 Dickey Fuller 检验统计数据,我只需通过
DF = resstore.tvalues[1]
使用 OLS 我得到:
DF = -1.81495580198
使用 adfuller():
DF = -1.56386414181
我想知道这两种方法有什么区别? adfuller() 是否在内部执行与 OLS 不同的线性回归?根据我从中获取示例的一本书,我观察到 OLS 的结果无可否认是正确的。但我更喜欢使用 adfuller(),因为它提供了测试统计的临界值作为输出的一部分。此外,adfuller() 结果似乎有很多回归系数:
print resstore.resols.params ==>
[-0.00491391 0.02366782 -0.00295179 0.01354619 0.06399901 -0.06018851
-0.00328142 -0.03876784 0.02934003 -0.10224276 0.00227549 0.01042279
-0.04627873 0.05503934 -0.02707106 0.02664511 -0.02428741 0.04894767
-0.06206492 0.00508655]
我通过获取回归线的斜率来确定均值回归的半衰期。这里看起来 adfuller()
正在计算 20 阶回归?这似乎不对。也许我做错了?有人可以阐明 adfuller()
吗?
这可以通过在 adfuller() 的输入中设置 maxlag=1 来解决