簡體   English   中英

時間序列和線性回歸

[英]Time Series and Linear Regression

這似乎是一個不尋常的問題,但我真的需要你的幫助。 我對時間序列分析完全陌生,但對 OLS 回歸有足夠的了解。 首先,我設法將一個對象轉換為具有四分之一頻率的動物園對象。

  1. 問題:我創建的 zoo 對象不是正確的數據集對象,由於某些原因,當我想使用 zoo 對象中的變量時,我不能使用任何 $-specification。 有什么方法可以將動物園對象轉換回數據集對象還是沒有意義?
  2. 問題:我曾經填充缺失的四分之一行。 但是,我得到的虛擬變量的值分別為 0.25 和 0.5,這顯然沒有任何意義。 有可能改變嗎?
  3. 問題:動物園對象刪除了四分之一變量,所以動物園對象中不再有任何時間維度。 有什么命令可以解決這個問題嗎?
na.approx(as.ts(z)) 
  1. 問:這可能是最重要的問題。 我觀看了一些關於如何在時間序列中使用回歸的視頻,但我真的不明白在具有高自相關(時間序列)的變量和不具有高自相關的對象上使用標准 lm 函數有什么區別( OLS)。 我知道對於 OLS 的假設是,輸出變量是不相關的。 但是假設我想計算 GDPGROWTH 的回歸系數和議會中的平均共識投票行為(“AverageCONS”)。 兩個變量都具有很高的自相關性,我有一個數據框,其中將日期分配給這些變量中的每一個。

我不明白的是如何使用標准 lm 命令獲得“時間序列”回歸。 特別是因為當我想使用以下命令時:

lm(z$GDPGROWTH~z$APPROVALGOV)

我無法訪問動物園對象(或時間序列對象),因為 $ 參數不起作用。

Fehler in z$GDPGrowth : $ operator is invalid for atomic vectors

所以我不得不求助於使用來自普通數據集對象的變量。 但這不會包含任何時間維度,對嗎?

一般來說,我對時間序列以及回歸分析如何與時間維度相結合感到非常困惑。 我想得到的分析結果是 GDP 增長與平均共識投票行為(“GDPGrowth”和“AverageCONS”)之間的回歸。 我知道這兩個變量都是通過時間維度自相關的。 但是,我不知道如何進行適當的時間序列回歸。

我會發布一個 dput 和其他復制代碼,讓你的一切變得更容易。 感謝任何幫助!

