7

次のRコードがあります

library(forecast)
value <- c(1.2, 1.7, 1.6, 1.2, 1.6, 1.3, 1.5, 1.9, 5.4, 4.2, 5.5, 6, 5.6, 
6.2, 6.8, 7.1, 7.1, 5.8, 0, 5.2, 4.6, 3.6, 3, 3.8, 3.1, 3.4, 
2, 3.1, 3.2, 1.6, 0.6, 3.3, 4.9, 6.5, 5.3, 3.5, 5.3, 7.2, 7.4, 
7.3, 7.2, 4, 6.1, 4.3, 4, 2.4, 0.4, 2.4)

sensor<-ts(value,frequency=24)
fit <- auto.arima(sensor)
LH.pred<-predict(fit,n.ahead=24)
plot(sensor,ylim=c(0,10),xlim=c(0,5),type="o", lwd="1")
lines(LH.pred$pred,col="red",type="o",lwd="1")
grid()

結果のグラフは 予測

しかし、私はその予測に満足していません。予測をその前の値の傾向に似たものにする方法はありますか (グラフを参照)?

4

4 に答える 4

20

頻度を24と定義したので、1サイクルあたり24時間(毎日)で作業していると仮定します。したがって、履歴データセットには約2サイクルあります。一般的に、これは時系列予測を開始するための限られたサンプルデータです。もう少しデータを取得することをお勧めします。そうすれば、予測モデルを再度実行できます。データが多ければ多いほど、季節性をより正確に把握できるため、将来の値を予測できます。auto.arimaのような限られた利用可能な自動アルゴリズムでは、多くの場合、移動平均に似たものがデフォルトになります。サイクルには季節性があるため、データセットは移動平均よりも優れたものに値します。フォワードカーブの形状を改善するのに役立つ予測アルゴリズムがいくつかあります。Holt-Wintersやその他の指数平滑法のようなものが役立つかもしれません。ただし、自動。

より多くのデータを取得し、同じルーチンを実行すると、グラフが改善されます。個人的に、私はforecast以上の使用を好みpredictます; データは、信頼区間を示しているため、グラフと同様に少し良くなっているようです。コードでは、2つのピリオドをコピーしてデータセットを少し拡張したので、4つのピリオドを取得しました。以下の結果を参照してください。

library(forecast)
value <- c(1.2,1.7,1.6, 1.2, 1.6, 1.3, 1.5, 1.9, 5.4, 4.2, 5.5, 6.0, 5.6, 6.2, 6.8, 7.1, 7.1, 5.8, 0.0, 5.2, 4.6, 3.6, 3.0, 3.8, 3.1, 3.4, 2.0, 3.1, 3.2, 1.6, 0.6, 3.3, 4.9, 6.5, 5.3, 3.5, 5.3, 7.2, 7.4, 7.3, 7.2, 4.0, 6.1, 4.3, 4.0, 2.4, 0.4, 2.4, 1.2,1.7,1.6, 1.2, 1.6, 1.3, 1.5, 1.9, 5.4, 4.2, 5.5, 6.0, 5.6, 6.2, 6.8, 7.1, 7.1, 5.8, 0.0, 5.2, 4.6, 3.6, 3.0, 3.8, 3.1, 3.4, 2.0, 3.1, 3.2, 1.6, 0.6, 3.3, 4.9, 6.5, 5.3, 3.5, 5.3, 7.2, 7.4, 7.3, 7.2, 4.0, 6.1, 4.3, 4.0, 2.4, 0.4, 2.4)
sensor <- ts(value,frequency=24) # consider adding a start so you get nicer labelling on your chart. 
fit <- auto.arima(sensor)
fcast <- forecast(fit)
plot(fcast)
grid()
fcast
         Point Forecast     Lo 80    Hi 80      Lo 95    Hi 95
3.000000       2.867879 0.8348814 4.900877 -0.2413226 5.977081
3.041667       3.179447 0.7369338 5.621961 -0.5560547 6.914950
3.083333       3.386926 0.7833486 5.990503 -0.5949021 7.368754
3.125000       3.525089 0.8531946 6.196984 -0.5612211 7.611400
3.166667       3.617095 0.9154577 6.318732 -0.5147025 7.748892

4つの期間のグラフ

于 2013-01-11T07:37:05.740 に答える
2

auto.arima() は、AIC、AICc、または BIC 値に従って最適な ARIMA モデルを返します。「値」データセットに基づいて、おそらく ARMA(1,0) または AR(1) モデルが選択されていることがわかりますが、これは非常に迅速に平均値に戻る傾向があります。これは長期的には常に AR(1) モデルで発生するため、2 歩以上先を予測したい場合にはあまり役に立ちません。

おそらく、値データの acf と pacf を分析することで、別のタイプのモデルのフィッティングを検討できます。次に、代替モデルがデータに適しているかどうかを確認する必要があります。

于 2014-03-23T15:15:07.097 に答える
0

予測をより正確にプロットするには、移動平均の使用を検討することをお勧めします。

于 2013-01-11T06:49:09.620 に答える
-3

https://code.google.com/p/ltp/で ltp パッケージを確認することをお勧めします。また、 https://github.com/matteoredaelli/predictoR で Web フロントエンドも確認できます。

于 2014-08-05T13:01:08.570 に答える