2個問題在這裏:滾動時間序列AR(1)Python數據框和MovingOLS中的迴歸估計?
首先。我有這樣一個數據幀:
Date Y X1 X2 X3
22 2004-05-12 9.348158e-09 0.000081 0.000028 0.000036
23 2004-05-13 9.285989e-09 0.000073 0.000081 0.000097
24 2004-05-14 9.732308e-09 0.000085 0.000073 0.000096
25 2004-05-17 2.235977e-08 0.000089 0.000085 0.000099
26 2004-05-18 2.792661e-09 0.000034 0.000089 0.000150
27 2004-05-19 9.745323e-09 0.000048
1000 2004-05-20 1.835462e-09 0.000034 0.000048 0.000099
1001 2004-05-21 3.529089e-09 0.000037 0.000034 0.000043
1002 2004-05-24 3.453047e-09 0.000043 0.000037 0.000059
1003 2004-05-25 2.963131e-09 0.000038 0.000043 0.000059
1004 2004-05-26 1.390032e-09 0.000029 0.000038 0.000054
我想運行一個滾動100天的窗口OLS迴歸估計,這就是:
首先對第101行,我跑的AR(1)的迴歸Y使用第1行至第100行,並估計第101行的Y;
然後,對於第102行,我使用第2行到第101行對Y進行AR(1)迴歸,並估計第102行的Y;
然後,對於第103行,我使用第2到第101行對Y進行AR(1)迴歸,並估計第103行的Y;
......
直到最後一行。
現在,我使用下面的代碼爲AR(1)的迴歸:
df = pd.DataFrame({'data':data_in['Y'],'Date':data_in['Date']})
df = df.set_index('Date')
ar = statsmodels.tsa.ar_model.AR(df)
res_ar = ar.fit(maxlag=1)
當然它是免費使用任何可能的方法來實現這一目標。如何做到這一點?
二。當我使用MovingOLS,輸出是這樣的:
-------------------------Summary of Regression Analysis-------------------------
Formula: Y ~ <RV(t-1)> + <RV(t-1)*RQ(t-1)^0.5> + <RV(t-1|t-5)> + <RV(t-1|t-22)>
+ <intercept>
Number of Observations: 1420
Number of Degrees of Freedom: 5
R-squared: 0.3370
Adj R-squared: 0.3352
Rmse: 0.0001
F-stat (4, 1415): 179.8353, p-value: 0.0000
Degrees of Freedom: model 4, resid 1415
-----------------------Summary of Estimated Coefficients------------------------
Variable Coef Std Err t-stat p-value CI 2.5% CI 97.5%
--------------------------------------------------------------------------------
RV(t-1) 0.5031 0.0496 10.14 0.0000 0.4058 0.6003
RV(t-1)*RQ(t-1)^0.5 -55.2344 10.1137 -5.46 0.0000 -75.0573 -35.4115
RV(t-1|t-5) 0.1736 0.0542 3.20 0.0014 0.0673 0.2799
RV(t-1|t-22) 0.2381 0.0563 4.23 0.0000 0.1276 0.3485
intercept 0.0000 0.0000 2.22 0.0268 0.0000 0.0000
---------------------------------End of Summary---------------------------------
它是如何多的迴歸結果整合到這樣的總結