www.crosshyou.info

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

都道府県別の保護統計調査のデータの分析9 - Rで時系列の回帰分析のSerial Correlationをテストする。

UnsplashLeo SERRATが撮影した写真 

www.crosshyou.info

の続きです。

前回はRのdynlmパッケージを使い、時系列データの回帰分析をして、r_one: 1号観察割合をr_four: 4号観察の割合で回帰分析してみました。

今回は、時系列データの回帰分析で考慮しなければならない、Serial Correlationをテストしてみようと思います。

Serial Correlationは、残差が、過去の残差と相関していることを言います。これがあると、回帰分析の結果は適切ではないようです。

それでは、tsreg1のモデル、r_one = 0.9845 - 4.5796 * r_four + u を調べてみます。

resdi()関数で残差が取り出せますので、dynlm(resid(モデルオブジェクト) ~ L(resid(モデルオブジェクト)))で残差を一つ前の残差で回帰分析できます。その結果をsummary()関数で見ています。L(resid(tsreg1))の係数は0.78でp値は、ほとんど0です。

つまり、Serial Correlation ですね。

散布図で確認してみます。

uという名前で残差のデータを格納して、obs()関数でデータの数を保存しておきます。

そして、tibble()関数で残差と一つずらした残差のデータフレームを作成して、ggplotパッケージで散布図を描きました。たしかに残差と一つ前の残差は正の相関があるようです。

次は、tsreg2のモデル、r_one = 0.7669 - 0.3055 * r_four + trend(tsobj) + u のSerial Correlationを調べてみます。

こちらもp値が0.00105と0.05よりも小さいので、Serial Correlationありですね。

同じように散布図でも確認しましょう。

散布図でも相関している様子が確認できました。

次は、tsreg3のモデルです。

r_one = 0.0121 -0.38692 * r_four + 0.24532 * L(r_four) + 0.97754 * L(r_one) + u

というr_oneのラグを加えてモデルです。

これは、p値は0.365と0.05よりも大きいので、Serial Correlationではないようです。係数も-0.2ぐらいです。

散布図を描いてみます。
 

あまり相関が無いことがわかります。

最後の時系列の回帰分析モデルは、tsreg4です、

d(r_one) ~ -0.01362 - 0.33948 * d(r_four) + u 

という差分を回帰分析したものです。

p値は0.345なので、Serial Correlationは無いようです。

散布図を描いてみます。

となりました。

tsreg3とtseg4のモデルはSerial Correlationがありませんでした。ただし、tsreg4はモデル自体のp値が0.05よりも大きかったので、有意なモデルではありませんでした。

改めて、tsreg3のモデルを表示してみます。

r_oneは一つ前のr_oneでほとんで説明できる、というモデルでした。

今回は以上です。

次回は、

www.crosshyou.info

です。

初めから読むには、

www.crosshyou.info

です。