Rで何かをしたり、読書をするブログ

政府統計の総合窓口のデータや、OECDやUCIやのデータを使って、Rの練習をしています。ときどき、読書記録も載せています。

時系列データの分析 7 - Serial Correlation があるかどうかをチェックする

(Bing Image Creator で生成: プロンプト: Close-up of yellow and pink Bougainvillea flowers, back scene is blue sky, photo)

www.crosshyou.info

の続きです。

今回は、Serial Correlation があるかどうかをチェックしたいと思います。

static_model の残差を求めます。

グラフにしてみます。

どうなんでしょうか?この残差のグラフを見て、Serial Correlation があるかどうかわかりますかね?

残差のラグを求めます。

u を u_lag1 で回帰分析して、u_lag1 の係数が有意ならば Serial Correlation があります。

lm() 関数と summary() 関数で実行します。

u = 0.43 + 0.79 * u_lag1 + e という推定式です。0.79 という係数は有意な係数でした。正の Serial Correlation があります。

FDL_model ではどうでしょうか?

まずは、残差を求めました。

FDL_model の残差も static_model と同じようなグラフですね。

残差のラグを作成しました。回帰分析で Serial Correlation を調べます。

u = 0.53 + 0.93 * u_lag1 + e と推定されました。u_lag1 の係数は有意です。FDL_model の残差も Serial Correlation がありました。

AR(1) model はどうでしょうか?

残差をグラフにしてみます。

前の2つのグラフとは、あきらかに形状が違うグラフですね。

残差のラグを求めます。

回帰分析します。

u = -0.026 + 0.255 * u_lag1 + e という式が推計できました。この 0.255 の有意な係数です。

static_model, FDL_model, AR(1) model, 3つとも Serial Correlation があることがわかりました。

今回は以上です。

初めから読むには、

www.crosshyou.info

です。

次回は

www.crosshyou.info

です。

今回のコードは以下になります。

#
# static_modelの残差
static_residual <- tibble(u = resid(static_model))
static_residual
#
# 残差のチャート
plot(static_residual$u)
lines(static_residual$u)
#
# u: 残差 のラグを作成
static_residual <- static_residual |> 
  mutate(u_lag1 = c(NA, u[1:(nrow(static_residual) - 1)]))
static_residual
#
# u ~ u_lag を回帰分析
lm(u ~ u_lag1, data = static_residual) |> 
  summary()
#
# FDL_modelの残差
FDL_residual <- tibble(u = resid(FDL_model))
FDL_residual
#
# 残差のチャート
plot(FDL_residual$u)
lines(FDL_residual$u)
#
# u のラグを作成
FDL_residual <- FDL_residual |> 
  mutate(u_lag1 = c(NA, u[1:(nrow(FDL_residual) - 1)]))
FDL_residual
#
# u ~ u_lag1 を回帰分析
lm(u ~ u_lag1, data = FDL_residual) |> 
  summary()
#
# AR1_modelの残差
AR1_residual <- tibble(u = resid(AR1_model))
AR1_residual
#
# 残差のチャート
plot(AR1_residual$u)
lines(AR1_residual$u)
#
# uのラグを作成
AR1_residual <- AR1_residual |> 
  mutate(u_lag1 = c(NA, u[1:(nrow(AR1_residual) - 1)]))
AR1_residual
#
# u ~ u_lag1 を回帰分析
lm(u ~ u_lag1, data = AR1_residual) |> 
  summary()
#