User Tools

Site Tools


t-test

t-test 비교

t-testdata.sav 이 파일은 t-test 혹은 그룹 간 비교에 필요한 데이터가 포함된 SPSS data file이다.

요약

\begin{eqnarray} z\;\;\;\text{or}\;\;\;t = \frac{\overline{X}-\mu}{\sigma_{\overline{X}} } \\ t = \frac{\overline{X}-\mu}{s_{\overline{X}} } \\ t = \frac{(\overline{X_a}-\overline{X_b})-(\mu_a-\mu_b)}{\sigma_{diff}} \\ t = \frac{\overline{D}-0}{s_{ \overline{D} }} = \frac {\overline{D}}{ \frac{s_D}{\sqrt{N}} } \end{eqnarray}

( 1 ) . . . 모집단의 평균과 표준편차를 알고 있으며, 샘플이 하나일 경우
( 2 ) . . . 모집단의 평균만을 알고 있을 경우 (표준편차는 모를 경우)
( 3 ) . . . 두 집단의 평균과 표준편차만을 알고 있을 경우
( 4 ) . . . 두 집단이 독립적이지 않을 때, 즉, 동일 집단에서 두번의 측정을 이루어졌을 때 (within-subject)

위의 4 경우의 공통점은 :

$t = \displaystyle \frac{\text{obtained difference}}{\text{difference by random error}}$

모집단의 평균과 표준편차를 알고 있을 때

모집단을 $p$ , 모집단의 평균을 $\mu$ 모집단의 표준편차를 $\sigma$ 라고 하고, 이 둘을 알고 있을 때 sample을 추출해서 모집단의 $\mu$ 와 $\sigma$ 를 확인하는 방법이 있다. 흔히 Quality control에 많이 사용된다.

감자의 단위당 무게가 평균 200g이고 표준편차가 20이라고 주장하는 납품업자로부터 감자의 quality가 보고와 일치하는 지 궁금하여 샘플 (n=400)을 뽑아 확인한다.

  • $\mu = 200$ , $\sigma = 20$

위의 정보를 통해서 standard error (표준오차)를 구하면, $\sigma_{\overline{X}} = \text{se} = \frac{\sigma}{\sqrt{n}} = \frac{20}{\sqrt{400}} = \frac{20}{20} = 1$

  • 위의 정보(se)는
    • 샘플의 숫자(n)가 400인 샘플을 뽑았을 때,
    • 그 샘플의 평균값이 나타날 수 있는 범위를 정해주는 단위
    • se = 1 이므로
  • 400개의 샘플을 뽑았을 때, 그 샘플의 평균은 평균 200g을 기준으로 좌우로 2단위의 se만큼 떨어진 범위에서 발견될 것이다.
  • se의 두 단위를 사용하였으므로, 좌우 범위는 각각 2이다.
  • 즉, 198g - 202g에서 샘플의 평균이 나올 것이다.
  • 마지막으로 이 범위에서 샘플의 평균이 발견될 확률은 95% 이다. 이유는 standard deviation of sample means = standard error = se 를 2 단위 썻기 때문이다.
  • 즉, 우리는 400개의 샘플을 뽑았을 때, 그 샘플의 평균이 198에서 202일 거라는 확신을 95%하게됨.
  • 마지막으로 샘플을 뽑아서 예상대로 보면 됨. 샘플의 평균이 197이라고 한다면, 이 샘플의 평균이 198-202 범위에서 발견되지 않았으므로, 우리는 첫째
    1. 이 샘플이 우리가 포기하기로 한 5%의 범위안에 드는 샘플일 수 있다 (가능성은 5%이기는 하지만)
    2. 만약에 위의 가정을 무시할 수 있다면 (5%의 가정이므로), 감자의 납품자가 않좋은 감자를 납품하고 있다.
  • 의 두 가지 가정을 해 볼 수 있다. 첫 번째는 가능성이 적으므로, 우리는 두 번째 가정을 지지하게 되고 감자의 quality를 높일 것을 요구할 수 있다.

위의 과정은 일반적인 가설검증과정을 설명한 것이다. 이를 Z-test방식으로 다시 풀면
$$ \frac {\overline{X} - \mu} {\text{se}} = \frac{197-200} {1} = -3 $$
-3 값은 +-2 값의 범위 밖에 존재하므로 영가설을 부정하고 연구가설을 지지하도록 한다. 즉, 납품되어야 하는 감자와 내가 샘플링한 감자를 대표하는 모집단의 감자는 다를 것이다.

> 1 - (pnorm(3)-pnorm(-3))
[1] 0.002699796

