回帰直線と交互作用

(dat <- data.frame(
    y=c(1,2,3,4),
    x=c(4,5,8,12),
    group=c("A", "A", "B", "B")
))
#散布図作成
plot(y~x, data=dat)
#全体の単回帰分析
(fit <- summary(lm(y~x, data=dat)))
#回帰直線
x0 <- range(dat$x) #x軸の範囲
b0 <- fit$coef[1] #切片
b1 <- fit$coef[2] #傾き
lines(x0, b0 + b1*x0) #回帰直線

AとBで層別(Aを●、Bを○に設定)、pchはよく使う関数を参照

pchAB <- ifelse(
    dat$group == "A", 19, 21
)

plot(
    y~x,
    pch=pchAB,
    cex=1.5,
    data=dat
)

#凡例
legend(
    "bottomright",
    legend=c("A", "B"),
    pch=c(19, 21),
)
#groupAとgroupBの回帰直線
fitA <- summary(lm(y ~ x, data=dat[dat$group=="A",]))
lines(x0, fitA$coef[1]+ fitA$coef[2]*x0)
fitB <- summary(lm(y ~ x, data=dat[dat$group=="B",]))
lines(x0, fitB$coef[1]+ fitB$coef[2]*x0, lty=3)

コメント欄 『間違い』や『分かりにくい部分』などのご意見もお寄せください

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