R seri waktu musiman

9

Saya menggunakan decomposefungsi ini Rdan menghasilkan 3 komponen rangkaian waktu bulanan saya (tren, musiman dan acak). Jika saya memplot grafik atau melihat tabel, saya dapat dengan jelas melihat bahwa deret waktu dipengaruhi oleh musiman.

Namun, ketika saya mengembalikan deret waktu ke 11 variabel dummy musiman, semua koefisien tidak signifikan secara statistik, menunjukkan tidak ada musiman.

Saya tidak mengerti mengapa saya menghasilkan dua hasil yang sangat berbeda. Apakah ini terjadi pada seseorang? Apakah saya melakukan sesuatu yang salah?


Saya menambahkan di sini beberapa detail yang berguna.

Ini adalah seri waktu saya dan perubahan bulanan yang sesuai. Di kedua grafik, Anda dapat melihat ada musim (atau ini yang ingin saya nilai). Khususnya, pada grafik kedua (yang merupakan perubahan bulanan dari seri) saya bisa melihat pola berulang (poin tinggi dan poin rendah di bulan yang sama tahun ini).

TimeSeries

Perubahan Bulanan

Di bawah ini adalah output dari decomposefungsi. Saya menghargai itu, seperti kata @RichardHardy, fungsi tidak menguji apakah ada musiman yang sebenarnya. Tetapi dekomposisi itu sepertinya mengkonfirmasi apa yang saya pikirkan.

Membusuk

Namun, ketika saya mundur seri waktu pada 11 variabel dummy musiman (Januari hingga November, tidak termasuk Desember) saya menemukan yang berikut:

    Coefficients:
                  Estimate Std. Error t value Pr(>|t|)    
    (Intercept) 5144454056  372840549  13.798   <2e-16 ***
    Jan     -616669492  527276161  -1.170    0.248    
    Feb     -586884419  527276161  -1.113    0.271    
    Mar     -461990149  527276161  -0.876    0.385    
    Apr     -407860396  527276161  -0.774    0.443    
    May     -395942771  527276161  -0.751    0.456    
    Jun     -382312331  527276161  -0.725    0.472    
    Jul     -342137426  527276161  -0.649    0.520    
    Aug     -308931830  527276161  -0.586    0.561    
    Sep     -275129629  527276161  -0.522    0.604    
    Oct     -218035419  527276161  -0.414    0.681    
    Nov     -159814080  527276161  -0.303    0.763

Pada dasarnya, semua koefisien musiman tidak signifikan secara statistik.

Untuk menjalankan regresi linier, saya menggunakan fungsi berikut:

lm.r = lm(Yvar~Var$Jan+Var$Feb+Var$Mar+Var$Apr+Var$May+Var$Jun+Var$Jul+Var$Aug+Var$Sep+Var$Oct+Var$Nov)

di mana saya mengatur Yvar sebagai variabel deret waktu dengan frekuensi bulanan (frekuensi = 12).

Saya juga mencoba untuk mempertimbangkan komponen tren dari deret waktu termasuk variabel tren untuk regresi. Namun, hasilnya tidak berubah.

                  Estimate Std. Error t value Pr(>|t|)    
    (Intercept) 3600646404   96286811  37.395   <2e-16 ***
    Jan     -144950487  117138294  -1.237    0.222    
    Feb     -158048960  116963281  -1.351    0.183    
    Mar      -76038236  116804709  -0.651    0.518    
    Apr      -64792029  116662646  -0.555    0.581    
    May      -95757949  116537153  -0.822    0.415    
    Jun     -125011055  116428283  -1.074    0.288    
    Jul     -127719697  116336082  -1.098    0.278    
    Aug     -137397646  116260591  -1.182    0.243    
    Sep     -146478991  116201842  -1.261    0.214    
    Oct     -132268327  116159860  -1.139    0.261    
    Nov     -116930534  116134664  -1.007    0.319    
    trend     42883546    1396782  30.702   <2e-16 ***

Maka pertanyaan saya adalah: apakah saya melakukan sesuatu yang salah dalam analisis regresi?

Mattiace
sumber
1
@forecaster, di sini ada jawaban untuk pertanyaan Anda (OP bilang decomposefungsi in Rdigunakan).
Richard Hardy
1
Membaca file bantuan decomposefungsi, tampaknya fungsi tersebut tidak menguji apakah ada musiman. Sebaliknya, itu hanya mendapatkan rata-rata untuk setiap musim, mengurangi rata-rata dan menyebutnya komponen musiman. Jadi itu akan menghasilkan komponen musiman terlepas dari apakah ada komponen musiman yang mendasari benar atau hanya kebisingan. Namun demikian, ini tidak menjelaskan mengapa boneka Anda tidak signifikan meskipun Anda mengatakan musiman terlihat dari sebidang data. Mungkinkah sampel Anda terlalu kecil untuk mendapatkan boneka musiman yang signifikan? Apakah mereka secara signifikan penting?
Richard Hardy
3
Anda perlu melihat skala, grafik musiman menunjukkan variasi musiman antara -0,02 dan +0,04, sedangkan nilai aktual berkisar dari 4 miliar hingga 6 miliar. Fungsi penguraian memaksa data Anda untuk menunjukkan musiman yang karenanya menunjukkan nilai yang dapat diabaikan. Tidak ada musim pada data Anda.
peramal
1
Saya pikir musiman lebih tentang gerakan dengan frekuensi "tetap" tertentu daripada besarnya gerakan. Skala berbeda karena bagan pertama menunjukkan keseimbangan (dalam hal pound) dan yang kedua adalah perubahan (dinyatakan dalam persentase). Saya baru saja mencoba menjalankan kembali regresi: jika saya memperhitungkan tren polinomial, beberapa koefisien mulai menjadi signifikan. Saya kira, seperti yang disarankan @danno, trennya sangat signifikan.
mattiace
1
Tes Canova dan Hansen dapat memberi Anda informasi lebih lanjut tentang keberadaan dan stabilitas pola musiman dalam data Anda. Untuk beberapa aplikasi pengujian ini, lihat misalnya posting ini , yang juga memberikan tautan ke kertas asli dan ke kode sampel.
javlacalle