위의 예에서 샘플의 숫자가 작은 경우에는 +-2 를 단순 사용하는 것이 아니라, 보정된 값을 사용한다. 보정된 값은 t distribution Table와 같은 기 계산된 테이블을 참조하여 구한다. 만약에 n=25이고, 이 때의 샘플 평균이 191라고 한다면, df=24이며 alpha=.05(양측검증)인 경우를 살펴본 후 (이를 T critical value 라고 한다), 이 점수와 계산된 점수(이를 calculated t value 라고 한다)를 비교한다. 해석은 이전과 마찬가지로 +- T critical value 범위 밖에 T calculated value가 존재하면 영가설을 부정하고 원가설을 지지하게 된다. 이 경우의 critical value는 t = 2.0639 (p < .05, df=24) 이다.

즉, $ se = \frac {\sigma}{\sqrt{N}} = \frac {20}{5} = 4$ 이고 $ \text{t} = \frac {191-200}{4} = -2.25 $ 인데, 이 점수와 t critical value 인 2.0639의 +- 값과 비교를 하면 t calculated value는 -2.25 는 범위 밖에 존재하므로 영가설을 부정하고 연구가설을 지지하는 결론을 내린다 (알파레벨은 .05로 하고).

그렇다면 이 감자 집단의 진짜 (그들만의 모집단) 평균은 어디일까?
$ \displaystyle \pm t_{\alpha=.05}(399) = \pm 1.965927 = \frac {197 - \mu} {se} = \frac {197 - \mu} {\frac {20} {\sqrt{400}} } = 197 - \mu $

qt(.05/2,399) 
[1] -1.965927
# alpha = 0.05 level, df=399 (n=400) 기준 밖에 
계산된 t값이 존재하기 위해서는 +-1.965927 값 
밖이어야 한다.

따라서
$ \mu = 197 \pm 1.965927 $
$ \text{from } 195.0341 \text{ to } 198.9659 $

이것을 Confindence Interval 이라고 부른다

$ CI_{.95} = \overline{X} \pm t_{crit} * se $

See also confidence interval

위에서 t-value는 r을 이용한 아래를 참조

abs(qt(0.05/2, 399))  # 95% confidence level에서 df = 399일 때 t critical value 
[1] 1.965927
# se 값은 20/sqrt(400) = 1
> se <- 20/sqrt(400)
> a <- abs(qt(0.05/2, 399)) # 이를 a에 저장
> 197 - a * se
[1] 195.0341
> 197 + a * se
[1] 198.9659
> rnorm2 <- function(n,mean,sd) { mean+sd*scale(rnorm(n)) }
> potato_sample <- rnorm2(25, 194,20)
> mean(potato_sample)
[1] 194
> sqrt(var(potato_sample))
     [,1]
[1,]   20

> t.test(potato_sample, mu=200)

	One Sample t-test

data:  potato_sample
t = -1.5, df = 24, p-value = 0.1467
alternative hypothesis: true mean is not equal to 200
95 percent confidence interval:
 185.7444 202.2556
sample estimates:
mean of x 
      194 
>       
> se <- 20/sqrt(25)
> t <- abs(qt(0.05/2, 24))
[1] 2.063899
> 194 - se * t
> 194 + se * t
> rnorm2 <- function(n,mean,sd) { mean+sd*scale(rnorm(n)) }
> potato_sample_large <- rnorm2(2500, 194,20)
> mean(potato_sample_large)
[1] 191
> sqrt(var(potato_sample_large))
[1]   20
> t.test(potato_sample_large, mu=200)

	One Sample t-test

data:  potato_sample_large
t = -15, df = 2499, p-value < 2.2e-16
alternative hypothesis: true mean is not equal to 200
95 percent confidence interval:
 193.2156 194.7844
sample estimates:
mean of x 
      194 

> abs(qt(0.05/2, 2499))
[1] 1.960914      
> 

위 둘의 se를 비교해 보라. 그리고, 이를 type I and type II error와 관련지어 설명하라

모집단의 평균만을 알고 있을 경우

새들이 눈을 무서워할까? 만약에 무서워한다면, 여름에 농작물에서 새를 쫒는데 사용할 수 있을것이다. 연구자 B는 이를 가설로 세우고 테스트해보기로 하였다. B는 이를 위해서 실험환경을 우선 만들었다. 커다란 직사각형의 방의 한 면에는 사람의 눈을 그려 두고 이 주변에 새들이 쉴곳을 마련해 두었다. 반대편은 아무 표시가 없으며 주변에 쉴 곳을 마련해 두었다. B는 이제 16마리의 참새들을 구하여 각각의 새가 한 시간 동안 표시없는 벽에 얼마나 머물렀는가를 측정하였다.

측정한 결과, B는 다음과 같은 statistics를 얻었다.

  • $\overline{X} = 35 \text{ minutes}$
  • $\text{Sum of Squares} = SS = 1215$
  • $n = 16, df = 15$

이를 바탕으로 아래의 연구가설을 세웠다.

  • $H1\;:\;\;\;\; \mu_{\text{plain}} \; \not= \; 30 \;\text{minutes}$