> dput(z)
structure(c(1.2, -0.2, -0.15, -0.1, 0.4, 0.333333333333333, 0.266666666666667, 
0.2, 0.5, 0.8, 1.1, 1.4, 1.3, 2, 2.7, 0.8, 0.9, 1, 0.8, 0.6, 
-0.6, -0.0666666666666667, 0.466666666666667, 1, 1.6, 2.2, 1.9, 
1.6, 1.7, 1.8, 1.5, 1.2, 0.8, 0.4, 0.8, 1.2, 2.1, 0.5, 1.15, 
1.8, 0.65, -0.5, 0.4, 1.3, 0.3, -0.7, -0.5, -0.3, -0.15, 0, 0.6, 
-0.1, 1.4, 0.3, 0.7, 0.2, -0.3, 0.8, 0.2, 0, -0.8, 1.4, 1.05, 
0.7, -0.5, 1.3, 1, 0.7, 0.15, -0.4, -0.4, -0.4, 1.2, 0, 0.4, 
0.8, 1.4, 0.8, 0, -0.3, 2, 0, -0.2, -0.2, -0.5, 0, 0.5, -0.2, 
-1.5, -0.35, 0.8, 0.3, -0.2, 0.5, 0.2, -0.1, 0, 0, 1.17870603993396, 
0.589353019966981, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3.61936244127144, 
2.01801455396906, 0.416666666666667, 0, 2.16353957620116, 4.32707915240231, 
5.98174400514746, 7.6364088578926, 0.257076257076257, 0.171384171384171, 
0.0856920856920857, 0, 11.2103879729705, 22.4207759459411, 15.2347455885415, 
8.04871523114194, 11.3521305960255, 14.6555459609091, 15.4403121270985, 
16.2250782932878, 8.6979606817534, 1.17084307021898, 3.97895588789713, 
6.78706870557528, 0, 0, 4.87695592673415, 9.7539118534683, 4.87695592673415, 
0, 0, 0, 0, 0, 0.0201047586252623, 0.0402095172505245, 0.0201047586252623, 
0, 0, 0.0636265006342972, 0, 0.171974252305606, 0, 5.57623701563216, 
11.1524740312643, 2.68040672020172, 6.2111801242236, 3.24760735460988, 
28.2976799963101, 0, 3.7866135488981, 7.5732270977962, 0, 0, 
0.747061391598759, 1.49412278319752, 35.8503062293569, 70.2064896755162, 
52.105350122636, 34.0042105697558, 18.5823772614653, 18.0896275972026, 
13.25206168539, 8.41449577357745, 10, 0, 0, 34.7491138493683, 
8.36236933797909, 39.6563615833003, 74.4262295081967, 22.3611248302746, 
10, 16.455880420063, 22.911760840126, 0, 0.0666722800439236, 
0.0333361400219618, 0, 50.3843726943174, 0, 0, 0.864549845643277, 
1.72909969128655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.25, 0.5, 0.75, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.5, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 7.88127469343306, 7.67671239967451, 7.50492078119126, 
7.33312916270801, 7.26681550104175, 7.37045715962304, 7.47409881820433, 
7.57774047678561, 7.54440688341081, 7.511073290036, 7.47773969666119, 
7.44440610328638, 7.51950710910292, 7.47703037780537, 7.43455364650782, 
7.21735906430465, 7.07654252150171, 6.93572597869877, 7.13426907080346, 
7.33281216290814, 7.34110311728404, 7.50058012443653, 7.66005713158903, 
7.81953413874152, 7.80295976635758, 7.78638539397364, 7.67221491798127, 
7.5580444419889, 7.13119115282123, 6.70433786365357, 6.73565901224693, 
6.76698016084029, 6.8801068632748, 6.9932335657093, 7.44235686960608, 
7.89148017350285, 8.24705859843768, 8.20161269191644, 7.1659119101912, 
6.13021112846596, 6.7880423795211, 7.44587363057623, 7.46757903053749, 
7.48928443049876, 7.07702561011456, 6.66476678973035, 6.57551271762131, 
6.48625864551226, 6.31270117005075, 6.13914369458924, 6.05634679973895, 
5.9702909369734, 6.19216550005443, 6.87967122943963, 7.49940214266322, 
7.29465702788788, 7.08991191311255, 7.3351806925688, 7.46762039999888, 
7.22336518577119, 6.75192112299076, 6.61614229895973, 6.50505157543993, 
6.39396085192013, 6.09682321355397, 5.99711627005931, 5.97786567725074, 
5.95861508444216, 6.13656719089965, 6.31451929735713, 6.19389219496854, 
6.07326509257996, 7.58677238161551, 7.24041796080827, 6.96794618067372, 
6.69547440053917, 7.72437292977251, 7.61985191697131, 7.85861327446016, 
7.78974162557168, 8.00182694049075, 7.82019060836613, 7.58946475073855, 
7.89751118735182, 7.14978411180804, 7.30379876152907, 7.4578134112501, 
6.24455242517448, 5.8823776113788, 5.98170501192132, 6.08103241246385, 
5.73879250743035, 5.68128370028589, 5.83312282222293, 6.1665241256249, 
6.49992542902688, 6.45920800878159), .Dim = c(97L, 4L), .Dimnames = list(
    NULL, c("GDPGrowth", "AverageCONS", "BRGOVMEHR", "ApprovalGOV"
    )), .Tsp = c(2482, 2506, 4), class = c("mts", "ts", "matrix"
))

“最終”是我想從中進行時間序列分析的整體聚合數據框。

