私はstats::stl
関数を使用して、作物の技術的シグナルを識別して削除することで、セリエが得られます。私はこの方法に精通しておらず、プログラミングの初心者ですが、事前に間違いをお詫びします。STL ts frequency = 1
これらは私が働いている元のデータです:
dat <- data.frame(year= seq(1962,2014,1),yields=c(1100,1040,1130,1174,1250,1350,1450,1226,1070,1474,1526,1719,1849,1766,1342,2000,1750,1750,2270,1550,1220,2400,2750,3200,2125,3125,3737,2297,3665,2859,3574,4519,3616,3247,3624,2964,4326,4321,4219,2818,4052,3770,4170,2854,3598,4767,4657,3564,4340,4573,3834,4700,4168))
これはSTL
関数の入力として作成された周波数でts
= 1(年間)です:私はしようとすると
time.series <- ts(data=dat$yields, frequency = 1, start=c(1962, 1), end=c(2014, 1))
plot(time.series, xlab="Years", ylab="Kg/ha", main="Crop yields")
私は、次のエラーメッセージが表示されます。
decomposed <- stl(time.series, s.window='periodic')
> Error in stl(time.series, s.window = "periodic") : series is not periodic or has less than two periods
私はセリエが毎年恒例であることを知っているので、私は私が周波数を変更したときに、私は季節、トレンド、残りの信号を取得するため、エラーの原因を思われるts
で周波数を変えることはできません。
time.series <- ts(data=dat$yields, frequency = 12, start=c(1962, 1), end=c(2014, 1))
decomposed <- stl(time.series, s.window='periodic')
plot(decomposed)
私はSTL
の機能を、単位時間当たりの観測頻度が1である年次データで適用する方法があるかどうかを知りたいと思います。 一方、技術的な信号を削除するには、トレンドを取り除き、元のセリエからの残りの信号または私は間違っていますか?
ご協力いただきありがとうございます。