R에서 쌍을 이루는 샘플 t-테스트를 수행하는 방법


대응 표본 t-검정은 한 표본의 각 관측치가 다른 표본의 관측치 와 일치할 수 있을 때 두 표본의 평균을 비교하는 통계 검정입니다.

예를 들어, 특정 커리큘럼이 학생들의 특정 시험 성적에 중요한 영향을 미치는지 알고 싶다고 가정해 보겠습니다. 이를 테스트하기 위해 우리는 한 학급의 20명의 학생에게 사전 테스트를 요청합니다. 그런 다음 각 학생들은 2주 동안 매일 학습 프로그램에 참여합니다. 그런 다음 학생들은 비슷한 난이도의 시험을 다시 치릅니다.

첫 번째 시험과 두 번째 시험의 평균 점수 차이를 비교하기 위해 각 학생에 대해 첫 번째 시험 점수가 두 번째 시험 점수와 연관될 수 있기 때문에 대응 t-검정을 사용합니다.

대응 t 검정을 수행하는 방법

대응 t-검정을 수행하려면 다음 접근 방식을 사용할 수 있습니다.

1단계: 귀무가설과 대립가설을 진술합니다.

H 0 : μ d = 0

H a : μ d ≠ 0 (양면)
H a : μ d > 0 (단측)
H a : μ d < 0 (단면)

여기서 μd 평균 차이입니다.

2단계: 검정 통계량과 해당 p-값을 찾습니다.

a = 학생의 첫 번째 시험 점수, b = 학생의 두 번째 시험 점수로 설정합니다. 시험 점수 간의 실제 평균 차이가 0이라는 귀무 가설을 검정하려면 다음을 수행하십시오.

  • 각 점수 쌍 간의 차이를 계산합니다(d i = b i – a i ).
  • 평균 차이(d)를 계산합니다.
  • 차이의 표준편차를 계산합니다. s d
  • T = d / (s d / √n)인 t 통계량을 계산합니다.
  • 자유도가 n-1 인 t-통계량에 해당하는 p-값을 찾습니다.

3단계: 유의 수준에 따라 귀무 가설을 기각하거나 기각하지 않습니다.

p-값이 선택한 유의 수준보다 작으면 귀무 가설을 기각하고 두 그룹의 평균 간에 통계적으로 유의한 차이가 있다는 결론을 내립니다. 그렇지 않으면 귀무가설을 기각하지 못할 것입니다.

R에서 쌍 t 테스트를 수행하는 방법

R에서 쌍 t 테스트를 수행하려면 다음 구문과 함께 내장 함수 t.test()를 사용할 수 있습니다.

t.test (x, y, paired = TRUE, 대체 = “양측”)

  • x,y: 비교하려는 두 디지털 벡터
  • paired: paired t-test를 계산하려고 함을 지정하는 논리값
  • 대안: 대안 가설. 이는 “양면”(기본값), “상단” 또는 “하단”으로 설정할 수 있습니다.

다음 예에서는 20명의 학생을 대상으로 사전 테스트와 사후 테스트 간의 평균 점수에 유의미한 차이가 있는지 확인하기 위해 대응 t-테스트를 수행하는 방법을 보여줍니다.

데이터 생성

먼저 데이터 세트를 생성합니다.

 #create the dataset
data <- data.frame(score = c(85,85, 78, 78, 92, 94, 91, 85, 72, 97,
                             84, 95, 99, 80, 90, 88, 95, 90, 96, 89,
                             84, 88, 88, 90, 92, 93, 91, 85, 80, 93,
                             97, 100, 93, 91, 90, 87, 94, 83, 92, 95),
                   group = c(rep('pre', 20), rep('post', 20)))

#view the dataset
data

#scoregroup
#1 85 pre
#2 85 pre
#3 78 pre
#4 78 pre
#5 92 pre
#6 94 pre
#7 91 pre
#8 85 pre
#9 72 pre
#10 97 pre
#11 84 pre
#12 95 pre
#13 99 pre
#14 80 pre
#15 90 pre
#16 88 pre
#17 95 pre
#18 90 pre
#19 96 pre
#20 89 pre
#21 84 post
#22 88 post
#23 88 post
#24 90 post
#25 92 post
#26 93 post
#27 91 post
#28 85 post
#29 80 post
#30 93 post
#31 97 post
#32 100 posts
#33 93 post
#34 91 post
#35 90 post
#36 87 post
#37 94 post
#38 83 post
#39 92 post
#40 95 post

