2011-11-18 14 views
6

私は現在、過去のベースオイル価格から将来のベースオイル価格を予測するためのペットプロジェクトに取り組んでいます。データは週ごとに表示されますが、価格が不足している期間があります。不規則なデータによる時系列モデリング

完全なデータを使って時系列データをモデル化しても大丈夫ですが、不規則なものについては、私が学んだモデルは適用されないかもしれません。通常の方法で、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 
+1

ようこそ。いくつかのデータを投稿することは、あなたがすでに試したことを示すコードをいくつか示しているので、常に良いアイデアです。良い質問を書くためのヒントについては、http://stackoverflow.com/q/5963269/602276を参照してください。 – Andrie

+0

ありがとうAndrie。あなたの助言に感謝します。できるだけ早くコードを書いていくつもりです。 – leejy

+0

@Andrie私は、コーディングとトリミングされたデータで質問を更新しました。あなたはそれを見渡すことができますか?ありがとう!正しい軌道にいるのですか? – leejy

答えて

4

はありません一般的にあなたがXTSを使用する必要があり、その後、ARIMAをしないが、必要な追加のステップがあります。値が見つからない場合、NAとして記録されます。arima()によって処理され、method = "ML"を使用する場合は、正確に処理されます。他の方法では、欠落しているデータの革新が得られない可能性があります。これは、arima()がARIMAモデルを状態空間表現に適合させるために機能します。

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

私は一般的な使用があるXTSではないと言う理由だけではarima()は、その入力として単変量時系列オブジェクト?tsが必要です。しかし、XTSは延びて動物園オブジェクトとクラス"zoo"のオブジェクトに対してas.ts()方法を提供しない動物園パッケージから継承します。したがって、zoo()またはxts()オブジェクトにデータを取得した場合は、クラス"ts"に強制することができ、適切な場所にNAを含める必要があります。その場合は、arima()が処理できます(欠落値があまりにも多くない場合) 。

+0

アドバイスありがとうございます!それは非常に簡潔で明確です。私はあなたが言ったように 'arima() 'を使用しましたが、警告を返しました。それはモデル自体に影響を与えますか?また、ACFとPACFが機能しないため、ARIMAモデルを選択するための他の選択肢は何ですか? – leejy

+0

なぜ、arima()でxtsを使わないのはなぜでしょうか?あなたの答えから、xtsか動物園のどちらかをas.ts()で強制的に強制することができます。 –

+0

@Nathanそれだけで、上で説明したように、必要なものをarima()1にするために追加のステップが必要です。おそらく、最後の段落に欠けている「必要性」があります。 –

関連する問題