Python statsmodels adfuller()中使用的回归方法?
Python statsmodels adfuller()中使用的回归方法?,python,linear-regression,statsmodels,reversion,Python,Linear Regression,Statsmodels,Reversion,adfuller()中使用的回归方法是什么?我正在对一个时间序列执行一个增强的dickey fuller测试,我正在尝试两种不同的方法 首先,我使用pandas.diff()获取价格的变化dy。然后,我将原始时间序列作为自变量y和dy作为因变量传递到statsmodels.OLS(dy,y)中,并得到结果。然后,我提取斜率参数model.params[1]和斜率参数model.bse[1]的标准误差。这些项的商就是我调用的Dickey Fuller检验统计量DF=model.params[1]/
adfuller()
中使用的回归方法是什么?我正在对一个时间序列执行一个增强的dickey fuller测试,我正在尝试两种不同的方法
首先,我使用pandas.diff()
获取价格的变化dy
。然后,我将原始时间序列作为自变量y
和dy
作为因变量传递到statsmodels.OLS(dy,y)
中,并得到结果。然后,我提取斜率参数model.params[1]
和斜率参数model.bse[1]
的标准误差。这些项的商就是我调用的Dickey Fuller检验统计量DF=model.params[1]/model.bse[1]
其次,我将单数时间价格序列传递到adfuller()
,如下所示:
adfstat, pvalue, critvalues, resstore = ts.adfuller(y.y,regression='c',store=True,regresults=True)
现在,为了得到Dickey Fuller检验统计数据,我只需通过
DF=resstore.t值[1]
使用OLS,我得到:
DF = -1.81495580198
使用adfuller():
我想知道这两种方法的区别是什么?adfuller()是否在内部执行与OLS不同的线性回归?根据我从一本书中得到的例子,我观察到OLS的结果无可否认是正确的。但是我更喜欢使用adfuller(),因为它提供了测试统计的临界值,作为输出的一部分。此外,adfuller()结果似乎有许多回归系数:
我通过得到回归线的斜率来确定均值回归的半衰期。这里看来,
adfuller()
正在计算20阶回归?这似乎不对。也许我做错了?有人能解释一下adfuller()吗?这可以通过在adfuller()的输入中设置maxlag=1来解决
DF = -1.56386414181
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]