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

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

since2016 ときどきTEXのメモ

層別した散布図と回帰直線

以下のようなグラフ
忘れないように記載しておきます
f:id:yoshida931:20191120105646p:plain:w500

データサンプル

Group <- 
c(1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3)

pre_post <- 
structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
            2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 
            1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
            1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("治療後", "治療前"
            ), class = "factor")

Outcome <- 
c(23.5, 21.17, 15.5, 20.5, 21.17, 11.17, 19, 20.5, 20.17, 19.17, 11, 12, 24.83, 23.17, 22.5, 24.17, 26.5, 22, 11.83, 16.83, 10.5, 19.5, 19.83, 14, 12.936, 12.936, 18, 7.864, 6.264, 16.664, 20.136, 21.736, 3.6, 16.664, 13.2, 2.8, 12.936, 10.264, 18.8, 22.5, 9.83, 7.83, 20.83, 25.17, 27.17, 4.5, 20.83, 16.5, 3.5, 16.17, 12.83, 23.5, 21.17, 15.5)

#data に取り込みます
data <- data.frame(Group, pre_post, Outcome)

グラフを作成します

治療前 <- data[data$pre_post=="治療前",3]
治療後 <- data[data$pre_post=="治療後",3]
plot(治療前, 治療後, col=c(data$Group), pch =16, xlab = "治療前", ylab="治療後" )

#Group=1 黒のライン
data1 <- subset(data, data$Group==1)
治療前 <- data1[data1$pre_post=="治療前",3]
治療後 <- data1[data1$pre_post=="治療後",3]
xs <- seq(0, 30, length=100)
fit <- glm(治療後~治療前)
lines(xs, fit$coef[1] + xs*fit$coef[2], col=1)

#Group=2 赤のライン
data2 <- subset(data, data$Group==2)
治療前 <- data2[data2$pre_post=="治療前",3]
治療後 <- data2[data2$pre_post=="治療後",3]
xs <- seq(0, 30, length=100)
fit <- glm(治療後~治療前)
lines(xs, fit$coef[1] + xs*fit$coef[2], col=2)

#Group=3 緑のライン
data3 <- subset(data, data$Group==3)
治療前 <- data3[data3$pre_post=="治療前",3]
治療後 <- data3[data3$pre_post=="治療後",3]
xs <- seq(0, 30, length=100)
fit <- glm(治療後~治療前)
lines(xs, fit$coef[1] + xs*fit$coef[2], col=3)