8

私は現在、過去の基油価格から将来の基油価格を予測するペット プロジェクトに取り組んでいます。データは週ごとですが、その間に価格が欠落している期間がいくつかあります。

完全なデータで時系列をモデル化することには多少問題はありませんが、不規則なものになると、私が学んだモデルは適用できない場合があります。xts クラスを使用して、通常の方法で R の ARIMA モデルを進めますか?

将来の価格を予測するモデルを構築した後、精度を向上させるために、原油価格の変動、ディーゼルの利益率、自動車販売、経済成長など (多変量?) を考慮に入れたいと考えています。これを効率的に行うにはどうすればよいか、誰かが光を当てることができますか? 私の考えでは、それは迷路のように見えます。

編集:トリミングされたデータはこちら: https://docs.google.com/document/d/18pt4ulTpaVWQhVKn9XJHhQjvKwNI9uQystLL4WYinrY/edit

コーディング:

Mod.fit<-arima(Y,order =c(3,2,6), method ="ML")

結果: 警告メッセージ: ログ (s2) : NaN が生成されました

この警告はモデルの精度に影響しますか?

データが欠落しているため、ACF と PACF を使用できません。モデルを選択するより良い方法はありますか? AIC(赤池情報量基準)を使用して、このコードを使用して異なる ARIMA モデルを比較しました。ARIMA(3,2,6) が最小の AIC を与えました。

コーディング:

AIC<-matrix(0,6,6)
for(p in 0:5)
for(q in 0:5)
{
mod.fit<-arima(Y,order=c(p,2,q))
AIC[p+1,q+1]<-mod.fit$aic
p
}
AIC

結果:

              [,1]     [,2]     [,3]     [,4]     [,5]     [,6] 
    [1,] 1396.913 1328.481 1327.896 1328.350 1326.057 1325.063 
    [2,] 1343.925 1326.862 1328.321 1328.644 1325.239 1318.282 
    [3,] 1334.642 1328.013 1330.005 1327.304 1326.882 1314.239 
    [4,] 1336.393 1329.954 1324.114 1322.136 1323.567 1316.150 
    [5,] 1319.137 1321.030 1320.575 1321.287 1323.750 1316.815 
    [6,] 1321.135 1322.634 1320.115 1323.670 1325.649 1318.015
4

1 に答える 1

5

一般に、xtsを使用してからARIMA を実行する必要はありません。追加の手順が必要です。NAによって処理されるように記録された欠損値は、arima()使用method = "ML"する場合は正確に処理されます。他の方法では、欠損データの革新が得られない場合があります。これarima()は、ARIMA モデルを状態空間表現に適合させるために機能します。

データが規則的であるが欠落しているデータがある場合は、上記で問題ありません。

一般にxtsを使用しないと言う理由は、入力としてarima()単変量の時系列オブジェクトが必要だからです。?tsただし、xtsはZooオブジェクトを拡張および継承し、zooパッケージclass のオブジェクトのメソッドを提供します。したがって、データをorオブジェクトに取得する場合は、クラスに強制することができ、適切な場所に を含める必要があります。これにより、可能な場合は処理されます (つまり、欠落している値が多すぎない)。as.ts()"zoo"zoo()xts()"ts"NAarima()

于 2011-11-18T10:32:58.370 に答える