[R] 빅분기 T-검정(T-test) 실습 TIL

: ) YOUNG·2022년 5월 2일
2

빅분기

목록 보기
12/20
post-thumbnail

T-test

t-test이란

독립변수가 범주형이고, 종속변수가 수치형일 때 두 집단의 평균을 비교하는 검정 방법이다.

T-검정에는 단일표본 T-검정, 대응표본 T-검정(Paired Sample T-Test), 독립표본 T-검정(independent Sample T-Test)이 있다.

자유도가(n-1)인 t분포를 따르는 두 집단간 평균 차이 검정

군내 변동이 큰 경우 집단간 평균 차이를 알아보기 어려움 (등분산 가정 관련)

표본은 정규성을 만족하여야 하며 표본이 정규성을 만족하지 못하는 경우 윌콕슨 순위 검정을 사용

검정하는 통계량이 귀무가설 하에서 T-분포를 따르는 통계적 가설 검정이다.

두 집단 간의 평균을 비교하는 모수적 통계 방법으로써 표본이 정규성, 등분산성, 독립성 등을 만족할 경우 적용한다.

적은 표본으로도 모집단 평균을 추정하려고 정규분포 대신에 사용되는 확률분포이다.

모분산을 모르는 경우 표본분산으로 대체함


T-test의 가설

  • 귀무가설 (HH0) : 두 표본(집단)의 평균은 같다.
  • 대립가설 (HH1) : 두 표본(집단)의 평균은 같지 않다.

T-검정의 종류

단일표본 T-검정(One Sample T-Test)

  • 단일표본 T-검정은 한 집단의 평균이 모집단의 평균과 같은지 검정하는 방법이다.
  • 모집단의 평균이 알려져 있는 경우 하나의 표본 집단의 평균을 구하고 모집단의 평균과 표본 집단의 평균이 같은지를 검정한다.
  • 단일표본 T-검정은 실제로 표본 집단의 수가 1개가 되고, 연구자가 측정한 집단의 평균과 기존의 연구를 통해서 제시된 수치와 비교하는 것이다.

대응표본 T-검정(Paired Sample T-Test)

  • 동일한 집단의 처치 전후 차이를 알아보기 위해 사용하는 검정 방법
  • 한 그룹의 처치 전 데이터와 처치 후 데이터를 분석하는 방법이다.
  • 표본(Sample)이 하나, 독립변수가 1개일 때 사용된다.

독립표본 T-검정(independent Sample T-Test)

  • 데이터가 서로 다른 모집단에서 추출된 경우 사용할 수 있는 분석 방법이다.
  • 독립된 두 집단의 평균차이를 검정하는 방법이다.
  • 검정을 하기전에 반드시 등분산성, 정규성 가정이 만족하는지 확인한다.
  • 표본이 2개, 독립변수가 1개일 때 사용된다.


T-test 실습

1. 데이터 불러오기

데이터는 기본 제공 데이터 airquality를 사용했습니다.

data(airquality)
df <- airquality
head(df)

출력

> data(airquality)
> df <- airquality
> head(df)
  Ozone Solar.R Wind Temp Month Day
1    41     190  7.4   67     5   1
2    36     118  8.0   72     5   2
3    12     149 12.6   74     5   3
4    18     313 11.5   62     5   4
5    NA      NA 14.3   56     5   5
6    28      NA 14.9   66     5   6

2. Temp의 평균값 확인

Temp는 Temperature로 온도 값입니다.

mean(df$Temp)
> mean(df$Temp)
[1] 77.88235 

3. 단일표본 검정 확인하기

t-검정은 모두 t.test()함수를 사용합니다.

모 평균이 76일 때,

t.test(x = df$Temp, mu = 76)

> t.test(x = df$Temp, mu = 76)

        One Sample t-test

data:  df$Temp
t = 2.4599, df = 152, p-value = 0.01502
alternative hypothesis: true mean is not equal to 76
95 percent confidence interval:
 76.37051 79.39420
sample estimates:
mean of x 
 77.88235

One Sample 로 단일표본검정을 확인할 수 있고, 모평균이 76일 때 p-value = 0.01502으로 유의 확률이 0.05일 경우, 0.05이하 이므로 귀무가설을 기각하고, 대립가설을 채택합니다.

즉, 둘의 평균차이가 유의미하다고 볼 수 있습니다.


