Time-Series

為什麼 stl 函數使用隨機數據給出顯著的季節性變化

  • April 19, 2015

我使用 stl(黃土對時間序列的季節性分解)函數繪製了以下代碼:

plot(stl(ts(rnorm(144), frequency=12), s.window="periodic"))

它顯示了顯著的季節性變化,上面代碼中的隨機數據(rnorm 函數)。每次運行時都會看到顯著的變化,儘管模式不同。兩種這樣的模式如下所示:

在此處輸入圖像描述

在此處輸入圖像描述

當某些數據顯示季節性變化時,我們如何依賴 stl 函數。考慮到其他一些參數,是否需要看到這種季節性變化?感謝您的洞察力。

代碼取自此頁面:這是測試自殺計數數據中季節性影響的合適方法嗎?

黃土分解旨在通過對數據應用平均值來平滑序列,以便將其分解為對數據分析感興趣的組件,例如趨勢或季節性。但這種方法並不打算對季節性的存在進行正式測試

儘管在您的示例中stl返回了季節性週期性的平滑模式,但此模式與解釋序列的動態無關。為了看到這一點,我們可以將每個分量的方差與原始序列的方差進行比較。

set.seed(123)
x <- ts(rnorm(144, sd=1), frequency=12)
a <- stl(x, s.window="periodic")
apply(a$time.series, 2, var) / var(x)
#   seasonal      trend  remainder 
# 0.07080362 0.07487838 0.81647852 

我們可以看到,餘數解釋了數據中的大部分方差(正如我們對白噪聲過程所期望的那樣)。

如果我們採用具有季節性的序列,則季節性分量的相對方差更為相關(儘管我們沒有直接的方法來測試它,因為 loess 不是參數)。

y <- diff(log(AirPassengers))
b <- stl(y, s.window="periodic")
apply(b$time.series, 2, var) / var(y)
#    seasonal       trend   remainder 
# 0.875463620 0.001959407 0.117832537 

相對方差表明季節性是解釋序列動態的主要成分。


粗心地看情節stl可能具有欺騙性。返回的漂亮模式stl可能會讓我們認為可以在數據中識別出相關的季節性模式,但仔細觀察可能會發現事實並非如此。如果目的是確定是否存在季節性,黃土分解可以作為初步視圖,但應輔以其他工具。

引用自:https://stats.stackexchange.com/questions/147191

comments powered by Disqus