2017-04-25 70 views
0

私は現在、与えられたデータセットについてRの時系列予測を実行する必要がある学校向けのプロジェクトに取り組んでいます。私はこれを行う方法について無数の例を探しましたが、私が見つけたすべての例には、例えば15年の間に1ヶ月に1度、データを記録するデータセットが含まれています。私の教授が私に与えたデータセットは、0.001秒ごとにデータが記録され、同じ秒間に複数のデータエントリがあります。たとえば、データの最後に.02500秒の5つの異なるエントリがあります。Rの単変量時系列の時系列予測

単変量時系列の理解は、毎月または毎秒のように特定の時間帯に測定を行う時系列です。データセット(adeno)で時系列予測を実行しようとするたびに、コードの下に以下のエラーが表示されます。

> fit <- auto.arima(adeno) 
Error in auto.arima(adeno) : 
    auto.arima can only handle univariate time series 

どこが間違っているのか、私が何か誤解していると誰に教えてもらえますか?私はRでts()コマンドを使用してデータセットを時系列に変換しようとしましたが、それでもそれはaunivariate時系列ではないと言われているので間違ったことをしているに違いありません。

+2

[再現例](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)を提供してください。 –

+1

それは言うことです。 'auto.arima'は単変量時系列しか扱えません。あなたが言及したように、あなたのデータセットは時間単位ごとに複数の項目を持っています(私は複数の指標を再開しますか?)ので、 'adeno'は' ts 'を使って変換すると多変量時系列です。 'auto.arima(ts(adeno [、1])))'のようなことをしてみてください。 – useR

+0

@useR、ありがとうございました!あなたが手伝ってくれればもうちょっと質問がありました。私のプロジェクトでは、時系列予測のグラフが必要です。どのようにauto.arima(ts(adeno [、1])のプロットを得ることができますか? –

答えて

1

エラーとは、auto.arimaが単変量時系列のみを処理できることを意味します。データセットには時間単位ごとに複数のエントリがありますが、tsを使用して変換すると、多変量時系列となります。私はデモ用airqualityのデータセットを使用、コメント欄であなたの2番目の質問に対処するために

adenoTS = ts(adeno) 
arima_fit = auto.arima(adenoTS[,1]) 

:あなたはの線に沿って何かを行うことができますforecastパッケージから

require(forecast) 
# Convert as time series 
airTS = ts(airquality) 
# Plot multivariate ts 
plot(airTS[,1:4]) 
# Run auto.arima on a single ts 
arima_fit = auto.arima(airTS[,3]) 
# Forecast for the next 10 time units 
arima_forecast = forecast(arima_fit, h = 10) 
# Plot forecasts 
plot(arima_forecast) 

forecast()を、あなたが予想することができます次のh時間単位。この場合の「時間単位」の意味は、airTS = ts(airquality)ステップで時系列をどのように定義したかによって異なります。ここで私はそれを正しく変換するのは苦労しませんでしたが、ts()start =frequency =の引数を追加して、tsの開始時刻と頻度を指定することができます。

forecastplotメソッドを使用すると、予測結果をプロットできます。 ?plot.forecastを参照してください。

enter image description here

+0

ありがとうこれは非常に役に立ちましたので、私はそれを感謝します! –