毎日の時系列にARIMAモデルを当てはめています。データは2010年2月1日から2011年7月30日まで毎日収集され、新聞販売に関するものです。週ごとの販売パターンを見つけることができるので(販売されたコピーの1日の平均量は月曜日から金曜日まで通常同じで、土曜日と日曜日に増加します)、この「季節」を捉えようとしています。売上データ「データ」を指定して、次のように時系列を作成します。
salests<-ts(data,start=c(2010,1),frequency=365)
そして、auto.arima(。)関数を使用して、AIC基準を介して最適なARIMAモデルを選択します。結果は常に非季節ARIMAモデルですが、例として次の構文でいくつかのSARIMAモデルを試してみると:
sarima1<-arima(salests, order = c(2,1,2), seasonal = list(order = c(1, 0, 1), period = 7))
より良い結果を得ることができます。tsコマンド/ arimaの仕様に何か問題はありますか?毎週のパターンは非常に強いので、キャプチャするのにそれほど多くの困難はないと思います。任意のヘルプは非常に便利です。ありがとう、ジュリア・デッピエーリ
更新:
すでにいくつかの引数を変更しました。より正確には、プロシージャはを設定するとARIMA(4,1,3)を最良のモデルとして選択しますがD=7
、AICおよびその他の適合指数および予測もまったく改善されません。季節性と周期性の混同によるいくつかの間違いがあると思います。
Auto.arima呼び出しが使用され、取得された出力:
modArima<-auto.arima(salests,D=7,max.P = 5, max.Q = 5)
ARIMA(2,1,2) with drift : 1e+20
ARIMA(0,1,0) with drift : 5265.543
ARIMA(1,1,0) with drift : 5182.772
ARIMA(0,1,1) with drift : 1e+20
ARIMA(2,1,0) with drift : 5137.279
ARIMA(2,1,1) with drift : 1e+20
ARIMA(3,1,1) with drift : 1e+20
ARIMA(2,1,0) : 5135.382
ARIMA(1,1,0) : 5180.817
ARIMA(3,1,0) : 5117.714
ARIMA(3,1,1) : 1e+20
ARIMA(4,1,1) : 5045.236
ARIMA(4,1,1) with drift : 5040.53
ARIMA(5,1,1) with drift : 1e+20
ARIMA(4,1,0) with drift : 5112.614
ARIMA(4,1,2) with drift : 4953.417
ARIMA(5,1,3) with drift : 1e+20
ARIMA(4,1,2) : 4960.516
ARIMA(3,1,2) with drift : 1e+20
ARIMA(5,1,2) with drift : 1e+20
ARIMA(4,1,3) with drift : 4868.669
ARIMA(5,1,4) with drift : 1e+20
ARIMA(4,1,3) : 4870.92
ARIMA(3,1,3) with drift : 1e+20
ARIMA(4,1,4) with drift : 4874.095
Best model: ARIMA(4,1,3) with drift
だから私はarima関数が次のように使用されるべきだと仮定します
bestOrder <- cbind(modArima$arma[1],modArima$arma[5],modArima$arma[2])
sarima1<-arima(salests, order = c(4,1,3))
季節成分パラメータと期間指定なし。データと探索的分析によると、2010年8月(売上の一貫した増加が登録されている場合)を除き、毎週同じパターンを週ごとに近似的に考慮することができます。残念ながら、時系列モデリングの専門知識はまったくありません。実際、これらの問題のあるデータに適合させようとした他のパラメトリックモデルとノンパラメトリックモデルの代替ソリューションを見つけるために、このアプローチを試しています。また、私は多くの従属数値変数を持っていますが、応答変数の説明には低消費電力を示しています。間違いなく、モデル化するのが最も難しい部分は時間コンポーネントです。さらに、月と平日を表すダミー変数の構築は、堅牢なソリューションではないことが判明しました。