www.crosshyou.info

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

日銀短観2019年12月調査のデータ分析5 - 現状と先行きの回帰分析。

 

www.crosshyou.info

 の続きです。

今回は、現状と先行きで回帰分析をしてみようと思います。

先行きを反応変数、現状を説明変数にしてみます。

まずは、plot関数で散布図を描いてみましょう。

f:id:cross_hyou:20191221101555p:plain

f:id:cross_hyou:20191221101605p:plain

右肩上がりの散布図です。現状(Now)と先行き(Next)には正の相関があることがわかります。cor.test関数で相関係数を見てみます。

f:id:cross_hyou:20191221101958p:plain

相関係数は0.9099091とかなり高い相関です。p-value < 2.2e-16です。95%信頼区間の相関係数は0.8640785から0.9407773となっています。現状(Now)と先行き(Next)には確固たる相関関係があります。

R言語で回帰分析をするには、lm関数を使います。

f:id:cross_hyou:20191221102538p:plain

lm関数で回帰分析モデルを作ってsummary関数でモデルを表示します。

p-value < 2.2e-16と0.05以下ですから、この回帰分析モデルは有意です。

切片とNowの係数のp値はともに0.05以下ですので、どちらも意味があります。

Adjusted R-squaredが0.8258です。これはこのモデルが先行き(Next)の値の82.58%を説明できている、ということです。

この回帰分析モデル式は、

先行き(Next) = -2.85264 + 0.83000 * 現状(Now)

という式です。現状(Now)の値に0.83を掛けて、2.85264を引いた値が先行き(Next)です。

ここからは、Rクックブック Paul Teetor著を参考にしていろいろやってみます。

 

Rクックブック

Rクックブック

  • 作者:Paul Teetor
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2011/12/22
  • メディア: 大型本
 

 

plot関数でこのモデルの残差プロットを見てみます。

f:id:cross_hyou:20191221103343p:plain

f:id:cross_hyou:20191221103311p:plain

 

特に問題がありそうな残差プロットではないです。

confint関数で回帰式の係数の信頼区間がわかります。

f:id:cross_hyou:20191221104121p:plain

Nowから一番低いNextを導出する式は、

Next = -4.2677804 + 0.746879 * Now

です。

その反対に、Nowから一番高いNextを導出する式は、

Next = -1.437496 + 0.931127 * Now

です。この二つの式の直線とmodel1の直線を散布図に重ね合わせてみましょう。

f:id:cross_hyou:20191221105156p:plain

f:id:cross_hyou:20191221105401p:plain

confint関数はmatrixオブジェクトになっていますので、confint(model1)[ , 1]で一列目の値を指定できます。

influence.measures関数で回帰分析モデルに大きな影響を与えている観測値がわかります。

f:id:cross_hyou:20191221111110p:plain

一番右のアスタリスクが大きな影響を与えている、という印です。このデータの番号を一つ一つ確認すればいいのですが、もっと効率的にやります。

まず。このinfluenceというオブジェクトには、$is.infで影響力があればTRUE、なければFALSEのマトリックスがあります。

f:id:cross_hyou:20191221111436p:plain

このinfmtxというマトリックスを行で合計します。全部FALSEだったら0になってその行の観測値は影響が小さい、ということで一つでもTRUEがあれば1以上の値になってその観測値は影響が大きいとわかります。rowSums関数でマトリックスの行を合計できます。

f:id:cross_hyou:20191221111837p:plain

as.logical関数でTRUE/FALSEのベクトルに変換します。

f:id:cross_hyou:20191221112111p:plain

このidxでデータフレームからTRUEの行だけ表示すればいいですね。

f:id:cross_hyou:20191221112349p:plain

上の7つが回帰モデルに大きな影響を与えています。

散布図にしてみましょう。

f:id:cross_hyou:20191221112934p:plain

f:id:cross_hyou:20191221112948p:plain

今回は以上です。