ARIMAモデリングのパラメーター(p、d、q)の決定


10

私は統計とRにかなり慣れています。データセットのARIMAパラメータを決定するプロセスを知りたいのですが。Rと理論的に(可能であれば)を使用して同じことを理解するのを手伝ってくれませんか?

データの範囲は1月12日から3月14日で、月次売上高を表します。これがデータセットです:

99 58 52 83 94 73 97 83 83 63 63 77 70 87 84 60 105 87 93 110 71 158 52 33 68 82 88 84

そしてここにトレンドがあります:

ここに画像の説明を入力してください

データは、傾向、季節的な行動または周期性を示していません。

回答:


9

一般に、Box、Jenkins&ReinselによるTime Series Analysisなどの高度な時系列分析のテキスト(入門書では通常、ソフトウェアを信頼するように指示されます)を掘り下げます。また、グーグルでBox-Jenkins手順の詳細を見つけることもできます。Box-Jenkins以外のアプローチ、たとえばAICベースのアプローチがあることに注意してください。

Rでは、まずデータをts(時系列)オブジェクトに変換し、頻度が12(月ごとのデータ)であることをRに伝えます。

require(forecast)
sales <- ts(c(99, 58, 52, 83, 94, 73, 97, 83, 86, 63, 77, 70, 87, 84, 60, 105, 87, 93, 110, 71, 158, 52, 33, 68, 82, 88, 84),frequency=12)

(部分的な)自己相関関数をプロットできます。

acf(sales)
pacf(sales)

これらは、ARまたはMAの動作を示唆するものではありません。

次に、モデルを適合させて検査します。

model <- auto.arima(sales)
model

?auto.arimaヘルプを参照してください。ご覧のようにauto.arima、単純な(0,0,0)モデルを選択します。これは、データにトレンドも季節性もARまたはMAもないためです。最後に、時系列と予測を予測およびプロットできます。

plot(forecast(model))

予報

?forecast.Arima(大文字Aに注意してください!)を見てください。

この無料のオンライン教科書は、Rを使用した時系列分析と予測の優れた入門書です。


こんにちはステファン、データセットのデータとプロットを追加しました。ご覧のとおり、データポイントは27個しかないので、ここではヒュームで実行しています。ここで何か提案していただけませんか。
Raunak87 2014年

答えを編集しました。あなたのシリーズは多くの構造を示さないので、あなたができることは本当にほとんどありません。基本的にノイズがあり、他にはほとんどないため、予測間隔が大きくなります。
ステファンコラッサ2014年

4

2つのこと。時系列は月次であり、反映された27ポイントは自己相関構造を与えないため、賢明なARIMA推定には少なくとも4年のデータが必要です。これは、売上高が独自の値と相関するのではなく、いくつかの外部要因の影響を受けることも意味します。どの要素があなたの売上に影響を与えているか、そしてその要素が測定されているかを見つけ出してください。次に、回帰またはVAR(Vector Autoregression)を実行して予測を取得できます。

これらの値以外に絶対に何もない場合、最善の方法は、指数平滑法を使用して単純な予測を取得することです。Rでは指数平滑法を使用できます。

2つ目は、製品の売上が単独で表示されないことです。たとえば、コーヒーの売上の増加はお茶の売上の減少を反映する可能性があります。他の製品情報を使用して、予測を改善してください。

これは通常、小売またはサプライチェーンの販売データで発生します。それらはシリーズの自己相関構造の多くを示しません。一方、ARIMAやGARCHのような方法は、通常、自己相関がある株式市場データや経済指標で機能します。


3

これは本当にコメントですが、許容範囲を超えているので、時系列データを分析する正しい方法を示唆しているので、準回答として投稿します。。

よく知られている事実ですが、ここや他の場所でしばしば無視されているのは、仮のARIMAモデルの定式化に使用される理論的なACF / PACFは、パルス/レベルシフト/季節パルス/ローカルタイムトレンドを前提としないことです。さらに、一定のパラメーターと一定の誤差分散を前提としています。この場合、21番目の観測値(値= 158)は外れ値/パルスとして簡単にフラグが付けられ、提案された-80の調整により78の修正値が得られます。変更されたシリーズの結果のACF / PACFは、確率的(ARIMA)構造の証拠をほとんどまたはまったく示しません。この場合、手術は成功したが患者は死亡した。サンプルACFは共分散/分散に基づいており、過度に膨張/膨張した分散はACFに下向きのバイアスをもたらします。キース・オード教授はかつてこれを「不思議の国のアリス効果」と呼んでいました


2

Stephan Kolassaが指摘したように、データにはあまり構造がありません。自己相関関数は、ARMA構造を示唆していない(参照acf(sales)pacf(sales))およびforecast::auto.arima任意のARやMAの順序を選択しません。

require(forecast)
require(tsoutliers)
fit1 <- auto.arima(sales, d=0, D=0, ic="bic")
fit1
#ARIMA(0,0,0) with non-zero mean 
#Coefficients:
#      intercept
#        81.3704
#s.e.     4.4070

それにもかかわらず、残差の正規性のヌルが5%の有意水準で拒否されることに注意してください。

JarqueBera.test(residuals(fit1))[[1]]
#X-squared = 12.9466, df = 2, p-value = 0.001544

補足:パッケージで利用可能なJarqueBera.test機能に基づいていjarque.bera.testますtseries

で検出された観測値21に加法的外れ値を含めるtsoutliersと、残差が正常になります。したがって、切片の推定値と予測は、遠方の観測の影響を受けません。

res <- tsoutliers::tso(sales, types=c("AO", "TC", "LS"), 
  args.tsmethod=list(ic="bic", d=0, D=0))
res
#ARIMA(0,0,0) with non-zero mean 
#Coefficients:
#      intercept     AO21
#        78.4231  79.5769
#s.e.     3.3885  17.6072
#sigma^2 estimated as 298.5:  log likelihood=-115.25
#AIC=236.49   AICc=237.54   BIC=240.38
#Outliers:
#  type ind time coefhat tstat
#1   AO  21 2:09   79.58  4.52
JarqueBera.test(residuals(res$fit))[[1]]
#X-squared = 1.3555, df = 2, p-value = 0.5077

1
=12
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.