위에서 30 분이 아니라고 생각한 것은 눈이 새들에게 아무 영향을 미치지 않는다면 한 시간의 반인 30분을 머문다고 가정할 수 있기 때문이다. 그러나, B는 이외에 population(모집단)standard deviation 값을 모른다. B는 confidence interval을 95% (alpha level = .05)로 하기로 하고, 현재 샘플의 degrees of freedom은 n-1인 15이라고 기록해둔다. 이를 토대로 B는 t distribution table을 살펴본다 (T distribution Table을 사용하는 이유는 아래에서 언급한다).

  • T distribution을 살펴본 결과, $T_{\text{crit}} = 2.131\;,\;\; (df = 15, \alpha = .05) $ 이라는 것을 알아내었다. 이 숫자를 기록해 둔다.

다음으로, B는 위의 가설이 참이 아니라면, 즉 $\mu_{\text{plain}} = 30 \text{min}$ 이라고 가정한다 (null hypothesis).

  • $H0\;: \;\;\;\; \mu_{\text{plain}} \; = \; 30 \text{minutes}$

이제 $t$ 값을 구하여, $t_{\text{crit}}$ 값과 비교하여 본다.
$$ \begin{eqnarray} t & = & \frac{\overline{X}-\mu}{s_X} = \frac{35-30}{s_X} \nonumber \end{eqnarray}
$$ $$
\begin{eqnarray} s^2 & = & \frac{SS}{df} = \frac{1215}{16-1} = 81 \nonumber \end{eqnarray}
$$ $$
\begin{eqnarray} s_{\overline{X}} & = & \sqrt{\frac{s^2}{n}} = \sqrt{\frac{81}{16}} = \frac{9}{4} \nonumber \end{eqnarray}
$$ 따라서, $t = \frac{5}{\frac{9}{4}} = \frac{20}{9} = 2.22$ 이다. [[z-test]]에서 언급한 것처럼, t 점수를 적용한다고 하면, 2보다 크므로, 영가설을 부정할 수 있다. 그러나, B는 [[:z-test]]에서와 같이 population의 $\mu$ 를 사용하지 않았으므로, t값으로 얻은 결과를 z값처럼 사용할 수 없다. T distribtuion table은 이렇게 불완전한 $s_{\overline{x}}$ 의 값을 염두에 두고 만들어진 것이다. 따라서 위에서 구한 $t_{\text{crit}}=2.131$ 의 값은 z-test에서의 2 처럼 사용될 수 있다. 이 둘을 비교하면, 계산된 t 값이 더 크므로, 영가설을 부정하고, 따라서 연구가설을 채택한다. 단, B의 이 채택이 100% 옳은 결정이 아니라, 5%의 오류 가능성을 포함하고 있는 것이다.

B는 이와 같은 실험결과를 보고서의 형태로 기술한다.

참새들이 민짜 벽에 머문 평균시간은 35분이었다 (SD = $9$ ). 실험 결과에서 얻어진 이 값은 눈의 영향력이 없다고 가정했을 때, 새들이 머물것으로 추정되는 30분과 통계적으로 유의미하게 다르다는 것이 밝혀졌다. 즉, 눈은 새들에게 영향력을 미친다고 판단되었다 (t(15) = 2.22, p < .05).

> abs(qt(0.05/2, 15))
[1] 2.13145

> rnorm2 <- function(n,mean,sd) { mean+sd*scale(rnorm(n)) }
> bird_eye <- rnorm2(16, 35, 9)
> hist(bird_eye)
> bird_eye
          [,1]
 [1,] 33.42614
 [2,] 34.29464
 [3,] 40.73375
 [4,] 38.16267
 [5,] 39.88801
 [6,] 46.02066
 [7,] 48.00472
 [8,] 41.13903
 [9,] 20.64618
[10,] 32.34706
[11,] 21.25446
[12,] 27.80643
[13,] 26.59595
[14,] 36.57292
[15,] 48.49734
[16,] 24.61004
attr(,"scaled:center")
[1] -0.1142795
attr(,"scaled:scale")
[1] 1.251198

> t.test(bird_eye, mu=30)

	One Sample t-test

data:  bird_eye
t = 2.2222, df = 15, p-value = 0.04207
alternative hypothesis: true mean is not equal to 30
95 percent confidence interval:
 30.20424 39.79576
sample estimates:
mean of x 
       35 

모집단의 평균만을 알고 있을 경우, 예

임산부의 혈압이 전국 평균 120 mmHg 임을 알고 있다. 그러나, 표준편차 값은 알고 있지 못하다. 임산부들이 아주 약한 수준의 포도주를 마시게 되면 혈압이 높아져서 건강에 좋지 않다는 것을 알고 싶다. 이에 따라서 15명의 임산부를 모집하여 아주 약한 수준의 포도주를 섭취하도록 하고 혈압을 재어보았다. 이 데이터를 가지고 혈압이 올랐는지를 검증하려고 한다.