> dput(FINAL)
structure(list(Quarter.y = c(1981.1, 1981.2, 1981.4, 1982.1, 
1982.4, 1983.4, 1984.1, 1984.3, 1984.4, 1985.2, 1985.4, 1986.1, 
1986.4, 1987.2, 1987.4, 1988.2, 1988.4, 1989.2, 1989.4, 1990.1, 
1990.2, 1990.4, 1991.2, 1991.4, 1992.2, 1992.4, 1993.2, 1993.3, 
1993.4, 1994.1, 1994.2, 1994.3, 1995.1, 1995.2, 1995.3, 1995.4, 
1996.1, 1996.2, 1996.4, 1997.1, 1997.2, 1997.4, 1998.2, 1998.4, 
1999.1, 1999.2, 1999.4, 2000.1, 2000.2, 2000.3, 2000.4, 2001.1, 
2001.2, 2001.3, 2001.4, 2002.1, 2002.3, 2002.4, 2003.1, 2003.3, 
2003.4, 2004.1, 2004.2, 2004.4, 2005.1), GDPGrowth = c(1.2, -0.2, 
-0.1, 0.4, 0.2, 1.4, 1.3, 2.7, 0.8, 1, 0.6, -0.6, 1, 2.2, 1.6, 
1.8, 1.2, 0.4, 1.2, 2.1, 0.5, 1.8, -0.5, 1.3, -0.7, -0.3, 0, 
0.6, -0.1, 1.4, 0.3, 0.7, -0.3, 0.8, 0.2, 0, -0.8, 1.4, 0.7, 
-0.5, 1.3, 0.7, -0.4, -0.4, 1.2, 0, 0.8, 1.4, 0.8, 0, -0.3, 2, 
0, -0.2, -0.2, -0.5, 0.5, -0.2, -1.5, 0.8, 0.3, -0.2, 0.5, -0.1, 
0), AverageCONS = c(0, 1.17870603993396, 0, 0, 0, 0, 3.61936244127144, 
0.416666666666667, 0, 4.32707915240231, 7.6364088578926, 0.257076257076257, 
0, 22.4207759459411, 8.04871523114194, 14.6555459609091, 16.2250782932878, 
1.17084307021898, 6.78706870557528, 0, 0, 9.7539118534683, 0, 
0, 0, 0.0402095172505245, 0, 0, 0.0636265006342972, 0, 0.171974252305606, 
0, 11.1524740312643, 2.68040672020172, 6.2111801242236, 3.24760735460988, 
28.2976799963101, 0, 7.5732270977962, 0, 0, 1.49412278319752, 
70.2064896755162, 34.0042105697558, 18.5823772614653, 18.0896275972026, 
8.41449577357745, 10, 0, 0, 34.7491138493683, 8.36236933797909, 
39.6563615833003, 74.4262295081967, 22.3611248302746, 10, 22.911760840126, 
0, 0.0666722800439236, 0, 50.3843726943174, 0, 0, 1.72909969128655, 
0), BRGOVMEHR = c(0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0), ApprovalGOV = c(7.88127469343306, 7.67671239967451, 
7.33312916270801, 7.26681550104175, 7.57774047678561, 7.44440610328638, 
7.51950710910292, 7.43455364650782, 7.21735906430465, 6.93572597869877, 
7.33281216290814, 7.34110311728404, 7.81953413874152, 7.78638539397364, 
7.5580444419889, 6.70433786365357, 6.76698016084029, 6.9932335657093, 
7.89148017350285, 8.24705859843768, 8.20161269191644, 6.13021112846596, 
7.44587363057623, 7.48928443049876, 6.66476678973035, 6.48625864551226, 
6.13914369458924, 6.05634679973895, 5.9702909369734, 6.19216550005443, 
6.87967122943963, 7.49940214266322, 7.08991191311255, 7.3351806925688, 
7.46762039999888, 7.22336518577119, 6.75192112299076, 6.61614229895973, 
6.39396085192013, 6.09682321355397, 5.99711627005931, 5.95861508444216, 
6.31451929735713, 6.07326509257996, 7.58677238161551, 7.24041796080827, 
6.69547440053917, 7.72437292977251, 7.61985191697131, 7.85861327446016, 
7.78974162557168, 8.00182694049075, 7.82019060836613, 7.58946475073855, 
7.89751118735182, 7.14978411180804, 7.4578134112501, 6.24455242517448, 
5.8823776113788, 6.08103241246385, 5.73879250743035, 5.68128370028589, 
5.83312282222293, 6.49992542902688, 6.45920800878159)), row.names = c(NA, 
-65L), class = c("tbl_df", "tbl", "data.frame"))
  1. 不能使用$的原因是問題中顯示的z對象不是動物園對象。 它是一個ts對象。 您可以使用class(z)str(z)dput(z)來確定您擁有什么。 另外, $zoo對象有效,但對ts對象無效。 將其轉換為zoo ,然后$將起作用。

     library(zoo) zz <- zoo(z, as.yearqtr(time(z))) zz$GDPGrowth ## 2482 Q1 2482 Q2 2482 Q3 2482 Q4 2483 Q1 2483 Q2 ## 1.20000000 -0.20000000 -0.15000000 -0.10000000 0.40000000 0.33333333 ## 2483 Q3 2483 Q4 2484 Q1 2484 Q2 2484 Q3 2484 Q4 ## 0.26666667 0.20000000 0.50000000 0.80000000 1.10000000 1.40000000 ## # ... snip ...

    您對象中的時間是未來,但除非我們知道您是如何創建它們的,否則我們無法知道那是如何發生的。 您可能正在使用Date對象並在將它們轉換為ts犯了一些錯誤。

  2. 您有季度數據,0、0.25、0.5 和 0.75 是ts對象在內部表示 4 個季度的方式。 如果這是指不想將na.approx應用於某些列,那么如果ix是要轉換的列名或數字的向量,則zz[, ix] <- na.approx(zz[, ix])應用na.approx只到那些列。

  3. tszoo經由代表索引tspindex所以它們仍然存在分別屬性。 time(z)time(zz)將檢索索引。

  4. 如果要進行統計檢驗、計算置信區間等,則需要考慮相關性; 但是,如果您只想獲得點估計值,則無需擔心。 dyn 包(也是 dynlm 包)可用於促進lm與 zoo 對象一起運行。

     library(dyn) fm <- dyn$lm(GDPGrowth ~ ApprovalGOV, zz) fm ## Call: ## lm(formula = dyn(GDPGrowth ~ ApprovalGOV), data = zz) ## ## Coefficients: ## (Intercept) ApprovalGOV ## -1.9717 0.3575

    它們中的任何一個也可以使用with.zoofortify.zoo

     with(zz, lm(GDPGrowth ~ ApprovalGOV)) lm(GDPGrowth ~ ApprovalGOV, fortify.zoo(zz))

    要繪制點並繪制回歸線:

     plot(formula(fm), zz) abline(fm)

其他要點是:

  • R是大小寫敏感所以GDPGrowth一樣的GDPGROWTH

  • 不要在沒有首先閱讀所使用的每個函數的幫助文件的情況下使用您在網上找到的隨機代碼片段,以便您知道它是否對您的問題有意義。 還要閱讀您正在使用的每個包的所有小插圖(pdf 或 html 文檔)。 特別是,動物園包有 5 個小插曲和一個參考手冊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM