こんにちは。SI部の杉です。

前回、Rを用いた単回帰分析をご紹介しました。(前回のブログ

今回は、Rで重回帰分析を行う方法を紹介したいと思います。

前回のおさらいになりますが、
・単回帰分析・・・1つの目的変数を1つの説明変数で 予測するもの
2変量の間の関係性をY = aX + bという一次方程式の形で表す

今回扱う重回帰分析については、
・重回帰分析・・・1つの目的変数を複数の説明変数で 予測するもの
多変量の間の関係性を Y = a1x1 + a2x2 + ・・・ + bという一次方程式の形で表す

一般的に扱うデータは説明変数(データのパラメータ)が複数あることが多いので、
単回帰分析よりも重回帰分析を扱うことのほうがより頻繁になります。
前回の例としては身長と体重の相関関係を割り出しました。
今回は夏の気温とある飲食店ビールの売上の関係性を、重回帰分析を使って求めて見ましょう。

データ

考慮するパラメーターは以下です
・日付 (夏なので8/1 ~ 8/31 としました)
・気温 (単位は摂氏です)
・来客人数 (単位は人です)
・売上 (単位は円です)

以上を踏まえたうえで、以下のデータを用いました。

日付 気温(℃) 来客人数(人) ビールの売上(円)
8/1 28 121 83231
8/2 31 150 75001
8/3 33 167 92391
8/4 30 154 100121
8/5 35 161 123650
8/6 37 171 140230
8/7 31 163 118323
8/8 28 158 122515
8/9 29 149 113198
8/10 32 167 137900
8/11 31 155 129270
8/12 34 179 151701
8/13 34 175 157678
8/14 30 151 121018
8/15 27 156 88691
8/16 33 148 124091
8/17 34 171 140010
8/18 30 139 93809
8/19 35 184 165190
8/20 34 159 140087
8/21 32 146 139000
8/22 36 178 160120
8/23 34 161 142308
8/24 32 140 127231
8/25 33 153 129089
8/26 31 137 100212
8/27 29 142 90913
8/28 32 151 130991
8/29 34 169 140915
8/30 31 146 100814
8/31 33 164 140077

実際に重回帰分析をする

先ほど作ったデータは、ある飲食店の一日のビールの売り上げを表にしたものです。
このデータを使って分析を行ってみたいと思います。

Rのエディター画面で、以下の内容を入力してみます。

重回帰①

○気温の読み込み
temperature <- c(28 ,31 ,33 ,30 ,35 ,37 ,31 ,28 ,29 ,32 ,31 ,34 ,34 ,30 ,27 ,33 ,34 ,30 ,35 ,34 ,32 ,36 ,34 ,32 ,33 ,31 ,29 ,32 ,34 ,31 ,33)

○来客数の読み込み
customer < -c(121 ,150 ,167 ,154 ,161 ,171 ,163 ,158 ,149 ,167 ,155 ,179 ,175 ,151 ,156 ,148 ,171 ,139 ,184 ,159 ,146 ,178 ,161 ,140 ,153 ,137 ,142 ,151 ,169 ,146 ,164)

○売上の読み込み
sales <- c(83231 ,75001 ,92391 ,100121 ,123650 ,140230 ,118323 ,122515 ,113198 ,137900 ,129270 ,151701 ,157678 ,121018 ,88691 ,124091 ,140010 ,93809 ,165190 ,140087 ,139000 ,160120 ,142308 ,127231 ,129089 ,100212 ,90913 ,130991 ,140915 ,100814 ,140077)

○データセットの作成
beerData <- data.frame(temperature, customer, sales)

○データセットを表示
beerData

○相関行列の作成
round(cor(beerData), 4)

○相関関係の全体図
pairs(beerData, pch=21, bg=”red”, cex=2)

結果を見てみましょう。

重回帰③
Intercept(切片)は切片と呼ばれ、座標軸との交点を表します。
(前回の単回帰分析の項目を参照のこと)
temperature と、 customer は、気温と来客数の変数に対する傾きになります。
重回帰式は以下のものになります。

y = x1 × 4437.8 + x2 × 702.2 - 129131.7
y ・・・ 売上、 x1 ・・・ 気温、 x2 ・・・ 来客数

また、相関行列を見てみると、気温と売上の関係は0.7312と、相関関係が高いことも
わかります。この分析結果から、気温が高い ⇒ 来客数が多くなる ⇒ ビールの売上が上がる
というサイクルを予測することができることになります。

重回帰②

ビール業界では、22℃を超えると売上が跳ね上がり、28℃を超えると、1度上がるたびにビール瓶で
100万本アップすると言われています。
また、他にも温度に左右されやすい食品として、かき氷や蒲焼などもあります。
こういった売り上げに焦点を当てて独自で解析してみるのもいいでしょう。