평균은 123, 표준편차는 7.33이었다. 시그마는 알고 있지 못한 상태이고, 모집단의 평균은 120 이다. 이 연구는 알코올의 영향력이 있는가를 알아보는 것으로, 가설은 연구자의 포도주섭취자샘플의 평균이 임산부모집단의 평균과 다르다 선언하는 것이다.

\begin{eqnarray*} \text{H1: } \;\; \overline{X} \;\; (=123) & \ne & \mu \;\;\; (=120) \\ \end{eqnarray*}
이 선언문을 (educated guess) 직접 테스트할 수는 없으므로, 이를 뒤집어서 영가설을 만든다.
\begin{eqnarray*} \text{H0: } \;\; \overline{X} \;\; (=123) & = & \mu \;\;\; (=120) \\ \end{eqnarray*}

영가설은 중심극한정리를 (CLT) 이용하여, 모집단에 속한 임산부에서 취할 수 있는 샘플의 (n=15) 평균이 나올 수 있는 범위를 se를 구하여 알 수있고, 연구자의 샘플평균이 이 범위에서 나온다면, 포도주를 섭취하지 않은 평범한 샘플 중의 하나라고 판단할 수 있고, 이 범위 밖에서 나온다면 모집단에 속한 평범한 샘플이 아니라고 판단할 수 있게 된다.

t-test 일반에서 설명한 것처럼 이를 테스트하기 위해서는 샘플평균과 모집단평균의 차이에 랜덤에러(표준오차)가 몇개나 들어가나 보아서 2에 유사한 점수와 1) 비교해 보려고 하는 것이다.

아래는 이것을 R에서 확인해 보는 작업이다.

## 모집단의 평균값
mu <- 120
## 샘플들의 (n=15) 혈압 데이터
bp <- c(131, 115, 118, 120, 126, 137, 
         125, 116, 117, 122, 123, 128, 
         110, 124, 133)
m.bp <- mean(bp) ## 샘플평균
m.bp
sd.bp <- sd(bp) ## 샘플표준편차
sd.bp
n.bp <- length(bp) ## 샘플갯수
n.bp

diff <- m.bp-mu ## 샘플-모집단 차이
## 표준오차 = 샘플평균들의 표준편차  
## standard error = standard deviation of sample means 
## 즉, 랜덤에러
se.bp <- sd.bp/sqrt(n.bp)  

## 차이를 랜덤에러로 나눈 값
t.value <- diff/se.bp
t.value

## 우리가 비교해봐야 할 값
qt(c(.025, .975), 14)
> ## 모집단의 평균값
> mu <- 120
> ## 샘플들의 (n=15) 혈압 데이터
> bp <- c(131, 115, 118, 120, 126, 137, 
+         125, 116, 117, 122, 123, 128, 
+         110, 124, 133)
> m.bp <- mean(bp) ## 샘플평균
> m.bp
[1] 123
> sd.bp <- sd(bp) ## 샘플표준편차
> sd.bp
[1] 7.329003
> n.bp <- length(bp) ## 샘플갯수
> n.bp
[1] 15
> 
> diff <- m.bp-mu ## 샘플-모집단 차이
> ## 표준오차 = 샘플평균들의 표준편차  
> ## standard error = standard deviation of sample means 
> ## 즉, 랜덤에러
> se.bp <- sd.bp/sqrt(n.bp)  
> 
> ## 차이를 랜덤에러로 나눈 값
> t.value <- diff/se.bp
> t.value
[1] 1.585338
> 
> ## 우리가 비교해봐야 할 값
> qt(c(.025, .975), 14)
[1] -2.144787  2.144787
> 

t.value가 (1.59) +-2.145점 안 쪽에 존재하므로 영가설을 부정할 수 없게 된다.

두 집단 간의 평균과 표준편차만으로 판단하는 경우

Independent t-test 문서는 미국의 대학생을 위해서 쓰여진 것이다. 우선 이것을 읽어 볼 것.

이 문서에서는 $\sigma_{\text{diff}}$ 에 대해서는 언급을 하지 않았다. 약간 복잡하기 때문이었는데, 이전의 standard error 개념을 잘 이해했다면 실제로 계산법을 익혀볼 필요는 없다고 하겠다. 그러나, 실제로 구해보면 아래와 같이 구할 수 있다.

우선 $\sigma_{\text{diff}}$ 는 standard error of the sample means differences 라고 이야기 할 수 있다. Standard deviation of sampling distribution (즉, standard error) 은 하나의 집단만을 가지고 가상으로 여러 번 샘플을 뽑는 것을 가정하지만, 여기서는 두 집단 간의 평균차이로 만들어진 데이터의 분포곡선을 가정한다. 즉, 집단과 집단의 평균을 구한뒤 그 차이를 계속 기록함으로써 구하는 distribution 곡선을 상상한다.

Data Table

