ストリップチャート
サンプルサイズが小さい場合には、箱ひげ図よりストリップチャートがお勧めです。
このファイルをdatに格納します(csvファイルの読み込み)
dat <- read.csv("welch.csv", header=T, fileEncoding = "UTF-8")
データの確認
head(dat)
縦のデータになっています
groupの列をカテゴリ変数(名義変数)に変更します
dat$group <- as.factor(dat$group)
ストリップチャートを作図します
group変数でグループ分けします(data~group)
stripchart(
data~group, data = dat, method="jitter",
jitter = 0.05, vertical=TRUE, pch=20, cex=1,
xlim=c(0.5,2.5), ylim=c(-10, 90),
xlab="治療", ylab="得点差"
)
(不偏)標準偏差を挿入
#図を追加
par(new=T)
#平均値
Aの平均 = mean(dat[dat$group=="A","data"])
Bの平均 = mean(dat[dat$group=="B","data"])
#不偏標準偏差
Aの標準偏差 = sd(dat[dat$group=="A","data"])
Bの標準偏差= sd(dat[dat$group=="B","data"])
#平均値をプロット
plot(
c(1.15, 2.15),
c(Aの平均, Bの平均),
col = "red",
pch=20,
ylim=c(-10, 90), xlim = c(0.5, 2.5),
xaxt="n", xlab="", ylab="")
#不偏標準偏差の範囲を挿入
arrows(
1.15: 2.15,
c(Aの平均, Bの平均) - c(Aの標準偏差, Bの標準偏差),
1.15: 2.15,
c(Aの平均, Bの平均) + c(Aの標準偏差, Bの標準偏差),
lwd=1.0, angle=90, length=0.1, code=3, col="red" #code・・・髭の場所
)
グラフの消去
dev.off()
標準誤差を挿入
#各グループのサンプルサイズ
AN <- dim(subset(dat, dat$group=="A"))[1]
BN <- dim(subset(dat, dat$group=="B"))[1]
#標準誤差
Aの標準誤差 = Aの標準偏差/sqrt(AN)
Bの標準誤差 = Bの標準偏差/sqrt(BN)
さきほどの作図方法の標準偏差を標準誤差に置換
stripchart(
data~group, data = dat, method="jitter",
jitter = 0.05, vertical=TRUE, pch=20, cex=1,
xlim=c(0.5,2.5), ylim=c(-10, 90),
xlab="治療", ylab="得点差"
)
par(new=T)
#平均値をプロット
plot(
c(1.15, 2.15),
c(Aの平均, Bの平均),
col = "red",
pch=20,
ylim=c(-10, 90), xlim = c(0.5, 2.5),
xaxt="n", xlab="", ylab="")
arrows(
1.15: 2.15,
c(Aの平均, Bの平均) - c(Aの標準誤差, Bの標準誤差),
1.15: 2.15,
c(Aの平均, Bの平均) + c(Aの標準誤差, Bの標準誤差),
lwd=1.0, angle=90, length=0.08, code=3, col="red" #code・・・髭の場所
)
グラフの消去
dev.off()
ここまできたら信頼区間も・・・
95%信頼区間を挿入
Aの下限 <- t.test(dat[dat$group=="A", "data"])$conf.int [1]
Aの上限 <- t.test(dat[dat$group=="A", "data"])$conf.int [2]
Bの下限 <- t.test(dat[dat$group=="B", "data"])$conf.int [1]
Bの上限 <- t.test(dat[dat$group=="B", "data"])$conf.int [2]
stripchart(
data~group, data=dat, method="jitter",
jitter = 0.05, vertical=TRUE, pch=20, cex=1,
xlim=c(0.5, 2.5), ylim=c(-10, 90),
xlab="治療", ylab="得点差"
)
par(new=T)
plot(
c(1.15, 2.15),
c(Aの平均, Bの平均),
col = "red",
pch=20,
ylim=c(-10, 90), xlim = c(0.5, 2.5),
xaxt="n", xlab="", ylab="")
arrows(
1.15: 2.15,
c(Aの平均, Bの平均) - c(Aの平均-Aの下限, Bの平均-Bの下限),
1.15: 2.15,
c(Aの平均, Bの平均) + c(Aの上限-Aの平均, Bの上限-Bの平均),
lwd=1.0, angle=90, length=0.08, code=3, col="red" #code・・・髭の場所
)
グラフの消去
dev.off()
コメント欄 『間違い』や『分かりにくい部分』などのご意見もお寄せください