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

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

時系列データの分析 5 - 月のダミー変数を追加した回帰分析。季節性は見られない。

(Bing Image Creator で生成: プロンプト: Close up of purple and pink Hyacinth flowers, flowering near by old small pond, background is blue sky and a few white clouds, photo)

 

www.crosshyou.info

の続きです。前回は、1989年12月以前とその後というダミー変数を追加して回帰分析をしました。その結果、このダミー変数は有意な変数ではないことがわかりました。

今回は季節性があるかどうかを調べます。

まず、月を表す変数を追加します。

month という変数を追加しました。データ型が数値型なので、as.factor() 関数でファクター型に変換します。

month が <fct> になっています。

では、この month を加えたモデルを推定します。

1 月がベースになっています。month5 が 38.06 となっていますが、これは、5 月の tpx: 東証株価指数は平均すると 1 月よりも 38.06 ポイント高い、ということですね。6 月は -33.41 なので 1 月よりも平均すると 33.41 ポイント低いということですね。

これらの月のダミーが有意なのか確認します。

lmtest パッケージの読み込みをします。

coeftest() 関数を使います。

month2 ~ month12 まで全て有意な変数ではありませんでした。month のダミー変数が全体として有意かどうかも確認します。

car パッケージの読み込みをします。

linearHypthesis() 関数を使って、month 変数が全体として有意かどうかを検定できます。

p 値が 0.99 です。つまり、month 全体としても有意な変数ではない、ということですね。

FDL(Finite Distributed Lag) Model にも month を追加してみます。

month6 の係数が Static Model ではマイナスでしたが、FDL Model ではプラスになっていますね。

coeftest() 関数で有意かどうかを確認します。

month2 ~ month12 まで全て有意ではありません。

linearHypothesis() 関数で全体としての有意かどうかを検定します。

p 値は 0.9977 です。全体としても有意ではありませんね。

結論としては、tpx: 東証株価指数の水準には Lg5: 法人税収入を説明変数にしたときには季節性はみられない、ということですね。

今回は以上です。

次回は

www.crosshyou.info

です。

 

初めから読むには、

www.crosshyou.info

です。

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

#
# 月を表す変数を追加
df <- df |> 
  mutate(month = month(time)) |> 
  relocate(tpx, tpxchg, index, time, month)
df
#
# month をファクター型に変換
df <- df |> 
  mutate(month = as.factor(month))
df
#
# month を加えた Static Model
static_M_model <- lm(tpx ~ Lg5 + month, data = df)
coef(static_M_model)
#
# lmtest パッケージの読み込み
library(lmtest)
#
# 変数の係数が有意かどうかを検定
coeftest(static_M_model) |> round(4)
#
# car パッケージの読み込み
library(car)
#
# month が有意かどうか
linearHypothesis(static_M_model,
                  matchCoefs(static_M_model, "month"))
#
# FDL Model に month を追加
FDL_M_model <- lm(tpx ~ Lg5 + Lg5_lag1 + Lg5_lag2 + month, data = df)
coef(FDL_M_model)
#
# month ダミーが有意かどうか
coeftest(FDL_M_model)
#
# month 全体の検定
linearHypothesis(FDL_M_model,
                 matchCoefs(FDL_M_model, "month"))
#

今回も

を参考にしました。