Rで回帰分析①ー単回帰, lm関数, 残差プロット, Q-Qプロットー

Rでデータ解析と可視化

車の運転速度から、ブレーキを踏んでから停止までの距離を予測したい!

ここで使うのが単回帰分析です!

車の運転速度のデータ(説明変数)を用いて、停止までの距離(目的変数)を予測する式を作る、単回帰分析を行います。

 





1.単回帰分析とは

単回帰分析は、一つの変数xにより一つのyを説明・予測する方法です。
被説明変数 (応答変数, 従属変数, 目的変数) y: 説明される変数
説明変数 (独立変数, 予測変数) x: 説明する変数

yi=β0+β1xi+εi   (i=1,2,3,…,n)

βは回帰係数で、β0は切片、β1は傾きを表し、εiは誤差項(測定に伴う誤差などを表すもの)です。


2.単回帰分析をやってみよう(carsのデータセット使用, 散布図行列や相関係数も確認)

今回はcarsのデータセットを使用して、コードを解説します。

carsは、Speed and Stopping Distances of Cars(車の速度と停止距離)のデータです(1920年代)。

head(cars) # carsのデータセット確認
   speed dist
 1     4    2
 2     4   10
 3     7    4
 4     7   22
 5     8   16
 6     9   10
pairs(cars) #1 散布図行列
cor(cars) #2 相関係数 
 speed dist
 speed 1.0000000 0.8068949
 dist 0.8068949 1.0000000

cars_lm <- lm(dist~speed, data=cars) #3 単回帰分析
plot(dist~speed, data=cars) #4 散布図
abline(cars_lm) #5 単回帰直線を引く

coef(cars_lm) #6 β0とβ1の算出
 (Intercept) speed 
 -17.579095 3.932409 

summary(cars_lm) #7 単回帰分析の結果の詳細
 Call:
 lm(formula = dist ~ speed, data = cars)
 Residuals:
 Min 1Q Median 3Q Max 
 -29.069 -9.525 -2.272 9.215 43.201 
 Coefficients:
 Estimate Std. Error t value Pr(>|t|) 
 (Intercept) -17.5791 6.7584 -2.601 0.0123 * 
 speed 3.9324 0.4155 9.464 1.49e-12 ***
 ---
 Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
 Residual standard error: 15.38 on 48 degrees of freedom
 Multiple R-squared: 0.6511, Adjusted R-squared: 0.6438 
 F-statistic: 89.57 on 1 and 48 DF, p-value: 1.49e-12

#1 散布図行列 #2 相関係数 で変数間の関連を確認しました。


右肩上がりのプロットであることが分かりました。
また、相関係数は0.81であり、これらの変数間には強い正の相関があることが分かりました。

#3 単回帰分析 (lm関数を使用)
lm(被説明変数~説明変数, data) によって分析できます。

#4, 5で、散布図+単回帰直線 で以下の図が作成できます。

#6 β0β1の算出
β0=-17.579095  β1=3.932409 が求まりました。
yi=-17.6+3.9xi  の式で、xiを入れると予測値yiが求まる単回帰直線の式ができました。

#7 単回帰分析の結果の詳細
Multiple R-squared(決定係数): 0.6511
Adjusted R-squared(自由度調整済み決定係数 変数の数で補正): 0.6438
これらの決定係数は、0~1の間の値をとり、モデルがどの程度yを説明できているかを示す指標になります。
p-value(p値): 1.49e-12 で、0.05以下であるため、xがyを説明する力が十分であると結論できました。

参考)上記のsummary(cars_lm)で表示される、各名称についても丁寧に記述があり、本記事に関する情報はかなり豊富です。





3.単回帰の当てはまり具合を、残差分析で確認(残差プロット, Q-Qプロット)

残差分析によって、単回帰の当てはまり具合を確認します。

par(mfrow=c(1,2)) #8
plot(cars_lm, which=1:2) #9

plot関数で、残差に関するグラフは6つ指定できます。

今回は、その中の”「残差プロット」と「Q-Qプロット」を作図指定しました。

#8 複数の図を表示する指示で、1行に2つ作図せよの指示です。

#9 残差分析の1:残差プロットと2:Q-Qプロットを指定しています。

★残差プロット(上記左図)
横軸に予測値、縦軸に残差をプロットしています。
赤線は残差を説明する回帰曲線で、残差=0と重なっているほど、あてはまりがよい回帰モデルであるといえます。
図中の23, 35, 49 は、データフレームの行番号であり、このデータが、残差の絶対値が大きいもの※になります。

※これらが外れ値の候補になることも。ただし、外れ値として取り除くかは慎重な検討が必要。

★Q-Qプロット(quantile-quantile plot 上記右図)
横軸に標準正規分布の分位点、縦軸に残差の分位点をプロットしています。
正規分布である場合、データ プロットは直線になります。
23, 35, 49は、残差プロット同様、残差の絶対値が大きく、正規分布から外れていると考えられます。
ただし、残差プロット同様、外れ値の除去については検討が必要になります。

以下、参考図書です。Rを初めからきっちり学びたい方にお勧めです。

コメント

タイトルとURLをコピーしました