stl
位於 stats
包(package)。 說明
使用 loess
(縮寫 STL)將時間序列分解為季節性、趨勢和不規則分量。
用法
stl(x, s.window, s.degree = 0,
t.window = NULL, t.degree = 1,
l.window = nextodd(period), l.degree = t.degree,
s.jump = ceiling(s.window/10),
t.jump = ceiling(t.window/10),
l.jump = ceiling(l.window/10),
robust = FALSE,
inner = if(robust) 1 else 2,
outer = if(robust) 15 else 0,
na.action = na.fail)
參數
x |
要分解的單變量時間序列。這應該是類 |
s.window |
根據 Cleveland 等人的說法,字符串 |
s.degree |
季節提取中 locally-fitted 多項式的次數。應該是零或一。 |
t.window |
用於趨勢提取的黃土窗口的跨度(以滯後為單位),應該是奇數。如果 |
t.degree |
趨勢提取中 locally-fitted 多項式的次數。應該是零或一。 |
l.window |
用於每個子係列的 low-pass 過濾器的 loess 窗口的跨度(以滯後為單位)。默認為大於或等於 |
l.degree |
子係列 low-pass 濾波器的 locally-fitted 多項式的次數。必須是 0 或 1。 |
s.jump, t.jump, l.jump |
整數至少為一以提高相應平滑器的速度。線性插值發生在每個 |
robust |
邏輯指示是否在 |
inner |
整數; ‘inner’(反向擬合)迭代的次數;通常很少 (2) 次迭代就足夠了。 |
outer |
整數; ‘outer’魯棒性迭代的次數。 |
na.action |
對缺失值采取行動。 |
細節
季節性分量是通過 loess 平滑季節性 sub-series 找到的(所有 1 月值的序列,...);如果s.window = "periodic"
平滑被有效地替換為取均值。季節性值被刪除,其餘部分被平滑以找到趨勢。總體水平從季節性成分中去除並添加到趨勢成分中。這個過程要重複幾次。 remainder
分量是季節性加趨勢擬合的殘差。
生成的類 "stl"
對象的幾種方法,請參閱 plot.stl
。
值
stl
返回帶有組件的類 "stl"
的對象
time.series |
包含 |
weights |
最終的穩健權重(如果擬合不穩健,則均為 1)。 |
call |
匹配的調用。 |
win |
整數(長度為 3 的向量),其跨度用於 |
deg |
具有這些平滑器多項式次數的整數(長度為 3)向量。 |
jump |
整數(長度 3)向量,其中 ‘jumps’(跳過)用於這些平滑器。 |
ni |
內部迭代次數 |
no |
外部魯棒性迭代次數 |
注意
這與 S-PLUS 中的 stl
函數類似但不完全相同。 S-PLUS 給出的 remainder
分量是來自該函數的 trend
和 remainder
係列的總和。
例子
require(graphics)
plot(stl(nottem, "per"))
plot(stl(nottem, s.window = 7, t.window = 50, t.jump = 1))
plot(stllc <- stl(log(co2), s.window = 21))
summary(stllc)
## linear trend, strict period.
plot(stl(log(co2), s.window = "per", t.window = 1000))
## Two STL plotted side by side :
stmd <- stl(mdeaths, s.window = "per") # non-robust
summary(stmR <- stl(mdeaths, s.window = "per", robust = TRUE))
op <- par(mar = c(0, 4, 0, 3), oma = c(5, 0, 4, 0), mfcol = c(4, 2))
plot(stmd, set.pars = NULL, labels = NULL,
main = "stl(mdeaths, s.w = \"per\", robust = FALSE / TRUE )")
plot(stmR, set.pars = NULL)
# mark the 'outliers' :
(iO <- which(stmR $ weights < 1e-8)) # 10 were considered outliers
sts <- stmR$time.series
points(time(sts)[iO], 0.8* sts[,"remainder"][iO], pch = 4, col = "red")
par(op) # reset
作者
B.D. Ripley; Fortran code by Cleveland et al (1990) from ‘netlib’.
參考
R. B. Cleveland, W. S. Cleveland, J.E. McRae, and I. Terpenning (1990) STL: A Seasonal-Trend Decomposition Procedure Based on Loess. Journal of Official Statistics, 6, 3-73.
也可以看看
plot.stl
用於 stl
方法; loess
包中的 stats
(實際上並未在 stl
中使用)。
StructTS
用於不同類型的分解。
相關用法
- R stlmethods STL 對象的方法
- R stat.anova GLM 方差分析統計
- R stepfun Step Functions - 創建和類
- R step 在逐步算法中通過 AIC 選擇模型
- R start 對時間序列的終止時間進行編碼
- R summary.nls 總結非線性最小二乘模型擬合
- R summary.manova 多元方差分析的匯總方法
- R summary.lm 總結線性模型擬合
- R smooth Tukey 的(運行中值)平滑
- R screeplot 屏幕圖
- R sortedXyData 創建一個sortedXyData對象
- R sigma 提取殘餘標準差“Sigma”
- R setNames 設置對象中的名稱
- R scatter.smooth 黃土擬合的平滑曲線散點圖
- R splinefun 插值樣條曲線
- R spec.taper 通過餘弦鍾錐化時間序列
- R summary.princomp 主成分分析的匯總方法
- R symnum 符號數字編碼
- R se.contrast 模型術語對比的標準誤差
- R summary.aov 方差模型分析總結
- R shapiro.test 夏皮羅-威爾克正態性檢驗
- R selfStart 構建自啟動非線性模型
- R spec.pgram 通過平滑周期圖估計時間序列的譜密度
- R spec.ar 通過 AR Fit 估計時間序列的頻譜密度
- R smooth.spline 擬合平滑樣條曲線
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Seasonal Decomposition of Time Series by Loess。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。