$\overline{X}$ $\overline{Y}$ $\overline{X}-\overline{Y}$
$\overline{X_1}$ $\overline{Y_1}$ $\overline{X_1}-\overline{Y_1}$
$\overline{X_2}$ $\overline{Y_2}$ $\overline{X_2}-\overline{Y_2}$
$\overline{X_3}$ $\overline{Y_3}$ $\overline{X_3}-\overline{Y_3}$
. . . . . . . . .
$\overline{X_i}$ $\overline{Y_i}$ $\overline{X_i}-\overline{Y_i}$

위의 예에서 만약에 X집단과 Y집단의 평균이 같다고 가정한다면, 어떤 종류의 $\overline{X_i}-\overline{Y_i}$ distribution 곡선이 나올까? 평균을 0으로 하며, 두 집단의 Variance를 더한 값 만큼의 Variance값을 갖는 곡선이 나올 것이라는 예상을 할 수 있다.

과연, 이와 같은 상황에서의 t값은 아래와 같이 구한다.

$t = \displaystyle \frac{(\overline{X_a}-\overline{X_b})-(\mu_a-\mu_b)}{\sigma_{diff}}$

참조: One sample일때의 t 계산법: $t = \displaystyle \frac{(\overline{X}-\mu)}{\sigma_{\overline{X}}} $

만약에 A그룹과 B그룹 간의 전체 모집단의 평균이 같다고 가정한다면 $\mu_a-\mu_b = 0$ 이 될것이다. 그리고 , $\sigma_{diff}$ 라는 기호는 두 집단의 모집단 표준편차를 안다고 가정할 때만 사용할 수 있으므로, $s_{\overline{X_a}-\overline{X_b}}$ 라고 표현할 수 있다.

$t = \displaystyle \frac{(\overline{X_a}-\overline{X_b})}{s_{\overline{X_a}-\overline{X_b}}}$

$se = \displaystyle s_{\overline{X_a}-\overline{X_b}} = \sqrt{\frac{S_p^2}{n_a} + \frac{S_p^2}{n_b}}$

이때 $S_p^2$ 는 두 집단의 분산을 묶어서 구한 전체 분산값이다. 이 묶은 분산값은 아래와 같이 구한다.

$s_p^2 = \displaystyle \frac{SS_a+SS_b}{df_a+df_b}$

위의 식은 보기에는 복잡해 보이지만, 이전에 분산값과 standard error값을 구하는 공식을 떠 올리면 두 계산이 크게 다르지 않음을 알 수 있다.

참고:
$\displaystyle s^2=\frac{SS}{df}$

$ \displaystyle se=\sqrt{\frac{\sigma^2}{n}}$

다른 예,

$\text{ser}$ $group$ $D$
1 1 11.4
2 1 11
3 1 5.5
4 1 9.4
5 1 13.6
6 1 -2.9
7 1 -0.1
8 1 7.4
9 1 21.5
10 1 -5.3
11 1 -3.8
12 1 13.4
13 1 13.1
14 1 9
15 1 3.9
16 1 5.7
17 1 10.7
18 2 -0.5
19 2 -0.93
20 2 -5.4
21 2 12.3
22 2 2
23 2 -10.2
24 2 -12.2
25 2 11.6
26 2 -7.1
27 2 6.2
28 2 -0.2
29 2 -9.2
30 2 8.3
31 2 3.3
32 2 11.3
33 2 0
34 2 -1
35 2 -10.6
36 2 -4.6
37 2 -6.7
38 2 2.8
39 2 0.3
40 2 1.8
41 2 3.7
42 2 15.9
43 2 -10.2

예를 들어보자.

C는 이미지를 연상하는 기억방법이 단순한 기억방법보다 효과가 크다고 생각한다. 이를 검증하기 위해서 C는 두 집단(각각의 n=10)을 샘플로 선정하여 아래의 Sample Statistics 를 얻었다.

Group a Group b
$n_a = 10$ $n_b = 10$
$\overline{X_a} = 19$ $\overline{X_b} = 25$
$SS_a = 160$ $SS_b = 200$

우선 연구가설과 영가설은:

  • $\displaystyle H1\;: \;\;\;\; \mu_a \; \not= \; \mu_b $
  • $\displaystyle H0\;: \;\;\;\; \mu_a \; = \; \mu_b $
  • $\displaystyle df_a = 9,\;\; df_b = 9,\;\; df = 18 $
  • $\displaystyle t_{crit} (\alpha=.05, df=18) = \pm 2.101 $ see t distribution table
  • or do this in R
>qt(.05/2, df=18) 
[1] -2.100922 
  • $\displaystyle t= \frac {\text{difference between the two groups}}{\text{random error}} = \frac {\overline{X_a} - \overline{X_b}} {s_{\overline{X_a}-\overline{X_b}}} $
  • $\displaystyle \text{Pooled variance} = s_p^2 = \frac{SS_a+SS_b}{df_a+df_b} = \frac{360}{18} = 20 $
  • $\displaystyle se = \sqrt{\frac{s_p^2}{n_a}+\frac{s_p^2}{n_b}}= \sqrt{\frac{20}{10}+\frac{20}{10}} = 2 $

