2016-12-28 54 views
-1

我想確定趨勢系列B估計趨勢系列A的良好狀態。我使用OLS嘗試了這一點,但顯然殘差是自相關的。我試圖用Cochrane-Orcutt-Procedure(https://onlinecourses.science.psu.edu/stat501/node/360)進行糾正,但這並沒有解決自相關問題。我用不同的ρ值嘗試python statsmodels GSLAR函數,但也沒有成功。使用Python進行時間序列分析

我錯過了什麼?迴歸分析是否正確的分析方法?什麼是替代品?

這是數據:

import pandas as pd 
dataA = [0.02921, 0.02946, 0.02971, 0.02996, 0.03021, 0.03042, 0.03063, 
0.03083, 0.031, 0.03117, 0.03129, 0.03142, 
0.0315, 0.03146, 0.03142, 0.03142, 0.03138, 0.03129, 0.03117, 0.03104, 
0.03096, 0.03083, 0.03067, 0.0305, 0.03042, 0.03042, 0.03042, 0.03042, 
0.03046, 0.03058, 0.03075, 0.03087, 0.031, 0.03117, 0.03137, 0.03158, 
0.03175, 0.03196, 0.03221, 0.03242, 0.03258, 0.03271, 0.03279, 0.03292, 
0.03304, 0.03312] 

dataB = [0.28416, 0.28756, 0.29716, 0.30777, 0.31047, 0.30262, 0.29666, 
0.28918, 0.28008, 0.28037, 0.27909, 0.2738, 0.28378, 0.29538, 0.2927, 
0.29232, 0.28845, 0.27793, 0.27858, 0.29067, 0.29573, 0.29336, 0.28964, 
0.28601, 0.273, 0.26278, 0.26786, 0.27156, 0.27272, 0.28691, 0.30556, 
0.3109, 0.31243, 0.31083, 0.31534, 0.32455, 0.33221, 0.33714, 0.33397, 
0.32347, 0.31899, 0.31567, 0.30213, 0.29288, 0.29132, 0.29346] 

daterange = pd.date_range(start='2012-07-31', end='2016-04-30',freq='M') 
A = pd.Series(dataA, daterange) 
B = pd.Series(dataB, daterange) 

數據A和數據B由季節性分解(相加模型)導出:

from statsmodels.tsa.seasonal import seasonal_decompose 
ADecomp = seasonal_decompose(ARaw) 
dataA = ADecomp.trend 
BDecomp = seasonal_decompose(BRaw) 
dataB = BDecomp.trend 
+0

感謝您的提示,您可能會收到http://stats.stackexchange.com/ –

+0

更好的信息。我認爲你完全正確! – drosophilus

回答

1

我想這是比一個Python以上的計量經濟學問題的題。

首先要做的是看看兩個系列是否都是固定的。

如果是固定的: 您可以通過OLS對其進行迴歸以得出估計值。平穩序列是差異順序最低的一個序列。

如果不是固定的: 1)使用Engle Granger方法進行協整檢驗。兩個非平穩序列可以共同靜止。你也可以在這裏運行一個OLS。 2)如果它們不是共同整合的,你將不得不在它們是靜止的時候採取不同的n階序列,然後運行OLS來得到預測器。

希望這回答你的問題。

+0

感謝您的建議!你給了我必要的信息以找到正確的方法。 – drosophilus