범주형 자료분석
범주형 자료 분석은 범주형 변수(명목형, 서열형 등) 간의 관계를 분석하는 과정입니다.
범주형 변수는 수치로 표현되지 않는 변수로, 예를 들어 "성별(남/여)" 또는 "합격/불합격" 등이 있습니다.
1️⃣ Chi-square test (카이제곱 검정)
Chi-square test의 목적
- 두 개 이상의 범주형 변수 간의 독립성을 검정.
- 교차표(Contingency Table)에서 기대빈도와 관측빈도 간의 차이를 바탕으로 검정 수행.
Chi-square test의 가설
- H0H_0: 두 범주형 변수는 독립적이다 (관계가 없다).
- H1H_1: 두 범주형 변수는 독립적이지 않다 (관계가 있다).
Chi-square test의 검정 조건
- 모든 기대 빈도가 5 이상이어야 함.
- 교차표에 비해 데이터의 관찰 빈도가 충분히 많아야 함.
R 코드 예시
# 교차표 생성
data <- matrix(c(10, 20, 30, 40), nrow = 2)
rownames(data) <- c("Group1", "Group2")
colnames(data) <- c("Yes", "No")
# 카이제곱 검정 수행
chi_square_result <- chisq.test(data)
print(chi_square_result)
출력 해석
X-squared = 0.8333, df = 1, p-value = 0.3616
- p-value > 0.05: 귀무가설을 기각하지 않음.
- 결론: 두 범주형 변수는 독립적이라고 볼 수 있음.
2️⃣ Fisher’s exact test (피셔의 정확 검정)
Fisher’s exact test의 목적
- 2x2 교차표에서 두 범주형 변수 간의 독립성을 검정.
- 교차표의 기대빈도가 5 미만일 때 카이제곱 검정 대신 사용.
Fisher’s exact test의 가설
- H0H_0: 두 변수는 독립적이다.
- H1H_1: 두 변수는 독립적이지 않다.
Fisher’s exact test의 검정 조건
- 표본의 크기가 작을 때 사용.
- 특히, 교차표의 기대 빈도가 5 미만인 경우에 적합.
R 코드 예시
# 교차표 생성 (2x2 교차표)
data <- matrix(c(1, 9, 5, 3), nrow = 2)
# 피셔의 정확 검정 수행
fisher_result <- fisher.test(data)
print(fisher_result)
출력 해석
p-value = 0.03456
- p-value < 0.05: 귀무가설을 기각함.
- 결론: 두 범주형 변수는 독립적이지 않다고 볼 수 있음.
3️⃣ McNemar’s test (맥니마 검정)
McNemar’s test의 목적
- 반복 측정된 범주형 자료의 변화를 분석.
- 이전과 이후의 변화를 검정.
McNemar’s test의 가설
- H0H_0: 두 범주형 변수가 동일하다 (변화가 없다).
- H1H_1: 두 범주형 변수가 동일하지 않다 (변화가 있다).
McNemar’s test의 검정 조건
- 대칭적인 2x2 교차표에 대해 사용.
- 반복 측정된 데이터여야 함.
R 코드 예시
# 교차표 생성
data <- matrix(c(30, 10, 20, 40), nrow = 2)
# 맥니마 검정 수행
mcnemar_result <- mcnemar.test(data)
print(mcnemar_result)
출력 해석
McNemar's chi-squared = 4, df = 1, p-value = 0.0455
- p-value < 0.05: 귀무가설을 기각함.
- 결론: 두 범주형 변수가 다르다 (변화가 있다)고 볼 수 있음.
4️⃣ Kappa for agreement (카파 계수)
Kappa for agreement의 목적
- 관찰자 간의 일치도를 측정.
- 예를 들어, 두 명의 평가자가 동일한 판단을 내리는지를 평가함.
Kappa for agreement의 가설
- H0H_0: 판정자 간의 일치도는 0이다.
- H1H_1: 판정자 간의 일치도는 0이 아니다.
R 코드 예시
# 교차표 생성
data <- matrix(c(50, 10, 20, 70), nrow = 2)
# 카파 계수 계산 (irr 패키지 필요)
install.packages("irr")
library(irr)
kappa_result <- kappa2(data)
print(kappa_result)
출력 해석
- kappa 값이 0.75 이상이면 높은 일치도로 평가.
- kappa 값의 해석 기준:
- 0.0 ~ 0.2: 매우 낮음
- 0.21 ~ 0.4: 낮음
- 0.41 ~ 0.6: 중간
- 0.61 ~ 0.8: 높음
- 0.81 ~ 1.0: 매우 높음
5️⃣ Logistic regression (로지스틱 회귀)
Logistic regression의 목적
- 범주형 종속변수(이항형)와 연속형 또는 범주형 독립변수 간의 관계를 분석.
- 종속변수 Y가 0 또는 1로 나뉘는 경우에 사용.
Logistic regression의 가설
- H0H_0: 독립변수가 종속변수에 영향을 미치지 않는다 () β=0\beta = 0
- H1H_1: 독립변수가 종속변수에 영향을 미친다 () β≠0\beta \neq 0
로지스틱 회귀모형
P(Y=1)=11+e−(β0+β1X)P(Y=1) = \frac{1}{1 + e^{-(\beta_0 + \beta_1X)}}
- P(Y=1)P(Y=1): Y가 1일 확률
- β0\beta_0: 절편
- β1\beta_1: 회귀계수
R 코드 예시
# 데이터 생성
set.seed(123)
x <- rnorm(100)
y <- ifelse(x + rnorm(100) > 0, 1, 0)
data <- data.frame(x = x, y = as.factor(y))
# 로지스틱 회귀모형 생성
logistic_model <- glm(y ~ x, family = binomial(), data = data)
summary(logistic_model)
출력 해석
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.1138 0.2125 -0.536 0.591
x 1.0205 0.2201 4.637 3.52e-06 ***
- p-value < 0.05: 귀무가설을 기각.
- 결론: 독립변수 x가 종속변수 y에 유의미한 영향을 미친다고 볼 수 있음.
요약
| 분석 방법 | 목적 | R 함수 |
|---|
| 카이제곱 검정 | 범주형 변수의 독립성 검정 | chisq.test() |
| 피셔의 정확 검정 | 2x2 교차표에서 독립성 검정 | fisher.test() |
| 맥니마 검정 | 반복 측정된 범주형 자료의 차이 검정 | mcnemar.test() |
| 카파 계수 | 관찰자 간의 일치도 검정 | kappa2() |
| 로지스틱 회귀 | 범주형 종속변수와 독립변수의 관계 | glm(family = binomial()) |