の続きです。
最終的な目標は日経平均の値動きをドル円、消費支出、鉱工業生産で説明したい、ということですが、今回はその前段階として利用可能なデータの時点を合わせたいと思います。
どういうことかというと、9月1日の時点で、日経平均とドル円は8月のデータはわかっていますが、消費支出は9月1日時点では8月のデータは発表されておらず、6月のデータしかわかっていないです。
同じように、鉱工業生産は、9月1日の時点では7月のデータしかわかっていないのです。
これを合わせたいと思います。
独立したベクトルだと一目でわかるように、頭文字にvをつけました。
このうち、vMon, vNikk, vYearは何もしなくていいですね。
vConsは消費支出です。これは9月時点で6月のデータですから、3か月の遅れがあります。つまり、vConsの先頭にNAを三つつけて、おしりのデータを三つ削ればいいですね。
こんな感じです。
次は、おしりの3つを削りますが、vConsのデータ数は何個でしょうか?
length関数で確認したところ、62個です。なので、60、61、62番目のデータを削除すればいいですね。
はい。できました。
同じようにvIPも時点を合わせます。vIPは2か月遅れがありますから、先頭にNAを2つたして、おしりの2つをけずります。
はい。これで利用可能な時点のデータがわかりました。
全部の変数のはじめの6個のデータをhead関数で表示してみます。
vConsがはじめの3つがNA、vIPがはじめの2つがNAとなっています。NAは分析できないので、全部の変数の先頭の3つを削除します。
できました。
それでは、lm関数を使って回帰分析をしてみたいと思います。
反応変数がvNikkで、説明変数はvCons, vIP, vYenの3つです。
始めは一番複雑なモデルから調べます。
p-valueは5.935e-12と0.05よりも小さいので有意なモデルです。
vIPとvYenの交差項はp値が0.55507なので削除してもよさそうです。
update関数で削除します。
anova関数でmodel1とmodel2を比較しています。p値が0.5551なので、model1とmodel2は有意な違いは無いです。なので、より単純なmodel2を採用します。
summary関数でmodel2を確認しましょう。
vConsとvIP, vConsとvYen, vConsとvIPとvYenの3つの交差項はどれも有意ですね。
I(vCons^2)を削除しましょう。
anova関数でチェックすると、model2もmodel3も有意な違いは無いです。なのでより単純なmodel3をさらに調べます。
I(vYen^2)を削除しましょう。
p値は0.4222と0.05よりも大きいですから、model3とmodel4に有意な違いは無いです。
model4をさらに調べます。
こんどは、I(vIP^2)を削除しましょう。
model4とmodel5では有意な違いは無いです(p値は0.1695 > 0.05)。
なので、model5をさらに調べます。
vYenのp値が0.05343と0.05よりも大きいですね。vYenは交差項で有意なのでvYenを削除してはいけないと思いますが、念のため削除してみましょう。
model5とmodel6は有意な差は無いですね。なので、vYenを残したmodel5を最終的な回帰モデルにしましょう。
残差などをプロットしてみます。plot関数ですね。
残差プロットを描いたのはいいですが、正直な話、これをどう解釈したらいいかわかりません。
実際の日経平均とモデルで予測した値をグラフにしてみます。
どうでしょうか?けっこういい線いってる感じだと思います。
model5のAdjusted R-squaredは、0.74ですから、日経平均の水準の74%はドル円、消費支出、鉱工業生産で説明できたということです。
今回は以上です。回帰モデルについての一連の流れは、
Statistics: An Introduction Using R
- 作者: Michael J. Crawley
- 出版社/メーカー: Wiley
- 発売日: 2014/11/24
- メディア: ペーパーバック
- この商品を含むブログを見る
Statistics: An Introduction Using R by Michael J. Crawleyを参考にしました。