c:ps1:2025:t-test_note
t-test with two (independent) groups
A group vs B group score difference
- code01
- output01
Loading...
> ###
> 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
[1] 20
> se <- sqrt(pooled.v/n.a + pooled.v/n.b)
> se
[1] 2
> diff <- (mean(groupA)-mean(groupB))
> t.cal <- diff/se
> t.cal
[1] -3
> pt(t.cal, df=df.a+df.b)*2
[1] 0.007685412
>
> t.test(groupA, groupB, var.equal=T)
Two Sample t-test
data: groupA and groupB
t = -3, df = 18, p-value = 0.007685
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-10.201844 -1.798156
sample estimates:
mean of x mean of y
19 25
>
> # 만약에 정확한 구간의 probability 보다
> # 95% confidence interval의 점수를 구하고
> # 싶다면
> t.critical <- abs(qt(.05/2, 18))
> c(-t.critical, t.critical)
[1] -2.100922 2.100922
> t.cal
[1] -3
> #############
> 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)
[1] 39
> pv <- (ss(naver)+ss(mylab))/(df.a + df.b)
> pv
[1] 1
> se <- sqrt(pv/n.a + pv/n.b)
> se
[1] 0.2236068
> t.cal <- (mean(naver)-mean(mylab))/se
> t.cal
[1] -3.130495
> pt(t.cal, df.a+df.b)*2
[1] 0.002455973
> t.test(naver, mylab)
Welch Two Sample t-test
data: naver and mylab
t = -3.1305, df = 78, p-value = 0.002456
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-1.1451669 -0.2548331
sample estimates:
mean of x mean of y
7.2 7.9
c/ps1/2025/t-test_note.txt · Last modified: by hkimscil
