t-test_summary
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| t-test_summary [2026/04/12 09:47] – [ro.hypothesis.testing] hkimscil | t-test_summary [2026/04/16 01:27] (current) – hkimscil | ||
|---|---|---|---|
| Line 29: | Line 29: | ||
| ################################ | ################################ | ||
| - | sz <- 10 | + | sz <- 16 |
| iter <- 100000 | iter <- 100000 | ||
| - | # n = 10 일 때의 p1에 대한 sampling dist 은 아래 시뮬레이션으로 | + | # n = 16 일 때의 p1에 대한 sampling dist 은 아래 시뮬레이션으로 |
| # 구해볼 수 있다. | # 구해볼 수 있다. | ||
| means <- rep(NA, iter) | means <- rep(NA, iter) | ||
| Line 50: | Line 50: | ||
| sd.means | sd.means | ||
| - | # 위의 | + | # 위 집합을 표준화하게 되면 그 집합의 평균과 |
| - | # 정확한 mean과 se 값을 갖는 집합 sdc를 만든다 | + | # 표준편차는 0, 1이 (분산도 1) 된다. |
| - | sdc <- rnorm2(iter, | + | m.zmeans |
| - | mean(sdc) | + | ms.zmeans <- 1 |
| - | var(sdc) | + | sd.zmeans <- 1 |
| - | sd(sdc) | + | |
| - | zsdc <- scale(sdc) | + | sd.means |
| - | m.zsdc <- mean(zsdc) | + | # p2에서 구하는 샘플링 디스트리뷰션의 표준점수를 |
| - | ms.zsdc <- var(zsdc) | + | # p1의 표준점수에 |
| - | sd.zsdc <- sd(zsdc) | + | z.p2 <- c((mean(p2)-mean(p1))/ |
| - | m.zsdc | + | sd.means |
| - | ms.zsdc | + | |
| - | sd.zsdc | + | |
| - | + | ||
| - | se2 <- c(sqrt(var(p2)/ | + | |
| - | z.p2 <- c((mean(p2)-mean(p1))/ | + | |
| - | sdc2 <- rnorm2(iter, mean(p2), se2) | + | |
| - | zsdc2 <- scale(sdc2)+z.p2 | + | |
| - | mean(zsdc2) | + | |
| - | sd(zsdc2) | + | |
| curve(dnorm(x), | curve(dnorm(x), | ||
| - | main = " | + | main = " |
| - | ylab = " | + | ylab = " |
| - | curve(dnorm(x-(z.p2)), | + | curve(dnorm(x-c(z.p2)), from = z.p2-3, to = z.p2+3, add = T, |
| - | main = "Distribution Curve", | + | main = "", |
| - | ylab = " | + | ylab = " |
| - | abline(v=mean(zsdc), col=' | + | abline(v=0, col=' |
| - | abline(v=mean(zsdc2), col=' | + | abline(v=z.p2, col=' |
| - | mean(zsdc2) | + | text(x=0, y=.1, label=paste(round(0, 4)), pos=4) |
| - | text(x=mean(zsdc), y=.1, label=paste(round(mean(zsdc),4)), pos=4) | + | text(x=z.p2, y=.1, label=paste(round(z.p2, 4)), pos=4) |
| - | text(x=mean(zsdc2), y=.1, label=paste(round(mean(zsdc2),4)), pos=4) | + | |
| - | # | + | ####################################### |
| + | ###################################### | ||
| lo1 <- qnorm(.32/ | lo1 <- qnorm(.32/ | ||
| hi1 <- -lo1 | hi1 <- -lo1 | ||
| Line 106: | Line 96: | ||
| text(x=hi3, y=.1, label=paste(round(hi3, | text(x=hi3, y=.1, label=paste(round(hi3, | ||
| - | mean.of.sample.a <- mean(sdc)+ 1.5*sd(sdc) | + | mean.of.sample.a <- m.means+ 1.5*sd.means |
| mean.of.sample.a | mean.of.sample.a | ||
| - | diff <- (mean.of.sample.a - mean(sdc)) | + | diff <- (mean.of.sample.a - m.means) |
| se.z <- sd(p1)/ | se.z <- sd(p1)/ | ||
| diff | diff | ||
| Line 130: | Line 120: | ||
| # 새로운 UI로 게임을 하도록 한 후 | # 새로운 UI로 게임을 하도록 한 후 | ||
| - | # UI점수를 | + | # UI점수를 |
| # 새로운 UI점수가 기존의 p1 paramter와 | # 새로운 UI점수가 기존의 p1 paramter와 | ||
| # 다른지 테스트 해보라 | # 다른지 테스트 해보라 | ||
| Line 138: | Line 128: | ||
| # 하면 샘플의 평균과 p1의 평균은 다르다고 판단될 것이다. | # 하면 샘플의 평균과 p1의 평균은 다르다고 판단될 것이다. | ||
| # 아래는 그럼에도 불구하고 실패하는 경우이다. | # 아래는 그럼에도 불구하고 실패하는 경우이다. | ||
| - | set.seed(111) | + | set.seed(110) |
| smp <- sample(p2, sz, replace=T) | smp <- sample(p2, sz, replace=T) | ||
| m.smp <- mean(smp) | m.smp <- mean(smp) | ||
| Line 150: | Line 140: | ||
| curve(dnorm(x), | curve(dnorm(x), | ||
| - | main = " | + | main = " |
| + | | ||
| ylab = " | ylab = " | ||
| abline(v=0, col=" | abline(v=0, col=" | ||
| Line 174: | Line 165: | ||
| z.test(smp, mean(p1), sd(p1)) | z.test(smp, mean(p1), sd(p1)) | ||
| - | z.p2 <- (mean(p2)-mean(p1))/ | + | z.p2 <- (mean(p2)-mean(p1))/ |
| z.p2 | z.p2 | ||
| curve(dnorm(x), | curve(dnorm(x), | ||
| Line 196: | Line 187: | ||
| # type i and type ii error | # type i and type ii error | ||
| - | z.p2 <- (mean(p2)-mean(p1))/ | + | two <- qnorm(.05/2) |
| - | z.p2 | + | two |
| curve(dnorm(x), | curve(dnorm(x), | ||
| main = " | main = " | ||
| Line 205: | Line 197: | ||
| ylab = " | ylab = " | ||
| abline(v=0, col=' | abline(v=0, col=' | ||
| - | z.cal1 | ||
| - | z.cal2 | ||
| - | two <- qnorm(.05/ | ||
| - | two | ||
| abline(v=c(two, | abline(v=c(two, | ||
| abline(v=c(-z.cal1, | abline(v=c(-z.cal1, | ||
| Line 263: | Line 251: | ||
| print(c(t.cal, | print(c(t.cal, | ||
| print(c(m.smp+lo2*se.z, | print(c(m.smp+lo2*se.z, | ||
| - | cat("t =", t.cal, ", df =", round(df.smp, | + | cat(" t =", t.cal, ", df =", round(df.smp, |
| " | " | ||
| t.test(smp, mu=mean(p1)) | t.test(smp, mu=mean(p1)) | ||
| Line 323: | Line 311: | ||
| t.test(group.a, | t.test(group.a, | ||
| t.cal | t.cal | ||
| - | # t.cal=diff/ | ||
| - | t.cal * se.s | ||
| - | diff | ||
| - | diff+lo2*se.s | ||
| - | diff+hi2*se.s | ||
| - | (t.cal+lo2)*se.s | ||
| - | (t.cal+hi2)*se.s | ||
| ###################### | ###################### | ||
| Line 383: | Line 364: | ||
| <tabbox ro.hypothesis.testing> | <tabbox ro.hypothesis.testing> | ||
| < | < | ||
| - | > | ||
| > rm(list=ls()) | > rm(list=ls()) | ||
| > rnorm2 <- function(n, | > rnorm2 <- function(n, | ||
| Line 411: | Line 391: | ||
| > | > | ||
| > ################################ | > ################################ | ||
| - | > sz <- 10 | + | > sz <- 16 |
| > iter <- 100000 | > iter <- 100000 | ||
| - | > # n = 10 일 때의 p1에 대한 sampling dist 은 아래 시뮬레이션으로 | + | > # n = 16 일 때의 p1에 대한 sampling dist 은 아래 시뮬레이션으로 |
| > # 구해볼 수 있다. | > # 구해볼 수 있다. | ||
| > means <- rep(NA, iter) | > means <- rep(NA, iter) | ||
| Line 421: | Line 401: | ||
| + } | + } | ||
| > mean(means) | > mean(means) | ||
| - | [1] 99.9946 | + | [1] 99.997 |
| > var(means) | > var(means) | ||
| - | [1] 9.95743 | + | [1] 6.215719 |
| > sd(means) | > sd(means) | ||
| - | [1] 3.15554 | + | [1] 2.493134 |
| > | > | ||
| > # CLT에 의하면 위이 값은 | > # CLT에 의하면 위이 값은 | ||
| Line 434: | Line 414: | ||
| [1] 100 | [1] 100 | ||
| > ms.means | > ms.means | ||
| - | [1] 10 | + | [1] 6.25 |
| > sd.means | > sd.means | ||
| - | [1] 3.162278 | + | [1] 2.5 |
| > | > | ||
| - | > # 위의 | + | > # 위 집합을 표준화하게 되면 그 집합의 평균과 |
| - | > # 정확한 mean과 se 값을 갖는 집합 sdc를 만든다 | + | > # 표준편차는 0, 1이 (분산도 1) 된다. |
| - | > sdc <- rnorm2(iter, | + | > m.zmeans |
| - | > mean(sdc) | + | > ms.zmeans <- 1 |
| - | [1] 100 | + | > sd.zmeans <- 1 |
| - | > var(sdc) | + | |
| - | | + | |
| - | [1,] 10 | + | |
| - | > sd(sdc) | + | |
| - | [1] 3.162278 | + | |
| > | > | ||
| - | > zsdc <- scale(sdc) | + | > sd.means |
| - | > m.zsdc <- mean(zsdc) | + | [1] 2.5 |
| - | > ms.zsdc <- var(zsdc) | + | > # p2에서 구하는 샘플링 디스트리뷰션의 표준점수를 |
| - | > sd.zsdc <- sd(zsdc) | + | > # p1의 표준점수에 (0, 1) 비교해서 배치하자면 |
| - | > m.zsdc | + | > z.p2 <- c((mean(p2)-mean(p1))/ |
| - | [1] -2.40102e-17 | + | > sd.means |
| - | > ms.zsdc | + | |
| - | [,1] | + | |
| - | [1,] 1 | + | |
| - | > sd.zsdc | + | |
| - | [1] 1 | + | |
| - | > | + | |
| - | > se2 <- c(sqrt(var(p2)/ | + | |
| - | > z.p2 <- c((mean(p2)-mean(p1))/ | + | |
| - | > sdc2 <- rnorm2(iter, mean(p2), se2) | + | |
| - | > zsdc2 <- scale(sdc2)+z.p2 | + | |
| - | > mean(zsdc2) | + | |
| - | [1] 1.897367 | + | |
| - | > sd(zsdc2) | + | |
| - | [1] 1 | + | |
| > | > | ||
| > curve(dnorm(x), | > curve(dnorm(x), | ||
| - | + main = " | + | + main = " |
| - | + ylab = " | + | + ylab = " |
| - | > curve(dnorm(x-(z.p2)), | + | > curve(dnorm(x-c(z.p2)), from = z.p2-3, to = z.p2+3, add = T, |
| - | + main = "Distribution Curve", | + | + main = "", |
| - | + ylab = " | + | + ylab = " |
| - | > abline(v=mean(zsdc), col=' | + | > abline(v=0, col=' |
| - | > abline(v=mean(zsdc2), col=' | + | > abline(v=z.p2, col=' |
| - | > mean(zsdc2) | + | > text(x=0, y=.1, label=paste(round(0, 4)), pos=4) |
| - | [1] 1.897367 | + | > text(x=z.p2, y=.1, label=paste(round(z.p2, 4)), pos=4) |
| - | > text(x=mean(zsdc), y=.1, label=paste(round(mean(zsdc),4)), pos=4) | + | |
| - | > text(x=mean(zsdc2), y=.1, label=paste(round(mean(zsdc2),4)), pos=4) | + | |
| > | > | ||
| </ | </ | ||
| - | {{pasted: | + | {{pasted: |
| < | < | ||
| - | > # | + | > ####################################### |
| + | > ###################################### | ||
| > lo1 <- qnorm(.32/ | > lo1 <- qnorm(.32/ | ||
| > hi1 <- -lo1 | > hi1 <- -lo1 | ||
| Line 515: | Line 476: | ||
| < | < | ||
| - | > mean.of.sample.a <- mean(sdc)+ 1.5*sd(sdc) | + | > mean.of.sample.a <- m.means+ 1.5*sd.means |
| > mean.of.sample.a | > mean.of.sample.a | ||
| - | [1] 104.7434 | + | [1] 103.75 |
| - | > diff <- (mean.of.sample.a - mean(sdc)) | + | > diff <- (mean.of.sample.a - m.means) |
| > se.z <- sd(p1)/ | > se.z <- sd(p1)/ | ||
| > diff | > diff | ||
| - | [1] 4.743416 | + | [1] 3.75 |
| > se.z | > se.z | ||
| - | [1] 3.162278 | + | [1] 2.5 |
| > z.score | > z.score | ||
| > z.score | > z.score | ||
| Line 542: | Line 503: | ||
| + " | + " | ||
| + pos=4, col=' | + pos=4, col=' | ||
| - | > | + | > |
| </ | </ | ||
| {{pasted: | {{pasted: | ||
| Line 556: | Line 517: | ||
| > # 하면 샘플의 평균과 p1의 평균은 다르다고 판단될 것이다. | > # 하면 샘플의 평균과 p1의 평균은 다르다고 판단될 것이다. | ||
| > # 아래는 그럼에도 불구하고 실패하는 경우이다. | > # 아래는 그럼에도 불구하고 실패하는 경우이다. | ||
| - | > set.seed(111) | + | > set.seed(110) |
| > smp <- sample(p2, sz, replace=T) | > smp <- sample(p2, sz, replace=T) | ||
| > m.smp <- mean(smp) | > m.smp <- mean(smp) | ||
| > m.smp | > m.smp | ||
| - | [1] 104.4742 | + | [1] 104.5958 |
| > diff <- m.smp - mean(p1) | > diff <- m.smp - mean(p1) | ||
| > se.z <- sqrt(var(p1)/ | > se.z <- sqrt(var(p1)/ | ||
| Line 566: | Line 527: | ||
| > prob1 <- pnorm(abs(z.cal1), | > prob1 <- pnorm(abs(z.cal1), | ||
| > print(c(z.cal1, | > print(c(z.cal1, | ||
| - | [1] | + | [1] |
| > z.test(smp, mean(p1), sd(p1)) | > z.test(smp, mean(p1), sd(p1)) | ||
| - | z value: | + | z value: |
| - | p value: 0.1571032 | + | p value: 0.00365349 |
| - | | + | |
| - | | + | |
| - | 95% CI: | + | 95% CI: |
| > curve(dnorm(x), | > curve(dnorm(x), | ||
| - | + main = " | + | + main = " |
| + | + testing with a sample from p2 (failed)", | ||
| + ylab = " | + ylab = " | ||
| > abline(v=0, col=" | > abline(v=0, col=" | ||
| Line 584: | Line 546: | ||
| + " | + " | ||
| + pos=4, col=' | + pos=4, col=' | ||
| + | > | ||
| > | > | ||
| </ | </ | ||
| - | {{pasted: | + | {{pasted: |
| - | < | + | < |
| > # 같은 방법으로 했는데 성공한 경우 | > # 같은 방법으로 했는데 성공한 경우 | ||
| > set.seed(211) | > set.seed(211) | ||
| Line 594: | Line 557: | ||
| > m.smp <- mean(smp) | > m.smp <- mean(smp) | ||
| > m.smp | > m.smp | ||
| - | [1] 110.1154 | + | [1] 107.6795 |
| > diff <- m.smp - mean(p1) | > diff <- m.smp - mean(p1) | ||
| > se.z <- sqrt(var(p1)/ | > se.z <- sqrt(var(p1)/ | ||
| Line 600: | Line 563: | ||
| > prob2 <- pnorm(abs(z.cal2), | > prob2 <- pnorm(abs(z.cal2), | ||
| > print(c(z.cal2, | > print(c(z.cal2, | ||
| - | [1] 3.198763975 10.000000000 | + | [1] 4.856940e+00 4.000000e+01 1.192138e-06 |
| > z.test(smp, mean(p1), sd(p1)) | > z.test(smp, mean(p1), sd(p1)) | ||
| - | z value: | + | z value: |
| - | p value: | + | p value: |
| - | | + | |
| - | | + | |
| - | 95% CI: | + | 95% CI: |
| - | > z.p2 <- (mean(p2)-mean(p1))/ | + | > z.p2 <- (mean(p2)-mean(p1))/ |
| > z.p2 | > z.p2 | ||
| - | [1] 1.897367 | + | [,1] |
| + | [1,] 3.794733 | ||
| > curve(dnorm(x), | > curve(dnorm(x), | ||
| + main = " | + main = " | ||
| Line 616: | Line 580: | ||
| > z.cal1 | > z.cal1 | ||
| [,1] | [,1] | ||
| - | [1,] 1.414882 | + | [1,] 2.906627 |
| > z.cal2 | > z.cal2 | ||
| - | [,1] | + | |
| - | [1,] 3.198764 | + | [1,] 4.85694 |
| > two <- qnorm(.05/ | > two <- qnorm(.05/ | ||
| > two | > two | ||
| Line 632: | Line 596: | ||
| + label=paste(round(-z.cal2, | + label=paste(round(-z.cal2, | ||
| + col=" | + col=" | ||
| + | > | ||
| > | > | ||
| </ | </ | ||
| - | {{pasted: | + | {{pasted: |
| < | < | ||
| > # type i and type ii error | > # type i and type ii error | ||
| - | > z.p2 <- (mean(p2)-mean(p1))/ | + | > two <- qnorm(.05/2) |
| - | > z.p2 | + | > two |
| - | [1] 1.897367 | + | [1] -1.959964 |
| + | > | ||
| > curve(dnorm(x), | > curve(dnorm(x), | ||
| + main = " | + main = " | ||
| + ylab = " | + ylab = " | ||
| - | > curve(dnorm(x-(z.p2)), | + | > curve(dnorm(x-c(z.p2)), from = z.p2-3, to = z.p2+3, add = T, |
| + main = " | + main = " | ||
| + ylab = " | + ylab = " | ||
| > abline(v=0, col=' | > abline(v=0, col=' | ||
| - | > z.cal1 | ||
| - | [,1] | ||
| - | [1,] 1.414882 | ||
| - | > z.cal2 | ||
| - | [,1] | ||
| - | [1,] 3.198764 | ||
| - | > two <- qnorm(.05/ | ||
| - | > two | ||
| - | [1] -1.959964 | ||
| > abline(v=c(two, | > abline(v=c(two, | ||
| > abline(v=c(-z.cal1, | > abline(v=c(-z.cal1, | ||
| Line 675: | Line 632: | ||
| + label=paste(round(-z.cal2, | + label=paste(round(-z.cal2, | ||
| + col=" | + col=" | ||
| + | > | ||
| > | > | ||
| </ | </ | ||
| - | {{pasted: | + | {{pasted: |
| < | < | ||
| - | > | ||
| > ############################ | > ############################ | ||
| > # one sample t-test | > # one sample t-test | ||
| Line 725: | Line 682: | ||
| > print(c(m.smp+lo2*se.z, | > print(c(m.smp+lo2*se.z, | ||
| [1] 102.5239 110.0970 | [1] 102.5239 110.0970 | ||
| - | > cat("t =", t.cal, ", df =", round(df.smp, | + | > cat(" t =", t.cal, ", df =", round(df.smp, |
| + " | + " | ||
| - | t = 3.488087 , df = 19 , p-value = 0.002460977 | + | t = 3.488087 , df = 19 , p-value = 0.002460977 |
| 95% confidence interval = 102.5239 110.097> t.test(smp, mu=mean(p1)) | 95% confidence interval = 102.5239 110.097> t.test(smp, mu=mean(p1)) | ||
| Line 740: | Line 697: | ||
| mean of x | mean of x | ||
| | | ||
| - | |||
| > | > | ||
| > ################################# | > ################################# | ||
| Line 818: | Line 774: | ||
| + pos=4, col=' | + pos=4, col=' | ||
| > | > | ||
| + | |||
| </ | </ | ||
| {{pasted: | {{pasted: | ||
| Line 839: | Line 796: | ||
| > t.cal | > t.cal | ||
| [1] -3.070212 | [1] -3.070212 | ||
| - | > # t.cal=diff/ | ||
| - | > t.cal * se.s | ||
| - | [1] -8.871414 | ||
| - | > diff | ||
| - | [1] -8.871414 | ||
| - | > diff+lo2*se.s | ||
| - | [1] -14.68117 | ||
| - | > diff+hi2*se.s | ||
| - | [1] -3.061661 | ||
| - | > (t.cal+lo2)*se.s | ||
| - | [1] -14.68117 | ||
| - | > (t.cal+hi2)*se.s | ||
| - | [1] -3.061661 | ||
| > | > | ||
| > ###################### | > ###################### | ||
| Line 919: | Line 863: | ||
| + col=" | + col=" | ||
| > text(x=t.cal, | > text(x=t.cal, | ||
| + | > | ||
| + | > cat(t.cal, sz-1, prob) | ||
| + | -3.88213 39 0.0003888961 | ||
| + | > | ||
| </ | </ | ||
| {{pasted: | {{pasted: | ||
t-test_summary.1775987265.txt.gz · Last modified: by hkimscil
