범주형 데이터: 분석과 시각화

SAS 사용자를 위한 R

Melinda Higgins, PhD

Research Professor/Senior Biostatistician Emory University

범주 통합하기

# Use table() inside with() for bmicat
daviskeep %>% with(table(bmicat))
bmicat
1. underwt/norm       2. overwt        3. obese
            161              35               3

재코딩 변수 bmigt25 추가

# 범주형 변수 bmigt25 추가
daviskeep <- daviskeep %>%
  mutate(bmigt25 = ifelse(bmi > 25,
                          "2. overwt/obese",
                          "1. underwt/norm"))

# bmigt25 범주 빈도 확인
daviskeep %>% with(table(bmigt25))
bmigt25
1. underwt/norm 2. overwt/obese
            161              38
SAS 사용자를 위한 R

분할표: SAS와 R

SAS proc freq, R table 함수, gmodels 패키지 CrossTable

SAS 사용자를 위한 R

카이제곱 검정: SAS와 R

SAS proc freq와 R의 chisq.test, gmodels CrossTable 옵션

SAS 사용자를 위한 R

분할표와 카이제곱 검정

# Save table output of bmigt25 by sex
tablebmisex <- daviskeep %>%
  with(table(bmigt25, sex))
tablebmisex
# Use table object to run chisq.test
chisq.test(tablebmisex)
                 sex
bmigt25             F   M
  1. underwt/norm 107  54
  2. overwt/obese   4  34
Yates 연속성 보정을 적용한 피어슨 카이제곱 검정
data:  tablebmisex

X-squared = 36.759, df = 1, p-value = 1.336e-09
SAS 사용자를 위한 R

gmodels 패키지로 카이제곱 검정

# Load gmodel package
library(gmodels)
# Run gmodels::CrossTabs, show column %s and expected values
daviskeep %>%
  with(gmodels::CrossTable(bmigt25, sex,
                           chisq = TRUE,
                           prop.r = FALSE,
                           prop.t = FALSE,
                           prop.chisq = FALSE,
                           expected = TRUE))
SAS 사용자를 위한 R

CrossTable 출력 - 1부

   셀 내용
|-------------------------|
|                       N |
|              기대 빈도 N |
|           N / 열 합계 |
|-------------------------|

표의 전체 관측치:  199
                | sex
        bmigt25 |         F |         M | 행 합계 |
----------------|-----------|-----------|-----------|
1. underwt/norm |       107 |        54 |       161 |
                |    89.804 |    71.196 |           |
                |     0.964 |     0.614 |           |
----------------|-----------|-----------|-----------|
2. overwt/obese |         4 |        34 |        38 |
                |    21.196 |    16.804 |           |
                |     0.036 |     0.386 |           |
----------------|-----------|-----------|-----------|
   열 합계 |       111 |        88 |       199 |
                |     0.558 |     0.442 |           |
----------------|-----------|-----------|-----------|
SAS 사용자를 위한 R

CrossTable 출력 - 2부

gmodels::CrossTable() 출력 - 계속...

 

모든 요인에 대한 통계

피어슨 카이제곱 검정
------------------------------------------------------------
Chi^2 =  38.99402     d.f. =  1     p =  4.251066e-10

연속성 보정(Yates) 적용 피어슨 카이제곱 검정
------------------------------------------------------------
Chi^2 =  36.75936     d.f. =  1     p =  1.336475e-09
SAS 사용자를 위한 R

SAS와 R의 모자이크 플롯

SAS tables 구문의 freqplot 옵션과 R mosaicplot 함수

SAS 사용자를 위한 R

2원 범주 비율의 모자이크 플롯

 

# 성별별 bmigt25 모자이크 플롯mosaicplot(bmigt25 ~ sex,
           data = daviskeep,
           color = c("light blue",
                     "dark grey"),
           main =
             "BMI Categories by Sex")

daviskeep 데이터셋의 bmigt25와 성별 모자이크 플롯

SAS 사용자를 위한 R

전복 데이터의 범주 연관을 살펴봅시다!

SAS 사용자를 위한 R

Preparing Video For Download...