R言語学習ノート:時系列分析
2824 ワード
1.時系列の生成
ts()
dataは数値ベクトルまたはマトリクスであり、データボックスは強制的に数値ベクトルに変換される.startは、2018年第1四半期、start=c(2018、1);endは終了時点を指す.frequencyは、月が12、四半期が4のような1年間のデータの頻度を指定します.deltatはfrequencyの逆数であり、両者はその1つを設定する.namesは名前です.
plotを使ってもいいです.ts()時系列図の描画
2.時系列の分解
主に4つの影響要因がある:T(長期傾向),S(季節変動),C(循環変動),e(不規則変動)
推定トレンド、季節性、不規則性:
decompose()
xは時間系列オブジェクトである.type季節分解の形式を指定し、加算モデルか乗算モデルかを選択します.filterはフィルタ係数です.
stl():Loessメソッドの使用
xは時間系列のオブジェクトである.s.windowは文字列「periodic」またはLoessメソッドで季節のスパンを抽出し、奇数値であるべきで、デフォルト値はありません.s.degreeは、局所多項式が季節抽出に適合する程度、0または1である.
どちらの方法の結果もplot()で描画できます.
3.指数平滑法
HoltWinters()
xは時間系列のオブジェクトである.Alpha、beta、gammaはフィルタ係数であり、betaとgammaが共にFALSEである場合は単純指数平滑法(傾向がなく季節性がない)を用い、gammaのみがFALSEである場合はHolt二パラメータ線形指数平滑法(非季節性モデルにフィット)を用い、いずれもFALSEでない場合はWinters線形と季節性指数平滑法を用いる.seasonalは加算モデルか乗算モデルかを選択します.start.periodsは初期時期であり、初期値の自動検査に用いられ、2以上でなければならない.l.start、b.start、s.startはそれぞれ水平、トレンド、季節部分の初期値を表す
出力の結果,alpha,beta,gammaはそれぞれ現在の時点のレベル,トレンド部分の傾き,季節性部分に対応し,いずれも0~1の値をとり,近いほど最近の観測値再予測に占める重みが大きいことを示す.
予測にforecast()を使用できます
4.残差のホワイトノイズ検査
そうかんずチェツク
acf()
xは時間シーケンスオブジェクトであり、検査時にモデルの残差を取り、model$residuals;lag.maxは自己相関を計算する最大ヒステリシス次数を指定する.typeは自己相関係数を計算する方法を指定する.plotは、自己相関図を描くかどうかを示します.
自己相関図では、自己相関係数が急速に減衰し、境界内に落ちると、白ノイズになる可能性がある.境界を超えると,相関関係があることを示し,どの期に落ちるかは自己相関の次数である.
Ljung-Box検査
Box.test()
xは検査の時間系列であり、検査時にモデルの残差を取り、model$residualsである.Lagは相関係数を計算する最大次数を指定する.typeは検査タイプを示し、Ljung-Boxを使用する.fitdfは自由度を示す.
検査のP値から判断すると,元の仮定では自己相関は存在しない.
5.ARIMAモデル解析
arima()
xは単一変数の時間系列である.orderは、p,d,qの値を順番に設定する.seasonalは季節的な部分です
forecastパッケージのautoを介してもよい.arima()関数は適切なモデルパラメータを取得し、パラメータ「ic」はBICに設定され、厳格な要求がある.
ts()
ts(data = NA, start = 1, end = numeric(), frequency = 1, deltat = 1, ts.eps = getOption("ts.eps"), class =, names = )
dataは数値ベクトルまたはマトリクスであり、データボックスは強制的に数値ベクトルに変換される.startは、2018年第1四半期、start=c(2018、1);endは終了時点を指す.frequencyは、月が12、四半期が4のような1年間のデータの頻度を指定します.deltatはfrequencyの逆数であり、両者はその1つを設定する.namesは名前です.
plotを使ってもいいです.ts()時系列図の描画
2.時系列の分解
主に4つの影響要因がある:T(長期傾向),S(季節変動),C(循環変動),e(不規則変動)
推定トレンド、季節性、不規則性:
decompose()
decompose(x, type = c("additive", "multiplicative"), filter = NULL)
xは時間系列オブジェクトである.type季節分解の形式を指定し、加算モデルか乗算モデルかを選択します.filterはフィルタ係数です.
stl():Loessメソッドの使用
stl(x, s.window, s.degree = 0,...)
xは時間系列のオブジェクトである.s.windowは文字列「periodic」またはLoessメソッドで季節のスパンを抽出し、奇数値であるべきで、デフォルト値はありません.s.degreeは、局所多項式が季節抽出に適合する程度、0または1である.
どちらの方法の結果もplot()で描画できます.
3.指数平滑法
HoltWinters()
HoltWinders(x, alpha = NULL, beta = NULL, gamma = NULL, seasonal = c("additive", "multiplicative"), start.periods = 2, l.start = NULL, b.start = NULL, s.start = NULL, optim.start = c(alpha = 0.3, beta = 0.1, gamma = 0.1), optim.control = list())
xは時間系列のオブジェクトである.Alpha、beta、gammaはフィルタ係数であり、betaとgammaが共にFALSEである場合は単純指数平滑法(傾向がなく季節性がない)を用い、gammaのみがFALSEである場合はHolt二パラメータ線形指数平滑法(非季節性モデルにフィット)を用い、いずれもFALSEでない場合はWinters線形と季節性指数平滑法を用いる.seasonalは加算モデルか乗算モデルかを選択します.start.periodsは初期時期であり、初期値の自動検査に用いられ、2以上でなければならない.l.start、b.start、s.startはそれぞれ水平、トレンド、季節部分の初期値を表す
出力の結果,alpha,beta,gammaはそれぞれ現在の時点のレベル,トレンド部分の傾き,季節性部分に対応し,いずれも0~1の値をとり,近いほど最近の観測値再予測に占める重みが大きいことを示す.
予測にforecast()を使用できます
4.残差のホワイトノイズ検査
そうかんずチェツク
acf()
acf(x, lag.max = NULL, type = c("correlation", "covariance", "partial"), plot = TRUE, na.action = na.fail, demean = TRUE, ...)
xは時間シーケンスオブジェクトであり、検査時にモデルの残差を取り、model$residuals;lag.maxは自己相関を計算する最大ヒステリシス次数を指定する.typeは自己相関係数を計算する方法を指定する.plotは、自己相関図を描くかどうかを示します.
自己相関図では、自己相関係数が急速に減衰し、境界内に落ちると、白ノイズになる可能性がある.境界を超えると,相関関係があることを示し,どの期に落ちるかは自己相関の次数である.
Ljung-Box検査
Box.test()
Box.test(x, lag = 1, type = c("Box-Pierce", "Ljung-Box"), fitdf = 0)
xは検査の時間系列であり、検査時にモデルの残差を取り、model$residualsである.Lagは相関係数を計算する最大次数を指定する.typeは検査タイプを示し、Ljung-Boxを使用する.fitdfは自由度を示す.
検査のP値から判断すると,元の仮定では自己相関は存在しない.
5.ARIMAモデル解析
arima()
arima(x, order = c(0, 0, 0), seasonal = list(order = c(0, 0, 0), period = NA),...)
xは単一変数の時間系列である.orderは、p,d,qの値を順番に設定する.seasonalは季節的な部分です
forecastパッケージのautoを介してもよい.arima()関数は適切なモデルパラメータを取得し、パラメータ「ic」はBICに設定され、厳格な要求がある.