[R데이터분석] 범주형 자료분석

근이의 개발일기·2024년 12월 9일
post-thumbnail

범주형 자료분석

범주형 자료 분석은 범주형 변수(명목형, 서열형 등) 간의 관계를 분석하는 과정입니다.

범주형 변수는 수치로 표현되지 않는 변수로, 예를 들어 "성별(남/여)" 또는 "합격/불합격" 등이 있습니다.


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())

0개의 댓글