Jawaban:

1

Apakah Anda melakukan regresi pada data setelah Anda menghapus tren? Anda memiliki tren positif, dan tanda tangan musiman Anda kemungkinan tertutup dalam regresi Anda (varians karena tren, atau kesalahan, lebih besar daripada karena bulan), kecuali Anda telah memperhitungkan tren di Yvar ...

Selain itu, saya tidak terlalu percaya diri dengan deret waktu, tetapi tidakkah setiap observasi ditetapkan satu bulan, dan regresi Anda terlihat seperti ini?

lm(Yvar ~ Time + Month)

Permintaan maaf jika itu tidak masuk akal ... Apakah regresi paling masuk akal di sini?

danno
sumber
Saya membaca di buku teks Econometrics (Wooldridge) bahwa jika Anda memperkenalkan faktor "waktu" dalam regresi, itu seperti membatalkan tren deret waktu asli Anda. Untuk faktor "waktu" yang saya maksud adalah vektor seperti [1, 2, ..., n] dengan n = dengan jumlah pengamatan. Saya tidak benar-benar mendapatkan poin kedua Anda. Regresi kedua saya terlihat seperti berikut: lm.r = lm (Yvar ~ Var Jan + Var Nov). Apakah ini yang kamu maksud? F e b + . . . + V a rTime+VarFeb+...+Var
mattiace
Akan membantu untuk melihat beberapa baris data Anda. Tapi, saya bayangkan Anda punya tiga kolom, Time, Yvar, Month. Baris adalah pengamatan. Jadi, saya akan berpikir faktor-faktor dalam lm Anda () adalah Waktu dan Bulan (bukan tingkat faktor Bulan). Juga, saya pikir ada beberapa masalah dengan lm () pada deret waktu ... pengamatannya tidak independen - autokorelasi sementara.
danno
1

Dalam penggambaran grafis Anda tentang deret waktu, jelas bahwa "tren" - komponen linier dalam waktu - adalah kontributor substansial yang paling penting bagi realisasi tersebut. Kami berkomentar bahwa aspek terpenting dari rangkaian waktu ini adalah kenaikan stabil setiap bulan.

Setelah itu, saya akan berkomentar bahwa variasi musiman sangat kecil jika dibandingkan. Oleh karena itu tidak mengherankan, dengan langkah-langkah bulanan diambil lebih dari 6 tahun (total hanya 72 pengamatan) model regresi linier gagal untuk memiliki ketepatan untuk mengidentifikasi salah satu dari kontras 11 bulan sebagai signifikan secara statistik. Lebih jauh lagi tidak mengherankan bahwa efek waktu benar- benar mencapai signifikansi statistik, karena itu adalah peningkatan linier yang kira-kira sama konsisten terjadi pada semua 72 pengamatan, tergantung pada efek musiman mereka.

Kurangnya signifikansi statistik untuk setiap kontras 11 bulan tidak berarti bahwa tidak ada efek musiman. Bahkan, jika Anda menggunakan model regresi untuk menentukan apakah ada musiman, tes yang sesuai adalah tes kebebasan 11 derajat bersarang yang secara bersamaan menilai signifikansi statistik setiap kontras bulan. Anda akan mendapatkan tes seperti itu dengan melakukan ANOVA, uji rasio kemungkinan, atau uji Wald yang kuat. Contohnya:

library(lmtest) model.mt <- lm(outcome ~ time + month) model.t <- lm(outcome ~ time) aov(model.mt, model.t) lrtest(model.mt, model.t) library(sandwich) ## autoregressive consistent robust standard errors waldtest(lrtest, lmtest, vcov.=function(x)vcovHAC(x))

AdamO
sumber
0

Saya tidak tahu apakah ini kasus Anda, tetapi itu terjadi pada saya ketika saya mulai menganalisis deret waktu dalam R dan masalahnya adalah bahwa saya belum menyatakan periode deret waktu dengan benar saat membuat objek deret waktu untuk menguraikannya. Ada parameter dalam fungsi deret waktu yang memungkinkan Anda menentukan frekuensinya. Dengan melakukan itu, tren musimnya terurai dengan benar.

jmnavarro
sumber
jmnavarro, saya mendefinisikan frekuensi dengan benar dalam fungsi penguraian (= 12 karena saya memiliki data bulanan). Bahkan, saya senang dengan hasil dari fungsi ini. Pertanyaan saya adalah mengapa saya tidak menemukan hasil yang sama (musiman signifikan) ketika saya melakukan regresi linier menggunakan variabel dummy. Saya melakukannya dengan R dan excel dan hasilnya sama: koefisien dummy tidak signifikan secara statistik. Ini bertentangan dengan apa yang sebelumnya saya temukan dalam fungsi penguraian. Saya tidak mengerti jika saya kehilangan sesuatu di sini
mattiace
Benar, maaf, saya tidak sepenuhnya memahami pertanyaan Anda. Ini akan membantu jika Anda dapat memposting kode Anda, sehingga kami dapat mencoba dan mereproduksinya.
jmnavarro