차이점을 시각화하세요

다음으로 dplyr 라이브러리의 group_by()summary () 함수를 사용하여 두 그룹의 요약 통계를 살펴보겠습니다.

 #load dplyr library
library(dplyr)

#find sample size, mean, and standard deviation for each group
data %>%
group_by (group) %>%
  summarize (
    count = n(),
    mean = mean(score),
    sd = sd(score)
  )

# A tibble: 2 x 4
# group count mean sd
#     
#1 post 20 90.3 4.88
#2 pre 20 88.2 7.24

또한 R의 boxplot() 함수를 사용하여 상자 그림을 만들어 사전 및 사후 그룹에 대한 점수 분포를 표시할 수도 있습니다.

 boxplot (score~group,
  data=data,
  main="Test Scores by Group",
  xlab="Group",
  ylab="Score",
  col="steelblue",
  border="black"
)

요약 통계와 박스 플롯을 통해 포스트 그룹의 평균 점수가 프리 그룹의 평균 점수보다 약간 높은 것을 확인할 수 있습니다. 또한 사후 그룹 점수가 사전 그룹 점수보다 변동성이 적다는 것을 알 수 있습니다.

이 두 그룹의 평균 차이가 통계적으로 유의한지 확인하기 위해 대응 t 검정을 수행할 수 있습니다.

쌍체 t-검정 수행

대응 t 검정을 수행하기 전에 차이 분포가 정규 분포(또는 대략 정규 분포)인지 확인해야 합니다. 이를 위해 사전 점수와 사후 점수의 차이로 정의된 새 벡터를 만들고 이 값 벡터의 정규성에 대한 Shapiro-Wilk 테스트를 수행할 수 있습니다.

 #define new vector for difference between post and pre scores
differences <- with(data, score[group == "post"] - score[group == "pre"])

#perform shapiro-wilk test for normality on this vector of values
shapiro.test(differences)

# Shapiro-Wilk normality test
#
#data: differences
#W = 0.92307, p-value = 0.1135
#

검정의 p-값은 0.1135로 알파 = 0.05보다 큽니다. 따라서 우리는 데이터가 정규 분포를 따른다는 귀무가설을 기각하지 못합니다. 이는 이제 paired t-test를 진행할 수 있음을 의미합니다.

다음 코드를 사용하여 paired t-test를 수행할 수 있습니다.

 t.test (score~group, data = data, paired = TRUE)

# Paired t-test
#
#data: score by group
#t = 1.588, df = 19, p-value = 0.1288
#alternative hypothesis: true difference in means is not equal to 0
#95 percent confidence interval:
# -0.6837307 4.9837307
#sample estimates:
#mean of the differences 
#2.15 

결과에서 우리는 다음을 볼 수 있습니다:

  • t- 검정 통계량은 1.588 입니다.
  • 자유도(df)가 19인 이 검정 통계량의 p-값은 0.1288 입니다.
  • 평균 차이에 대한 95% 신뢰 구간은 (-0.6837, 4.9837) 입니다.
  • 프리그룹과 포스트그룹의 점수 차이는 평균 2.15 이다.

따라서 p-값이 유의 수준인 0.05보다 낮기 때문에 두 그룹이 통계적으로 유의한 평균을 가지고 있다는 귀무 가설을 기각할 수 없습니다.

즉, 사전 그룹과 사후 그룹 간의 평균 점수가 통계적으로 다르다고 말할 수 있는 충분한 증거가 없습니다. 이는 커리큘럼이 시험 점수에 큰 영향을 미치지 않는다는 것을 의미합니다.

또한 95% 신뢰 구간은 두 그룹 간의 실제 평균 차이가 -0.68374.9837 사이에 있다는 것을 “95% 확신”한다는 것을 나타냅니다.

이 신뢰 구간 내에 값 0이 포함되어 있으므로 이는 실제로 0이 평균 점수 간의 실제 차이일 수 있음을 의미하며, 이것이 바로 이 경우 귀무 가설을 기각하지 못한 이유입니다.

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다