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

統計学備忘録 since2016

Rを使って統計学を勉強するブログです

共分散分析を考えるためのグラフ

いつも勉強させていただいおります、下記サイトの共分散分析より
グラフの描き方の備忘録です

我楽多頓陳館--雑学と統計学の館

以下のようなグラフになります
f:id:yoshida931:20190222200917p:plain:w500

データのサンプルは上記サイトから引用してdataに入れました f:id:yoshida931:20190222201332p:plain

# まずはこれを描いて考える・・・!
plot(data$投与前,data$投与後 ,pch = c(21, 19)[data$薬剤]) #白A、黒B
fitAB <- lm(投与後~投与前+薬剤, data=data)
coef(fitAB)
lines(data$投与前,(coef(fitAB)[1]*2+coef(fitAB)[3])/2+coef(fitAB)[2]*data$投与前 )
lines(data$投与前,coef(fitAB)[1]+coef(fitAB)[2]*data$投与前,lty=4 )
lines(data$投与前,coef(fitAB)[1]+coef(fitAB)[3]+coef(fitAB)[2]*data$投与前,lty=3 )

# 投与前が多いほど、変化量は小さい
plot(data$投与前,data$変化量,pch = c(21, 19)[data$薬剤]) #白A、黒B
fitAB2 <- lm(変化量~投与前+薬剤, data = data)
coef(fitAB2)

# A群とB群をそれぞれ区分した回帰(ごく普通の回帰直線)
fit_A <- lm(変化量~投与前, data = data[data$薬剤=="A",])
summary(fit_A)
lines(data$投与前, coef(fit_A)[1] + coef(fit_A)[2]*data$投与前)
fit_B <- lm(変化量~投与前, data = data[data$薬剤=="B",])
summary(fit_B)
lines(data$投与前, coef(fit_B)[1] + coef(fit_B)[2]*data$投与前)

# 共通の回帰   2群の回帰直線が平行と仮定
fit_A_B <- lm(変化量~投与前 + 薬剤, data=data)
coef(fit_A_B)
lines(data$投与前, coef(fit_A_B)[1] + coef(fit_A_B)[2]*data$投与前, lty=2 )
lines(data$投与前, coef(fit_A_B)[1] + coef(fit_A_B)[3] + coef(fit_A_B)[2]*data$投与前, lty=2)

# 全体共通の回帰
lines(data$投与前,(coef(fit_A_B)[1]*2 + coef(fit_A_B)[3])/2 + coef(fit_A_B)[2]*data$投与前, lty=2 )