R 프로그래밍에서 T-검정: 단일 표본 및 쌍대 표본 예제
⚡ 스마트 요약
R에서 t.test() 함수를 사용하여 평균을 비교하는 t-검정은 단일 표본과 고정된 목표값, 두 개의 독립적인 그룹, 그리고 쌍을 이루는 반복 측정값 등 다양한 경우를 포함합니다. 이 가이드에서는 각 변형을 실행하고, p-값을 정확하게 읽고, 기본 가정을 검증합니다.

통계적 추론이란 무엇입니까?
통계적 추론은 데이터 분포에 대한 결론을 도출하는 기술입니다. 데이터 과학자는 종종 과학적인 방법으로만 답을 찾을 수 있는 질문에 직면합니다. 따라서 통계적 추론은 가설이 참인지, 즉 데이터에 의해 검증되는지 여부를 확인하는 전략입니다.
가설을 평가하는 일반적인 전략은 두 평균이 같은지 여부를 알려주는 t-검정입니다. 이것은 또한 다음과 같이 알려져 있습니다. 학생 시험t-검정은 다음과 같은 경우에 계산할 수 있습니다.
- 고정된 값에 대한 단일 벡터 (단일 표본 t-검정)
- 서로 다른 두 그룹에서 추출한 두 개의 벡터 (독립 표본 t-검정)
- 동일한 피험자를 대상으로 측정한 두 벡터 (쌍체 t-검정)
모든 t-검정은 데이터가 무작위로 추출되었고 값(또는 쌍체 검정의 경우 차이)이 대략적으로 정규 분포를 따르는 모집단에서 추출되었다고 가정합니다. 독립 표본 t-검정은 두 그룹이 서로 독립적이라고 추가적으로 가정하며, 고전적인 t-검정은 두 그룹의 분산이 같다고 가정합니다.
R 프로그래밍에서 T-테스트란 무엇입니까?
T-검정의 기본 아이디어는 통계를 사용하여 두 가지 상반된 가설을 평가하는 것입니다.
- H0귀무가설은 모집단 평균이 검정 대상 값과 같다는 것입니다.
- H1대립가설은 모집단 평균이 해당 값과 다르다는 것입니다.
t-검정은 표본 크기가 작아 정규 근사가 신뢰할 수 없는 경우에 사용하도록 고안되었습니다. 이 검정을 위해서는 데이터가 대략적으로 정규 분포를 따른다는 가정이 필요합니다.
R의 T-테스트 구문
R의 t.test() 기본 구문은 다음과 같습니다.
t.test(x, y = NULL, mu = 0, var.equal = FALSE) arguments: - x : A vector to compute the one-sample t-test - y: A second vector to compute the two sample t-test - mu: Mean of the population under the null hypothesis - var.equal: Specify whether the variances of the two vectors are equal. By default, set to `FALSE` - paired: Set to `TRUE` when the two vectors are repeated measures on the same subjects
테스트를 실행하기 전에 데이터 레이아웃이 테스트의 올바른 변형에 맞는지 확인하십시오.
R에서 사용하는 T-검정 유형
잘못된 변형을 선택하는 것이 t-검정에서 가장 흔한 실수이므로, 먼저 데이터 레이아웃에 맞는 변형을 선택하는 것부터 시작하세요.
| 타입 | 사용할 때 사용하세요 | R 호출 |
|---|---|---|
| 단일 샘플 | 한 그룹은 알려진 목표값과 비교되었습니다. | t.test(x, mu = 값) |
| 독립적인 두 표본(웰치) | 두 개의 별개의 그룹, 분산은 다를 수 있음 | t.test(x, y) |
| 독립적인 두 표본(풀링) | 분산이 동일한 두 개의 별개의 그룹 | t.test(x, y, var.equal = TRUE) |
| 쌍을 이루어 | 동일한 피험자를 두 번 측정했습니다. | t.test(x, y, paired = TRUE) |
| 일방적 인 | 당신은 오직 한 방향의 차이에만 관심이 있군요. | t.test(x, mu = 값, alternative = "더 큼") |
그룹 수가 세 개를 넘어서면 t-검정은 더 이상 적절하지 않습니다. 다른 검정 방법으로 전환하세요. ANOVA 검정이는 반복적인 쌍대 비교를 통해 오류율을 높이는 대신 전체 오류율을 5%로 유지합니다.
R의 단일 표본 T-검정
단일 표본 t-검정 또는 학생 검정은 벡터의 평균을 이론적 평균과 비교합니다. . t-검정을 계산하는 데 사용되는 공식은 다음과 같습니다.
여기
평균을 말한다
이론적 평균으로
- s는 표준편차입니다.
- n 관측치 수.
t-검정의 통계적 유의성을 평가하려면 다음을 계산해야 합니다. P-값이. 그만큼 P-값이 범위는 0에서 1까지이며 다음과 같이 해석됩니다.
- p값이 0.05보다 작으면 귀무가설을 기각할 수 있습니다. 귀무가설을 기각하는 것이 가설 대립가설(H1)이 참임을 증명하는 것과 같은 의미는 아니며, 단지 데이터가 귀무가설 하에서 나타날 가능성이 낮다는 것을 의미합니다.
- p값이 0.05보다 크면 귀무가설을 기각할 충분한 증거가 없다는 것을 의미합니다.
자유도가 다음과 같은 학생 분포에서 해당 t-검정의 절대값을 보고 p-값을 구성할 수 있습니다.
예를 들어, 5개의 관측값이 있는 경우 t값을 자유도 4, 신뢰수준 95%인 스튜던트 분포와 비교합니다. 양측 검정에서 귀무가설을 기각하려면 t값의 절댓값이 2.776을 초과해야 합니다.
아래 표 참조:
R의 단일 샘플 T-검정 예
당신이 쿠키를 생산하는 회사라고 가정해 보세요. 각 쿠키에는 10g의 설탕이 들어 있다고 가정합니다. 쿠키는 모든 것을 섞기 전에 그릇에 설탕을 넣는 기계로 생산됩니다. 당신은 기계가 각 쿠키에 10g의 설탕을 추가하지 않는다고 생각합니다. 당신의 가정이 사실이라면 기계를 고쳐야 합니다. 쿠키 XNUMX개 분량의 설탕을 저장했습니다.
주의 사항: rnorm() 함수를 사용하여 무작위 벡터를 생성할 수 있습니다. 이 함수는 정규 분포 값을 생성합니다. 기본 구문은 다음과 같습니다.
rnorm(n, mean, sd) arguments - n: Number of observations to generate - mean: The mean of the distribution. Optional - sd: The standard deviation of the distribution. Optional
평균이 30이고 표준편차가 9.99인 0.04개의 관측값이 포함된 분포를 만들 수 있습니다.
set.seed(123) sugar_cookie <- rnorm(30, mean = 9.99, sd = 0.04) head(sugar_cookie)
출력:
## [1] 9.967581 9.980793 10.052348 9.992820 9.995172 10.058603
일표본 t-검정을 사용하여 설탕 함량이 레시피와 다른지 여부를 확인할 수 있습니다. 가설 검정을 그릴 수 있습니다.
- H0: 평균 당도는 10과 같습니다.
- H1: 평균 당도가 10과 다릅니다.
유의수준 0.05를 사용합니다.
# H0 : mu = 10 t.test(sugar_cookie, mu = 10)
출력은 다음과 같습니다.
단일표본 t-검정의 p값은 0.1079로 유의수준 0.05보다 큽니다. 평균에 대한 95% 신뢰구간은 9.973g에서 10.002g까지이며, 목표값인 10g을 포함합니다. 따라서 귀무가설(H0)을 기각할 수 없습니다. 기계가 레시피에서 벗어났다는 충분한 증거가 없습니다.
R을 이용한 독립 표본 t-검정
독립 표본 t-검정은 가장 자주 사용되는 변형으로, 두 측정값이 서로 다른 대상에서 나온 경우(예: 두 개의 상점, 두 개의 기계, 두 개의 치료군)에 적용됩니다.
한 공장에서 두 개의 생산 라인을 운영하고 있는데, 두 라인에서 병에 담는 내용물의 무게가 동일한지 알고 싶다고 가정해 봅시다.
set.seed(123) line_a <- rnorm(25, mean = 500, sd = 8) line_b <- rnorm(25, mean = 505, sd = 8) # Welch test, the safe default t.test(line_a, line_b) # Pooled test, only when the variances are equal t.test(line_a, line_b, var.equal = TRUE)
출력 결과를 네 단계로 읽어보세요.
- t 는 두 평균 사이의 간격의 표준화된 크기입니다. 부호는 벡터를 전달한 순서만을 반영합니다.
- df 는 자유도입니다. 웰치 검정은 소수 값을 산출하지만, 통합 검정은 n1 + n2 – 2와 같은 정수 값을 산출합니다.
- P-값이 실제 평균값이 동일할 경우 이처럼 큰 차이가 나타날 확률입니다.
- 신뢰 구간 실제 차이의 범위를 나타냅니다. 범위에 0이 포함되면 해당 수준에서 차이는 유의미하지 않습니다.
데이터가 값 열 하나와 요인 열 하나로 구성된 단일 데이터 프레임에 있는 경우, 가독성이 더 좋고 데이터를 수동으로 분할할 필요가 없는 수식 인터페이스를 사용하는 것이 좋습니다.
t.test(weight ~ line, data = jars)
어떤 버전을 사용해야 할까요? 분산이 동일함을 테스트하고 확인하기 전까지는 `var.equal`을 기본값인 `FALSE`로 유지하십시오. 분산이 일치할 경우 웰치의 보정은 전력 소모가 거의 없으며, 분산이 일치하지 않을 때 오류를 방지해 줍니다.
R의 쌍체 T-검정
대응표본 t-검정(종속표본 t-검정이라고도 함)은 동일한 집단을 두 번 측정할 때 적용됩니다. 일반적인 적용 사례는 다음과 같습니다.
- A / B 테스트: 두 가지 변형 비교
- 사례 대조 연구: 동일한 피험자에 대한 치료 전후
R의 쌍체 T-검정 예
음료 회사가 할인 프로그램의 매출 성과를 알고 싶어합니다. 이 회사는 프로그램이 홍보되는 매장 중 한 곳의 일일 매출을 추적하기로 했습니다. 프로그램이 끝날 때 이 회사는 프로그램 전과 후 매장의 평균 매출에 통계적 차이가 있는지 알고 싶어합니다.
- 회사 trac프로그램 시작 전에 매일 판매량을 확인했습니다. 이것이 우리의 첫 번째 벡터입니다.
- 이 프로그램은 1주일 동안 홍보되고 매일 매출이 기록됩니다. 이것이 우리의 두 번째 벡터입니다.
- 프로그램의 효율성을 판단하기 위해 t-테스트를 수행합니다. 두 벡터의 값이 동일한 분포(즉, 동일한 상점)에서 나오므로 이를 쌍체 t-검정이라고 합니다.
가설 검정은 다음과 같습니다.
- H0: 평균에는 차이가 없음
- H1: 두 가지 의미가 다릅니다.
고전적인 t-검정은 두 그룹의 분산이 알려지지 않았지만 동일하다고 가정한다는 점을 기억하세요. 실제 데이터는 이러한 가정을 정확히 만족하는 경우가 드물며, 차이를 무시하면 결과가 왜곡될 수 있습니다.
해결책은 등분산 가정을 완화하는 웰치의 t-검정입니다. R은 var.equal이 별도로 지정하지 않는 한 기본적으로 FALSE이므로 이 검정을 적용합니다. 이 데이터 세트에서는 두 벡터 모두 동일한 표준 편차로 생성되었으므로 var.equal을 TRUE로 설정해도 안전합니다.
프로그램 이후 판매 평균이 더 높은 가우스 분포에서 두 개의 무작위 벡터를 만듭니다.
set.seed(123) # sales before the program sales_before <- rnorm(7, mean = 50000, sd = 50) # sales after the program.This has higher mean sales_after <- rnorm(7, mean = 50075, sd = 50) # draw the distribution t.test(sales_before, sales_after,var.equal = TRUE)
p값은 0.04606으로 유의수준 0.05 바로 아래에 있으므로 귀무가설(H0)을 기각하고 두 평균값이 유의미하게 다르다고 결론짓습니다. 할인 프로그램이 매출 증가에 기여한 것으로 보입니다.
⚠️ 중요: 위의 호출은 두 벡터를 비교합니다. 독립 샘플입니다. 두 시리즈 모두 동일한 매장에 대한 측정값이므로 통계적으로 정확한 호출은 다음을 추가합니다. 쌍을 이룬 = 참:
t.test(sales_before, sales_after, paired = TRUE)
쌍을 이루는 형태의 검정은 두 평균의 차이가 아닌 일별 차이의 평균을 검정합니다. 이는 두 벡터가 공유하는 매장 수준의 변동을 제거하므로 통계적 검정력이 더 높습니다.
R에서 T-검정 가정을 확인하는 방법
t-검정의 p값은 가정이 충족될 때만 의미가 있습니다. 각 가정은 직접 확인할 수 있습니다.
1. 정상성. 단일 표본 검정과 두 표본 검정은 값들이 대략 정규 분포를 따른다고 가정합니다. 쌍체 검정은 다음과 같은 가정을 합니다. 차이 그렇습니다. QQ 플롯을 검사하고 샤피로-윌크 검정으로 확인하십시오.
qqnorm(sugar_cookie); qqline(sugar_cookie)
shapiro.test(sugar_cookie)
# for a paired design, test the differences
shapiro.test(sales_after - sales_before)
샤피로-윌크 p값이 0.05보다 크면 정규성 가설을 기각할 수 없습니다. 그룹당 관측치가 30개 이상인 경우, 중심극한정리에 따라 t-검정은 적당한 왜곡에 대해 강건한 결과를 보입니다.
2. 등분산. 이는 통합된 두 표본 검정에만 필요합니다. F 검정을 사용하여 테스트하십시오.
var.test(line_a, line_b)
p값이 0.05보다 크면 등분산성을 지지하는 것이므로 var.equal = TRUE로 설정하는 것이 타당합니다.
3. 독립. 이는 연구 설계에서 비롯된 것이므로 사후 검증이 불가능합니다. 동일한 피험자가 두 벡터 모두에 영향을 미치는 경우, 독립성 검정은 적절하지 않으며 쌍을 이루는 것이 중요합니다.
가정이 틀렸을 때. 표본 크기가 작고 정규분포를 따르지 않는 데이터의 경우, 순위 기반 검정을 사용하세요. `wilcox.test(x, y)`는 두 표본 t-검정을 대체하고, `wilcox.test(x, y, paired = TRUE)`는 대응표본 t-검정을 대체합니다. 두 검정 모두 정규성 가정을 요구하지 않지만, 데이터가 실제로 정규분포를 따르는 경우 검정력이 약간 감소합니다.
R을 이용한 T-검정: 핵심 요점 및 테스트 참조
- 통계적 추론은 데이터 분포에 대한 결론을 생성하는 기술입니다.
- T-테스트는 추론 통계의 한 종류입니다. 일반적으로 두 그룹의 평균 사이에 통계적 차이가 있는지 알아내는 데 사용됩니다.
- 단일 표본 t-검정 또는 스튜던트 t-검정은 벡터의 평균을 이론적 평균과 비교합니다.
- 쌍체 t-검정 또는 종속 표본 t-검정은 동일한 집단을 두 번 측정할 때 적용됩니다.
아래 표는 위에 설명된 각 테스트를 요약한 것입니다.
| Test | 테스트할 가설 | P-값이 | Code | 선택적 인수 |
|---|---|---|---|---|
| 일표본 t-검정 | 벡터의 평균이 이론적인 평균과 다릅니다. | 0.05 |
t.test(x, mu = mean)
|
|
| 대응표본 t-검정 | 동일한 피험자에 대해 평균 A는 평균 B와 다릅니다. | 0.05 |
t.test(A, B, paired = TRUE) |
var.equal = TRUE
|
독립적인 두 표본 검정에서 등분산을 가정할 의향이 있다면 `var.equal = TRUE`로 설정하십시오. 더 안전한 웰치 보정을 실행하려면 기본값인 `FALSE`를 그대로 두십시오.




