”R”で実践する統計分析|回帰分析編:②重回帰分析【外部寄稿】

AUTHOR :   ギックス

Rによる回帰分析の実施手順を紹介

本日は、Rの使い方の実践として、「回帰分析」について紹介していきます。なお、回帰分析の理論については、こちらの特集内の【寄稿】回帰分析とその応用を参照ください。

『”R”で実践する統計分析|回帰分析編』は、全3回で、以下の構成で進めていきます。

回帰分析編 第1回:単回帰分析
回帰分析編 第2回:重回帰分析
回帰分析編 第3回:ロジスティック回帰分析

第2回の今回は「重回帰分析」を実践していきます。

Rによる重回帰分析

今回も、利用するデータは、回帰分析とその応用②~重回帰分析から拝借します。

media_nakanishi04

* 出所: 柏木吉基(2006)『Excelで学ぶ意思決定論』(オーム社)p.94

上記のデータは、気象データとビール販売額が対となったデータですね。但し、今回は、気象データには、気温と湿度の2つがあります。つまりは、説明変数が2つあるわけです。単回帰分析は、説明変数は1つでしたが、重回帰分析は、説明変数が2つ以上となります。

それでは、Rを動かしていきましょう。今回も、既にcsvファイル化されていると仮定します。
# csvファイルのデータのカラムは、次のようにしています。
気温 → air.temp
湿度 → humidity
ビール販売額 → beer.sales

前回同様、R環境にデータを読み込みます。

>data.lm2 <- read.table(“sample_lm2.csv”, sep=”,”, header=T)

データの読み込みが完了したら、データの傾向を掴みましょう。ただ、今回のデータは、説明変数が2つあります。前回のように、目的変数と説明変数が1:1ではないので、同じ手法は使えません。そこで、散布図行列を使ってみましょう。

>cor(data.lm2)
>pairs(data.lm2)

上記のコマンドを利用することで、変数間の相関関係を見ることができます。cor関数で相関係数を算出し、pairs関数で各変数間の散布図を出力します。

相関行列

散布図行列

どうやら、ビール販売額と気温、及び湿度にはそれぞれ正の相関関係がありそうです。では、重回帰分析を実行していきます。次のコマンドを実行します。

>output.lm2 <- lm(data.lm2$beer.sales~data.lm2$air.temp + data.lm2$humidity)

単回帰分析とほとんど同じですね。違いは、{~(チルダ)}の後の変数が2つになっている点です。
# 実は、 lm(data.lm2$beer.sales~.)でも結果は同じです。{~.}は、全ての説明変数をモデル式に組み込む時に、このような書き方をします。今回は、2変数ですし、モデル式がイメージし易いよう全ての変数名を指定しています。

それでは、モデル式を確認しましょう。前回も利用したsummary関数を利用します。

>summary(output.lm2)

以下のような結果が出力されたと思います。

重回帰分析結果

結果を確認していきましょう。モデル式の各変数の係数から見ていきます。{Coefficients:}をみれば、{(Intercept)}が「380.007」、気温が「86.794」、湿度が「41.664」となっています。つまり、モデル式は、{(ビール販売額(千円)) = 86.794 × (気温) + 41.664 × (湿度) + 380.007}であることが分かります。

今回は、もう少し結果を読み取っていきましょう。{Coefficients:}の係数欄の一番右に{Pr(>|t|)}と項目がありますね。

これは、各変数が、統計的に有意であるかを示したものです。つまり、統計的にどれ程意味があるかを示したものです。通常は、0.05(5%)未満であるかどうで、その係数が統計的に意味を持つかを判断します。今回の結果は、どれも0.05を下回っていますね。

また、結果欄の下のほうに、{Multiple R-squared:}がありますが、これは、モデル式全体の説明力(決定係数と言います)を意味します。つまり、データ(目的変数)に対して、どれ程、このモデル式は目的変数を説明できているかを指しています。今回の結果では、0.8545ですから、85%は、説明できていることになります。
# 初めて統計学に触れる方は、モデル式の信頼度を表しているものと認識して頂けたらと思います。

今回はRを利用して、重回帰分析によるモデル式の構築をみてきました。ビジネスで利用する際は、そもそもモデル式の妥当性や精度もみる必要がありますが、今回の連載は、あくまでRでの実践に重きを置いていますので、そのあたりは省略しています。

次回は、Rによるロジスティック回帰分析となります。次回もお付き合い頂けたら幸いです。

 

【当記事は、ギックスの分析ツールアドバイザーであるYuu.Kimy氏にご寄稿頂きました。】

Yuu.Kimy
ギックス分析ツールアドバイザー。普段は、某IT企業にてデータ活用の検討/リサーチ、基盤まわりに従事。最近の関心事は、Rの{Shiny}パッケージのWebアプリ作成、Pythonによるデータ分析、機械学習等々。週末は、家事と子どもの担当をこなす(?)家庭にやさしいエンジニア(の端くれ)。
【個人ブログ】http://yuu-kimy-note.hatenablog.com/

SERVICE