### rnorm2 <- function(n,mean,sd) { mean+sd*scale(rnorm(n)) } groupA <- rnorm2(10, 19, sqrt(160/9)) groupB <- rnorm2(10, 25, sqrt(200/9)) ss.a <- 160 ss.b <- 200 n.a <- 10 n.b <- 10 df.a <- 9 df.b <- 9 pooled.v <- (ss.a+ss.b)/(df.a+df.b) pooled.v se <- sqrt(pooled.v/n.a + pooled.v/n.b) se diff <- (mean(groupA)-mean(groupB)) t.cal <- diff/se t.cal pt(t.cal, df=df.a+df.b)*2 t.test(groupA, groupB, var.equal=T) # 만약에 정확한 구간의 probability 보다 # 95% confidence interval의 점수를 구하고 # 싶다면 t.critical <- abs(qt(.05/2, 18)) c(-t.critical, t.critical) t.cal ############# ss <- function(x) { sum((x-mean(x))^2) } n.a <- n.b <- 40 df.b <- n.b - 1 df.a <- n.a - 1 naver <- rnorm2(n.a, 7.2, 1) mylab <- rnorm2(n.b, 7.9, 1) ss(naver) pv <- (ss(naver)+ss(mylab))/(df.a + df.b) pv se <- sqrt(pv/n.a + pv/n.b) se t.cal <- (mean(naver)-mean(mylab))/se t.cal pt(t.cal, df.a+df.b)*2 t.test(naver, mylab) # s.n <- 100 s.hi <- 5200 s.lo <- 4980 s.sd <- 500 set.seed(101) s.hi <- round(rnorm(s.n, s.hi, s.sd)) s.lo <- round(rnorm(s.n, s.lo, s.sd)) s.hi s.lo df.a <- s.n - 1 df.b <- s.n - 1 m.a <- mean(s.hi) m.b <- mean(s.lo) diff <- m.a - m.b pv <- (ss(s.hi)+ss(s.lo))/(df.a + df.b) pv se <- sqrt(pv/s.n + pv/s.n) se diff t.cal <- diff / se t.cal pt(t.cal, df.a+df.b, lower.tail = F)*2 t.test(s.hi, s.lo, var.equal=T)