UnsplashのLeo SERRATが撮影した写真
の続きです。
前回は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でほとんで説明できる、というモデルでした。
今回は以上です。
次回は、
です。
初めから読むには、
です。