理学療法士がまとめたノート

統計学備忘録(R言語のメモ)

since2016 ときどきTEXのメモ

単回帰分析

投稿日2017.2.2
更新日2017.11.13

説明変数と目的変数との関係を直線でモデル化する回帰分析。

Xi <- c(35, 45, 55, 65, 75)
Yi <- c(114, 124, 143, 158, 166)
plot(Xi, Yi, pch = 16)
abline(lm(Yi~Xi), col = 2)

f:id:yoshida931:20171108084407j:plain:w300

どのようにして赤のラインを引いたのか?を考えていきます.

母回帰方程式 

Yi=\beta1 + \beta2 * Xi + ei\ \ (i=1,2,3,,,n)

これが大前提となる母集団のモデルです.一般的に知ることができないので、このモデルについて推定・検定することを回帰分析と呼んでいます.

母回帰係数 \beta1, \beta2
誤差項 ei (これが回帰分析のポイントになります)
 ・期待値=0
 ・分散は一定
 ・異なる誤差項は無相関

E(Yi)=\beta1+\beta2*Xi

  

最小二乗法

最小二乗法により、母回帰係数(\beta1, \beta2) を推定します. その推定値を(\hat{\beta1}, \hat{\beta2})とします

母回帰方程式より、誤差項ei=Yi-(\beta1 + \beta2 * Xi) となります

最小二乗法とは、S= \sum {ei}^2とおいた場合に、Sが最小になる(\hat{\beta1}, \hat{\beta2})を求める手法です.

S=\sum({Yi}^2-2β1Yi-2β2XiYi+{β1}^2+2β1β2Xi+{β2}^2{Xi}^2)

Sを最小にするために、\beta1, \beta2 でそれぞれで偏微分して0とおき、二つの方程式を解くことで次式を求めます.

標本(偏)回帰係数
\hat{\beta2}=\frac{\sum{(Xi-\bar{Xi})(Yi-\bar{Yi})}}{\sum{(Xi-\bar{Xi})}^2}  \hat{\beta1}=\bar{Yi}-\hat{\beta2}\bar{Xi}

標本回帰方程式
Y=\hat{\beta1}+\hat{\beta2}\bar{X}

RのサンプルCO2(草の耐寒性実験)からデータを抜き出して回帰分析を行ってみます.

# データフレームから必要な部分だけ抜き出します.(CO2濃度95ml/Lと175ml/Lの二酸化炭素摂取量)
x <- subset(CO2, subset = conc == 95, select = c(uptake))     
y <- subset(CO2, subset = conc == 175, select = c(uptake)) 
x <- x$uptake
y <- y$uptake

summary(lm(formula=y~x) )


#  Coefficients:
#                 Estimate Std. Error t value Pr(>|t|)   
#  (Intercept)   1.4784     6.1126   0.242  0.81377   
#  x               1.6972     0.4876   3.480  0.00592 **

係数の信頼区間
confint(fit, level=0.95)

#                   2.5 %    97.5 %
# (Intercept) -12.1412949 15.098128
# x             0.6106643  2.783748

plot(x,y)
abline(lm(y~x))

f:id:yoshida931:20171113125825j:plain:w300
標準化残差を確認してみます

ei<-y-(1.4784+1.6972*x)
eis<-ei/sqrt( (sum(ei^2) )/(length(x)-2) )  #標準化残差
plot(eis,xlab="CO2濃度95ml/L",ylab="CO2濃度175ml/L")
abline(h=0, lty=2, col=2)

f:id:yoshida931:20171113131309j:plain:w300

次にRの関数で求めた回帰モデル y = (1.4784+1.6972*x) を最小二乗法で求めてみます.
最小二乗法より標本回帰係数\hat{\beta2} を求めます

sum ( ( y - mean(y) ) * ( x - mean(x) ) ) / sum ( ( x - mean(x) )^2 )
= 1.697206

標本回帰係数\hat{\beta1} (y切片)を求めます

mean(y) - 1.697206*mean(x)
=1.478416

回帰モデル
y = 1.4784 + 1.6972*x

参考) 豊田秀樹 (著, 編集);回帰分析入門 (Rで学ぶ最新データ解析) ,東京図書 ,2012