따라서

  • $\displaystyle t = \frac{\overline{X_a} - \overline{X_b}} {s_{\overline{X_a}-\overline{X_b}}} = \frac{19-25}{2} = -3 $
  • $\displaystyle t_{calculated} > t_{crit}$ 이므로, 영가설을 부정한다. 즉, 이 두 집단의 평균차이는 (-6)은 두 집단이 대동소이한 집단이라고 가정할 때, 즉 동일한 population에 속한 집단이라고 가정했을때에 나올 수 있는 차이를 훨씬 넘어선다.

따라서, C는 다음과 같이 보고한다.

정신적인 이미지를 사용하여 기억을 한 그룹 (treatment group) 과 일반 그룹 (control group) 간의 기억력은 차이가 있는 것으로 나타났다 $(t(18)= -3, \; p < .05)$ .

> rnorm2 <- function(n,mean,sd) { mean+sd*scale(rnorm(n)) }
> groupA <- rnorm2(10, 19, sqrt(160/9))
> groupB <- rnorm2(10, 25, sqrt(200/9))
> t.test(groupA, groupB)

	Welch Two Sample t-test

data:  groupA and groupB
t = -3, df = 17.78, p-value = 0.007762
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -10.205566  -1.794434
sample estimates:
mean of x mean of y 
       19        25 

> 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 

> abs(qt(.05/2, 18))
[1] 2.100922
> 

동일집단 간의 차이에 대해서 알아볼 때

Eating disorder treatment. Was the treatment effective?
in Chapter 13.2 Table 13.1

$\text{ser}$ $X_1$ $X_2$ $D$
1 83.8 95.2 11.4
2 83.3 94.3 11
3 86 91.5 5.5
4 82.5 91.9 9.4
5 86.7 100.3 13.6
6 79.6 76.7 -2.9
7 76.9 76.8 -0.1
8 94.2 101.6 7.4
9 73.4 94.9 21.5
10 80.5 75.2 -5.3
11 81.6 77.8 -3.8
12 82.1 95.5 13.4
13 77.6 90.7 13.1
14 83.5 92.5 9
15 89.9 93.8 3.9
16 86 91.7 5.7
mean 82.975 90.025 7.05
std 5.067 8.522 7.335

$$ \begin{eqnarray} t = \frac{\overline{D}-0}{s_{ \overline{D} }} = \frac{\overline{D}}{ \frac{s_D} {\sqrt{N}} } . . . . . . \end{eqnarray}
$$

$ \text{H1: } \overline{D} \ne 0 $
$ \text{H0: } \overline{D} = 0 $

According to (1), $t_{cal}=3.844$ . Then what is the value of $df$ (case number-1)? = (16-1) = 15.
When critical value = .05, $ t_{crit} = \pm{2.13} $

예 1

x1 <- c(83.8, 83.3, 86, 82.5, 86.7, 79.6, 76.9, 
        94.2, 73.4, 80.5, 81.6, 82.1, 77.6, 83.5, 
        89.9, 86)
x2 <- c(95.2, 94.3, 91.5, 91.9, 100.3, 76.7, 
        76.8, 101.6, 94.9, 75.2, 77.8, 95.5, 
        90.7, 92.5, 93.8, 91.7)

mean(x1)
sd(x1)
mean(x2)
sd(x2)

xd <- x1-x2
xd
## mean of the group difference 
m.diff <- mean(xd) 
m.diff

## sd of  the group difference
sd.diff <- sd(xd)  
sd.diff

## se of the group diff
se.diff <-  sd.diff/sqrt(length(xd)) 
se.diff

## mean of group diff / se of group diff
t.value <- m.diff/se.diff 
t.value

qt(.05/2, length(xd))
qt(.05/2, length(xd), lower.tail=F)

###########################################
##
## t-test in R
##
###########################################
t.test(x1, x2, paired=T)

output . . . .

> x1 <- c(83.8, 83.3, 86, 82.5, 86.7, 79.6, 76.9, 
        94.2, 73.4, 80.5, 81.6, 82.1, 77.6, 83.5, 
        89.9, 86)
> x2 <- c(95.2, 94.3, 91.5, 91.9, 100.3, 76.7, 
        76.8, 101.6, 94.9, 75.2, 77.8, 95.5, 
        90.7, 92.5, 93.8, 91.7)

> mean(x1)
[1] 82.975
> sd(x1)
[1] 5.066689
> mean(x2)
[1] 90.025
> sd(x2)
[1] 8.522011

> xd <- x1-x2
> xd
[1]  -11.4 -11.0  -5.5  -9.4 -13.6   2.9   
[7]    0.1  -7.4 -21.5   5.3   3.8 -13.4 
[13] -13.1  -9.0  -3.9  -5.7

