過去 22 年間の各郡の季節調整済み失業データを生成したいと考えています。
米国労働統計局は、ARIMA を使用して国全体の失業率を季節的に調整しますが、個々の郡については調整しません。米国の各郡の季節調整を R で ARIMA に強制する方法を理解するのに助けが必要です。
を使用して ARIMA モデルを取得できますがauto.arima(mytimeseries)
、季節成分を減算する方法がわかりません ( (decompose(mytimeseries))$seasonal)
.
このサイトhttps://onlinecourses.science.psu.edu/stat510/?q=book/export/html/51は、ARIMA 残差を差し引くことができるはずであることを意味します。
predicteds = oilindex - expsmoothfit$residuals
しかし、私が試したとき、それは(目で)まったく正しく見えませんでした.季節変動の多くをまったく認識しているようには見えませんでした.
思いついたモデルが悪いのではないかと思いauto.arima()
ましたが、元のデータと同じプロットにモデルをプロットすると、かなりうまく見えました。
このサイトhttp://www.statoek.wiso.uni-goettingen.de/mitarbeiter/ogi/pub/r_workshop.pdfでは、シーケンスで predict() を使用して平滑化を行うことについて説明していますが、それを機能させることはできません:自分の行に何か問題があるのか 、data.frame(mytimeseries[date=seq])
それともarimaオブジェクトがオブジェクトと同じメソッドを持っていないのかがわからないgam
ため、予測は機能しません。
では、ARIMA を使用してデータから季節性を取り除くにはどうすればよいでしょうか? どんな助けでも大歓迎です!
ここに私がこれまでに持っているものの例があります。(私は R の初心者なので、間違いなく、このコードは最適ではありません。)
# I put unadjusted values for one county at
# http://tmp.webfoot.com/tmp/tmp/unemployment17019.csv
a = read.table("/tmp/unemployment17019.csv", header=FALSE)
# there is probably a simple seven-character way of doing the next line...
all = c(a[1,], a[2,], a[3,], a[4,], a[5,], a[6,], a[7,], a[8,], a[9,], a[10,], a[11,], a[12,], a[13,], a[14,], a[15,], a[16,], a[17,], a[18,], a[19,], a[20,], a[21,], a[22,])
timeseries=ts(as.numeric(all), frequency=12, start=1990)
arimabestfit = forecast::auto.arima(timeseries)
title("Iroquois County", xlab="Date", ylab="Unemployment Rate")
legend(1991,12,c("unadjusted", "adjusted"), col=c("grey", "red"), cex=0.8, lty=1)
plot((timeseries - arimabestfit$residuals), col="red", ylim=c(0,12))
lines(timeseries, col="grey")