3年間の週次データがあります。ここでの目的は、STL 関数を使用してシリーズから傾向と季節性の影響を取り除くことです。
統計パッケージの decompose 関数を使用して、時系列コンポーネントを分解できます。しかし、トレンド効果とランダム効果の最初と最後の 52 の値の NA 値を取得しています。
私のサンプル データセットには完全な季節性があり、平均と分散は時間の経過とともに変化しています。だから、乗法モデルを構築したかったのです。ここでは、統計パッケージで stl 関数を使用して、トレンドと季節性を分解しました。stl 関数は加法的モデルを処理できることを知っています。ただし、対数変換を使用して乗法モデルを構築することもできます。ここでは、両方のモデルを試しました。しかし、期待したほどの結果が得られません。このコードには何かが欠けていると確信しています。
series<-ts(series,frequency=365.25/7,start(2013,9))
series<-structure(c(62L, 72L, 48L, 50L, 302L, 396L, 66L, 33L, 77L, 91L,
38L, 38L, 43L, 45L, 134L, 754L, 1011L, 901L, 483L, 237L, 99L,
59L, 92L, 65L, 120L, 214L, 329L, 387L, 276L, 307L, 395L, 372L,
332L, 258L, 291L, 359L, 211L, 308L, 250L, 1374L, 1131L, 845L,
588L, 770L, 499L, 532L, 491L, 359L, 318L, 219L, 153L, 138L, 156L,
133L, 92L, 77L, 214L, 273L, 86L, 75L, 51L, 163L, 72L, 191L, 62L,
49L, 79L, 573L, 569L, 444L, 410L, 404L, 345L, 141L, 146L, 179L,
127L, 143L, 382L, 548L, 283L, 315L, 392L, 394L, 313L, 373L, 603L,
429L, 384L, 419L, 449L, 1774L, 2025L, 1532L, 1252L, 857L, 790L,
658L, 389L, 398L, 398L, 302L, 237L, 249L, 182L, 167L, 109L, 179L,
377L, 288L, 146L, 126L, 449L, 138L, 580L, 130L, 94L, 150L, 173L,
1246L, 1227L, 991L, 707L, 489L, 592L, 326L, 209L, 259L, 286L,
243L, 344L, 335L, 368L, 397L, 349L, 313L, 1345L, 301L, 1111L,
366L, 274L, 302L, 248L, 2518L, 2186L, 2094L, 2151L, 1847L, 1384L,
666L, 455L, 415L, 302L, 277L, 172L, 186L), .Tsp = c(1, 3.97056810403833,
52.1785714285714), class = "ts")
#Model 1
model1<-stl(series,"periodic",robust="TRUE")
op<-as.data.frame(model1$time.series)
head(op,25)
matplot(op,type="l")
#Model 2
model2<-stl(log(series),"periodic",robust="TRUE")
op<-exp(as.data.frame(model2$time.series))
matplot(op,type="l")
モデルのパフォーマンスを改善するにはどうすればよいですか?
この問題を解決するためのより良い方法があれば、私に提案してください。
前もって感謝します。