> m.diff <- mean(xd) ## mean of the group difference 
> m.diff
[1] -7.05

> sd.diff <- sd(xd)  ## sd of  the group difference
> sd.diff
[1] 7.335394

## se of the group diff
> se.diff <-  sd.diff/sqrt(length(xd)) 
> se.diff
[1] 1.833848

## mean of group diff / se of group diff
> t.value <- m.diff/se.diff 
> t.value
[1] -3.844374


> qt(.05/2, length(xd))
[1] -2.119905
>
> qt(.05/2, length(xd), lower.tail=F)
[1] 2.119905
> 

###########################################
##
## t-test in R
##
###########################################
> t.test(x1, x2, paired=T)

	Paired t-test

data:  x1 and x2
t = -3.8444, df = 15, p-value = 0.001592
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -10.958755  -3.141245
sample estimates:
mean of the differences 
                  -7.05 

> 

예 2

# sample size = n 
n <- 36 # 36명이 있다
# 이들이 평가한 네이버의 UI 점수는 76점이고 
# 이들이 시간을 두고 평가한 새로운 네이버의 UI는 80점이라고 하고.
# 이 차이가 UI가 향상했다는 증거로 삼을 수 있는지 검증하고자 한다.
n <- 36
rnorm2 <- function(n,mean,sd) { mean+sd*scale(rnorm(n)) }
set.seed(101)
time1 <- rnorm2(n, 76, 5)
time2 <- rnorm2(n, 80, 5)
time1
time2
# 위에서 t1과 t2는 동일한 집단 (샘플)
# 샘플의 평균이 다를 뿐
time.diff <- time2 - time1
mean.diff <- mean(time.diff)
se.diff <- sd(time.diff)/sqrt(n)
t.calc <- mean.diff/se.diff
mean.diff
se.diff
t.calc
# 위의 t calculated value를 t distribution table의 t값과 비교 (t critical value)
# t.crit 값은 qt를 이용해서 구함
t.crit <- qt(.975, 35) # n-1 = 35
t.crit

t.calc > t.crit 
# 위의 값이 true이므로 t2와 t1 간의 차이가 충분히 크다고 판단하여 
# naver의 UI 점수가 t2에서 좋아졌다고 검증한다.

가설테스트, 예

위의 감자의 QC의 예를 연구가설을 테스트하는 형식으로 익혀 두는 방법.
위에서 살펴본 것과 같이, 감자의 단위당 무게가 평균 200g이고 표준편차가 20이라고 주장하는 납품업자로부터 감자의 quality가 보고와 일치하는 지 궁금하여 샘플 (n=400)을 뽑아 확인하는 경우를 예로 들어 가설검증의 순서를 이야기 해 보겠다.

  • $ \mu = 200 $ , $ \sigma = 20 $

위의 정보에 대해서 매니저 A는 의구심이 들게 된다. 따라서, 그의 연구가설은 아래와 같다.

  • $H1: \;\;\;\; \overline{X}_{potatoes} \;\; \not= \;\; \mu (200g); $

A는 위의 가설 검증을 위해서 $n=400$ 의 샘플을 뽑기로 하고, 이 샘플에 근거한 판단의 기준으로 .05 을 설정한다 (type_i_error 참조). 이는 A가 자신의 가설검증 판단을 위해서 95%의 confidence interval 을 갖는다고 결정한다는 것을 의미한다.

  • 이에 따라서 A는 Sampling을 통해서 sample을 뽑는다. 이렇게 뽑은 샘플의 평균이 396g 이었다. 즉, $\overline{X} = 396$ .

A는 위의 정보 즉, 샘플에서 취한 $\overline{X}$ 값 (396)이 C사가 주장하는 400g과 일치하는지에 관심을 갖는 것이다 (위의 H1 참조). 이를 좀 더 설명하자면, A는 400개의 샘플을 뽑을 때 C사의 주장이 진실이라고 할지라도,그 평균이 정확히 C사가 주장하는 400g이 나오지는 않을 것이라는 것을 알고 있다. A는 자신이 막 뽑은 샘플의 평균이 전체 평균 400g의 모집단에서 n=400의 샘플을 뽑을 때 자연스럽게 나올 수 있는 평균인지를 알고 싶은 것이다. A는 이 시점에서 자신이 뽑은 샘플을 직접 다루는 것 보다는 $\mu = 400 g$ 인 모집단을 가정한다면 (즉, C사의 주장이 진실이라면), n=400의 샘플의 평균이 개략적으로 어떤 범위에서 나와야 하는가를 알아보는 것이 더 좋은 방법이라고 생각한다. 이를 다시 이야기하면,

  • $H\not{0}: \;\;\;\; \overline{X} (396g) \;\; = \;\; \mu_{potatoes} (400g) $

라고 가정하는 것이다. 이를 null hypothesis 라고 한다.