4. T-검정 결과 출력해보기

t-test를 실행해봤으니 p-value와 t-value의 값을 출력해보겠습니다.

result = t.test(x = df$Temp, mu = 76)
result

result 변수를 만들어서 t-검정 결과를 저장하고

result$p.value

result$statistic

이렇게 해당 변수 이름을 넣기만 해도 출력이 가능합니다.

> result$p.value
[1] 0.01501895

> result$statistic
       t
2.459879

만약 어떤 변수인지 직접 확인하고 싶으시다면, str이나 names함수를 사용하시면 변수들의 이름을 직접확인 할 수 있습니다.

str(result)

names(result)
> str(result)
List of 10
 $ statistic  : Named num 2.46
  ..- attr(*, "names")= chr "t"
 $ parameter  : Named num 152
  ..- attr(*, "names")= chr "df"
 $ p.value    : num 0.015
 $ conf.int   : num [1:2] 76.4 79.4
  ..- attr(*, "conf.level")= num 0.95
 $ estimate   : Named num 77.9
  ..- attr(*, "names")= chr "mean of x"
 $ null.value : Named num 76
  ..- attr(*, "names")= chr "mean"
 $ stderr     : num 0.765
 $ alternative: chr "two.sided"
 $ method     : chr "One Sample t-test"
 $ data.name  : chr "df$Temp"
 - attr(*, "class")= chr "htest"
 
 > names(result)
 [1] "statistic"   "parameter"   "p.value"     "conf.int"    "estimate"   
 [6] "null.value"  "stderr"      "alternative" "method"      "data.name"   

str을 List of 10을 보면 아시겠지만, names함수도 사용이가능합니다.


출력도 다른 방법이 있어서 보여드립니다.

print(result[[1]])

print(result[["statistic"]])

print(result[["p.value"]])
> print(result[["p.value"]])
[1] 0.01501895

> print(result[[1]])
       t
2.459879

> print(result[["statistic"]])
       t
2.459879

> print(result[["p.value"]])
[1] 0.01501895

위가 쓰기에는 아주 간단하지만, 훨씬 깔끔하게 나오는 것 같습니다.


5. 대응표본 T-검정

대응표본 t-검정은 간단합니다.

이번에는 iris 데이터로 한번해보겠습니다.

t.test(iris$Sepal.Length, iris$Sepal.Width, paired = TRUE)

mean(iris$Sepal.Length) - mean(iris$Sepal.Width)
> t.test(iris$Sepal.Length, iris$Sepal.Width, paired = TRUE)

        Paired t-test

data:  iris$Sepal.Length and iris$Sepal.Width
t = 34.815, df = 149, p-value < 2.2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 2.627874 2.944126
sample estimates:
mean of the differences
                  2.786


> mean(iris$Sepal.Length) - mean(iris$Sepal.Width)
[1] 2.786

대응표본 검정을 사용하면 아까 단일표본과 다르게 위에

Paired t-test라고 나오게 됩니다.

이 대응표본 검정이 쉬운 이유가 2번째 줄 처럼 그냥 두 집단의 평균을 뺀 값과 동일합니다.

물론 두 집단간의 평균 차이가 유의미한지 아닌지의 결과를 얻을 수 있따는 차이점은 있습니다.


6. 독립표본 T-test

이제 독립표본 t-test를 해보겠습니다.

독립표본 t-test를 하기전에는 항상 등분산성 가정을 만족하는지 확인을 해봐야 합니다.

여기서 우리는 해당과정은 생략하고 등분산가정을 만족한다는 조건으로
var.equal = TRUE를 주고 검사를 해보겠습니다.

t.test(iris$Sepal.Length, iris$Sepal.Width, paired = FALSE, val.equal = TRUE)

# 결과
> t.test(iris$Sepal.Length, iris$Sepal.Width, paired = FALSE, val.equal = TRUE)

        Welch Two Sample t-test

data:  iris$Sepal.Length and iris$Sepal.Width
t = 36.463, df = 225.68, p-value < 2.2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 2.63544 2.93656
sample estimates:
mean of x mean of y
 5.843333  3.057333

여기서도 결과 윗줄에 Welch Two Sample t-test 라고 볼 수 있습니다.
또한, 마지막줄에 두 집단의 평균을 확인할 수 있습니다.

0개의 댓글