#例7.1a
xa <- read.csv("Table713a.csv")
xa
attach(xa)
#片側検定:対立仮説μ1<μ2 :指定しなければ両側検定を行う
#ローデータから関数を利用 t.test(変数1,変数2,等分散の仮定,対立仮説)
#等分散を指定しなければ、ウェルチの方法を実行する
t.test(e_mas,c_mas,var.equal=T,alternative="less")
#信頼区間 p.217 を求める場合:両側検定
t.test(e_mas,c_mas,var.equal=T)
#例7.1b 平均値と分散からt値を求め、dfを求める
x1 <- 13.00
x2 <- 17.60
s12 <- 20.33
s22 <- 22.17
n <- 25
t <- abs(x1-x2)/sqrt((s12+s22)/n)
t
df <- 2*(n-1)
df
#信頼区間 95%CI を求める(1つの平均値の場合を参照 標準誤差と臨界値から)
#標準誤差は p.203 ( nが等しい)
s <- sqrt((s12+s22)/n)
#両側分布5%の臨界値を求める: t分布 df=48 上側確率 .025 のt値
tc <- qt(.025,df,lower.tail = F)
# 95% CI L<μ1-μ2<H
L<- (x1-x2)-tc*s
H <- (x1-x2)+tc*s
L
H
#参考) 効果量
#平均値と分散から効果量を求める https://bellcurve.jp/statistics/course/12765.html
d2 <- abs(13.0-17.6)/sqrt((25*20.33+25*22.17)/(25+25))
#参考) 例7.1b ローデータからではなく、平均、分散、n から求めるには、
# 以下の関数を作り、利用できる
ttest = function(n1, x1, s1, n2, x2, s2) {
n = n1 + n2 - 2
u = ((n1 - 1) * s1^2 + (n2 - 1) * s2^2) / n
t = (x1 - x2) / sqrt(u / n1 + u / n2)
r = cat("Equal variance:\n\t", sep="")
r = cat(r, "t = ", t, ", df = ", n, ", p = ", 2 * pt(-abs(t), n), "\n", sep="")
t = (x1 - x2) / sqrt(s1^2 / n1 + s2^2 / n2)
n = (s1^2 / n1 + s2^2 / n2)^2 / ((s1^2 / n1)^2 / (n1-1) + (s2^2 / n2)^2 / (n2-1))
r = cat(r, "Unequal variance:\n\t", sep="")
cat(r, "t = ", t, ", df = ", n, ", p = ", 2 * pt(-abs(t), n), "\n", sep="")
}
#
n1=25
x1=13
s1=sqrt(20.33)
n2=25
x2=17.6
s2=sqrt(22.17)
ttest(n1,x1,s1,n2,x2,s2)