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

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

日経の経済指標からデータを取得して分析2 - 日経平均をドル円・消費支出・鉱工業生産で重回帰分析

 

www.crosshyou.info

 の続きです。

最終的な目標は日経平均の値動きをドル円、消費支出、鉱工業生産で説明したい、ということですが、今回はその前段階として利用可能なデータの時点を合わせたいと思います。

どういうことかというと、9月1日の時点で、日経平均とドル円は8月のデータはわかっていますが、消費支出は9月1日時点では8月のデータは発表されておらず、6月のデータしかわかっていないです。

同じように、鉱工業生産は、9月1日の時点では7月のデータしかわかっていないのです。

これを合わせたいと思います。

f:id:cross_hyou:20190911190044j:plain

独立したベクトルだと一目でわかるように、頭文字にvをつけました。

このうち、vMon, vNikk, vYearは何もしなくていいですね。

vConsは消費支出です。これは9月時点で6月のデータですから、3か月の遅れがあります。つまり、vConsの先頭にNAを三つつけて、おしりのデータを三つ削ればいいですね。

f:id:cross_hyou:20190911190652j:plain

こんな感じです。

次は、おしりの3つを削りますが、vConsのデータ数は何個でしょうか?

f:id:cross_hyou:20190911190830j:plain

length関数で確認したところ、62個です。なので、60、61、62番目のデータを削除すればいいですね。

f:id:cross_hyou:20190911191114j:plain

はい。できました。

同じようにvIPも時点を合わせます。vIPは2か月遅れがありますから、先頭にNAを2つたして、おしりの2つをけずります。

f:id:cross_hyou:20190911191535j:plain

はい。これで利用可能な時点のデータがわかりました。

全部の変数のはじめの6個のデータをhead関数で表示してみます。

f:id:cross_hyou:20190911192254j:plain


vConsがはじめの3つがNA、vIPがはじめの2つがNAとなっています。NAは分析できないので、全部の変数の先頭の3つを削除します。

f:id:cross_hyou:20190911192553j:plain

できました。

それでは、lm関数を使って回帰分析をしてみたいと思います。

反応変数がvNikkで、説明変数はvCons, vIP, vYenの3つです。

始めは一番複雑なモデルから調べます。

f:id:cross_hyou:20190911193310j:plain

p-valueは5.935e-12と0.05よりも小さいので有意なモデルです。

vIPとvYenの交差項はp値が0.55507なので削除してもよさそうです。

update関数で削除します。

f:id:cross_hyou:20190911193632j:plain

anova関数でmodel1とmodel2を比較しています。p値が0.5551なので、model1とmodel2は有意な違いは無いです。なので、より単純なmodel2を採用します。

summary関数でmodel2を確認しましょう。

f:id:cross_hyou:20190911193914j:plain

vConsとvIP, vConsとvYen, vConsとvIPとvYenの3つの交差項はどれも有意ですね。

I(vCons^2)を削除しましょう。

f:id:cross_hyou:20190911194239j:plain

anova関数でチェックすると、model2もmodel3も有意な違いは無いです。なのでより単純なmodel3をさらに調べます。

f:id:cross_hyou:20190911194423j:plain

I(vYen^2)を削除しましょう。

f:id:cross_hyou:20190911194622j:plain

p値は0.4222と0.05よりも大きいですから、model3とmodel4に有意な違いは無いです。

model4をさらに調べます。

f:id:cross_hyou:20190911194825j:plain

こんどは、I(vIP^2)を削除しましょう。

f:id:cross_hyou:20190911195003j:plain

model4とmodel5では有意な違いは無いです(p値は0.1695 > 0.05)。
なので、model5をさらに調べます。

f:id:cross_hyou:20190911195235j:plain

vYenのp値が0.05343と0.05よりも大きいですね。vYenは交差項で有意なのでvYenを削除してはいけないと思いますが、念のため削除してみましょう。

f:id:cross_hyou:20190911195602j:plain

model5とmodel6は有意な差は無いですね。なので、vYenを残したmodel5を最終的な回帰モデルにしましょう。

残差などをプロットしてみます。plot関数ですね。

f:id:cross_hyou:20190911200120j:plain

f:id:cross_hyou:20190911200132j:plain

残差プロットを描いたのはいいですが、正直な話、これをどう解釈したらいいかわかりません。

実際の日経平均とモデルで予測した値をグラフにしてみます。

f:id:cross_hyou:20190911200713j:plain

f:id:cross_hyou:20190911200726j:plain

どうでしょうか?けっこういい線いってる感じだと思います。

model5のAdjusted R-squaredは、0.74ですから、日経平均の水準の74%はドル円、消費支出、鉱工業生産で説明できたということです。

今回は以上です。回帰モデルについての一連の流れは、

 

Statistics: An Introduction Using R

Statistics: An Introduction Using R

 

 Statistics: An Introduction Using R by Michael J. Crawleyを参考にしました。