일단 null hypothesis가 세워지고 나면, 모집단에 대한 sampling distribution 에 대해서 이야기해 볼 수 있다. 즉,

  • \begin{eqnarray} \text{The distribution of sample means (n=400) should have normal curve} \\ \mu_{\overline{X}} = \mu \\ \sigma_{\overline{X}} \normalsize = \frac{\sigma}{\sqrt{n}}, \;\; n=400 \end{eqnarray}

위의 정리는 central limit theorem 이라고 언급하였다. 이를 바탕으로 해서 n=400인 sampling distribution 의 성질을 정리하면 $\sigma_{\overline{X}}=\frac{\sigma}{\sqrt{n}}=\frac{20}{\sqrt{400}}=1$ 이다. 우리는 이를 standard error라고 부른다고 하였다.

  • 위의 정보(se)는
  • 샘플의 숫자(n)가 400인 샘플을 뽑았을 때,
  • 그 샘플의 평균값이 나타날 수 있는 범위를 정해주는 단위
  • se = 1 이므로
  • 400개의 샘플을 뽑았을 때, 그 샘플의 평균은 100이면 95번은 평균 200g을 기준으로 좌우로 2단위의 se만큼 떨어진 범위에서 발견될 것이다.
  • se의 두 단위를 사용하였으므로, 좌우 범위는 각각 2이다.
  • 즉, 398g - 402g에서 샘플의 평균이 나올 것이다.
  • 마지막으로 이 범위에서 샘플의 평균이 발견될 확률은 95% 이다. 이유는 [stadnard deviation of sample means] = [standard error] = se 를 2 단위 썻기 때문이다.
  • 즉, 우리는 400개의 샘플을 뽑았을 때, 그 샘플의 평균이 398에서 402일 거라는 확신을 95%하게됨.

라는 판단을 가능하게 해준다. 그런데, A가 구한 샘플의 평균은 396이고, 이는 위에서 언급한 398-402에 포함하지 않으므로, 아래의 판단을 하게 된다.

  • 이 샘플이 우리가 포기하기로 한 5%의 범위안에 드는 샘플일 수 있다 (가능성은 5%이기는 하지만)
  • 만약에 위의 가정을 무시할 수 있다면 (5%의 가정이므로), C사가 좋지 않은 감자를 납품하고 있다.

두 번째의 판단을 채택하게 되면, A는 위에서의 NullHypothesis를 부정하는 것이 된다. 이를 다시 이야기 하면 research hypothesis를 채택하는 것이고, 이는 C사는 평균이 400g인 감자를 납품하고 있지 않다는 판단이다.

가설테스트 예 2

가설. 가상현실 세계에서 교육을 받을 때 가상교수자가 존재하는 것과 목소리만으로 교육을 받는 것 간에 차이가 있을 것이다.

  • 독립변인. 가상현실의 교수방법
    • 변인의 종류. 가상교수자의 존재/비존재(목소리만)
    • 가상교수자의 존재 → w.Char
    • 목소리만 → w.Voc
  • 종속변인. 교육결과
    • 숫자변인
  • Data

w.Char = c(82, 89, 80, 87, 87, 94, 90, 84, 92, 83, 89, 79, 96, 73, 83, 83)
w.Voc = c(74, 81, 74, 65, 80, 87, 79, 69, 87, 70, 85, 80, 85, 85, 88, 83)

set.seed(101)
n1 <- 16
n2 <- 16
w.Char <- round(rnorm(n1, 85, 8))
w.Voc <- round(rnorm(n2, 81, 8))


g.diff <- mean(w.Char)-mean(w.Voc)
df1 <- 16-1
df2 <- 16-1
ss1 <- var(w.Char) * df1
ss2 <- var(w.Voc) * df2

pooled.v <- (ss1 + ss2) / (df1 + df2)
se <- sqrt((pooled.v/n1) + (pooled.v/n2))
t.calc <- g.diff/se

t.out <- t.test(w.Char, w.Voc)
t.out
t.calc

가설테스트 요약

1. 연구가설을 세운다
2. 샘플을 취한다. 이 때 샘플의 규모, n과 허용오차 (.05)를 정한다.
3. 연구가설을 뒤집어 영가설을 만든다.
4. 이를 근거로 검증절차를 따른다.
5. 절차의 결과를 가지고 영가설을 부정할지, 채택할지 결정한다.
6. 위에 따라, 연구가설에 대한 판단을 한다.

Example

Use the file (the above)
gender: gender
!TmobConv: time spent in mobile conversation
mobout: number of mobile out-calls
mobin: number of mobile in-calls
mobpeople: number of people, communicating with via mobile phone

Make three hypotheses:

T-TEST in English

Included section (from Independent T-test)

External Links

1)
t-test이므로 +-1.96(2)가 아닌, t distribution table을 이용해서 판단한다
t-test.txt · Last modified: 2022/07/07 10:05 by hkimscil

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki