こんにちは。本日はRを使った回帰分析の方法をまとめました。
特に初心者の方はこのような疑問があるかと思います。
✅疑問
・回帰分析は何のために使うの?
・結果の意味はどう理解するの?
・Rで回帰分析をする方法を知りたい
このような疑問にお答えします。
これを書いている僕は医療職で働きながら大学院に通って4年目、RやSPSSなど統計ソフトの使い方を1から学び、現在は学会発表や論文投稿までできています。
✅本記事はこのような方におススメ
・Rを使った回帰分析の方法を知りたい
・回帰分析の理論を簡単に知りたい
では始めていきます。
回帰分析とは予測式をつくることです
回帰分析ってとっつきづらいですよね。
すごい簡単に説明しますと
予測したいデータを1つのデータ項目から推測すること
です。
例えば、予測したいデータ=飲食店の数、データ項目=人口としましょう。
飲食店の数を人口から推測する
このようなことを行います。
単回帰分析と重回帰分析
今の例のように1つのデータ項目からあるデータ項目を予想する場合に使うのが単回帰分析、2つ以上のデータ項目からあるデータ項目を予想したする場合は重回帰分析を使います。
単回帰分析→飲食店の数を人口だけから予測
重回帰分析→飲食店の数を人口と車の数、平均年齢から予測。
こんな感じです。
予測は↓の図のような一次式に当てはめて行います。
↑参考;統計学の時間:https://bellcurve.jp/statistics/course/9700.html
繰り返しですが、
2つの項目間の関係をこのような直線を引いて表すことを回帰分析といいます。
Rを使った回帰分析
では実際にRを使って回帰分析を行います。
まずはデータを読み込みます。
今回はこちらのデータを使います。
↑「reg_demodata.csv」というCSVファイルになっています。
↑「飲食店の数」、「人口」、「平均年齢」、「駅の数」、「交通量」のデータです。全部で15行5列のデータになっていますね。
↑こちらでデータの読み込みが出来ました。
単回帰分析のやり方と結果の読み方
↑飲食店の数を「inshoku」、人口を「jinkou」として読み込みます。
Rは写真のように
✓ データ名[行数 , 列数]
で指定します。この場合、1列目のデータと2列目のデータを指定しています。
次に回帰分析を実際にやってみます。
「lm」という関数を使います。
lm (予測したいしたい変数 ~ 項目), data<-データのファイル名
今回は「人口」から「飲食店の数」を予測したいので、
予測したい変数:「飲食店の数」
項目:「人口」
となります。
また、予測される変数(飲食店の数)のことを目的変数
項目の方を説明変数といいます。
目的変数→解析の目的だから目的変数
説明変数→目的変数を説明するから説明変数
実際にlmを行ってみます。
↑このような結果になりました。
結果を説明しますね。
まず、x軸が説明変数(人口)、y軸に目的変数(飲食店の数)が来るように散布図を書きましょう。
詳しい散布図の書き方はRで散布図と回帰直線を引く方法【2つの項目の関係性】を見て下さい。
↑
plot(説明変数、目的変数)で散布図が引けます。
今日は更に回帰分析の結果、作られた直線(回帰直線)も引いていきます。
まず回帰分析に名前を付けます。
↑「demolm」という名前を付けました。
回帰直線を引いていきます。
↑このような直線が引けました。
先ほどの回帰分析の結果に戻ります。
↑y=0.0354x + 317.0638 という直線が先ほど引いた直線になります。
ただ、これだけでは情報が少なすぎます。
「それで?」っていう感じです。
次にsummary関数を使います。
✓ summary(データ)
データの詳細を表示してくれる関数です。
↑
summary関数は結果の詳細を表示してくれます。
見てほしい結果は赤丸と赤線の部分です。
t value | t値といいます。t値が大きいほど目的変数に説明変数が与える影響が大きいです |
p value | p値といいます。p値<0.05で有意な関係性を持ちます。
(関係があるということができる) |
Multiple
R-squared |
決定係数といいます。0-1の範囲を取り、0.5以上で回帰式の予測精度が高いといわれています。 |
今回のデータの解釈
p値=0.1977で有意な関係性とはいえませんでした。
また、予測の精度を示す決定係数は0.1241で0.5未満であり、低精度の予測だったということがわかりました。
これで単回帰分析は終了です。
本日は以上となりますが、次回は重回帰分析に進んでいきたいと思います。
よろしくお願いします。