통계기반 데이터분석

[ R ] 교차분석

yul_S2 2022. 11. 24. 09:28
반응형

교차분석과 카이제곱 검정

  • 교차분석: 두 개 이상의 범주형 변수를 대상으로 교차분할표를 작성하고, 이를 통해서 변수 상호 간의 관련성 여부를 분석 특히 빈도분석 결과에 대한 보충자료를 제시하는데 효과적
  • 카이제곱 검정: 교차분석으로 얻어진 교차분할표를 대상으로 유의확률을 적용하여 변수 간의 독립성 및 관련성 여부 등을 검정하는 분석 방법

 

교차분석

교차검정(Cross Table Analyze): 범주형 자료(명목/서열 척도)를 대상으로 두 개 이상의 변수들에 대한 관련성을 알아보기 위해서 결합분포를 나타내는 교차분할표를 작성하고 이를 통해서 변수 상호간의 관련성 여부를 분석하는 방법

 

 

(1) 데이터프레임 생성

연구 환경에서 변수(독립/종속 변수)를 확인하여 모델링한 후 범주형 데이터로 변환하는 변수 리코딩 과정을 거친다. 대상변수를 분할표로 작성하기 위해서는 데이터프레임을 생성해야 한다.

변수 모델링: 특정 객체를 대상으로 분석할 속성(변수)을 선택하여 속성 간의 관계를 설정하는 일련의 과정

ex)----------------------------------------------------------------------------------------------------------------------------------------------------------

smoke 객체에서 education과 smoking 속성을 분석대상으로 하여 교육수준(education)이 흡연율(smoking)과 관련성이 있는가를 모델링하는 하는 경우 ‘education → smoking’ 형태로 기술한다. 독립변수 → 종속변수

--------------------------------------------------------------------------------------------------------------------------------------------------------------

 

 

ex) 변수 리코딩과 데이터프레임 생성

cleanDescriptive.csv
0.01MB

 

 

#1 파일 가져오기

data <- read.csv("C:/cleanDescriptive.csv",header = TRUE)
head(data)
# resident gender age level cost type survey pass cost2 resident2 gender2   age2 level2 pass2
# 1        1      1  50     1  5.1    1      1    2     2    특별시    남자 장년층   고졸  실패
# 2        2      1  54     2  4.2    1      2    2     2    광역시    남자 장년층   대졸  실패
# 3       NA      1  62     2  4.7    1      1    1     2      <NA>    남자 노년층   대졸  합격
# 4        4      2  50    NA  3.5    1      4    1    NA    광역시    여자 장년층   <NA>  합격
# 5        5      1  51     1  5.0    1      3    1     2    시구군    남자 장년층   고졸  합격
# 6        3      1  55     2  5.4    1      3   NA     2    광역시    남자 장년층   대졸  <NA>

 

 

#2 변수리코딩

x <- data$level2
y <- data$pass2

 

교차분할표 작성을 위해 데이터프레임 생성 방법

data.frame(컬럼명 = x, 컬럼명 = y)

x, y: 명목척도 변수

 

#3 데이터프레임 생성

result <- data.frame(Level = x, Pass = y)
dim(result)
# [1] 248   2

 

 

 

 

(2) 교차분석

교차분할표를 통해서 범주형 변수의 관계를 분석하는 방법으로 이전에 작성한 데이터프레임을 이용하여 교차분석을 수행한다.

 

ex) 교차분할표 작성

#1 기본 함수를 이용한 교차분할표 작성

table(result)
#               Pass
# Level      실패 합격
# 고졸       40   49
# 대졸       27   55
# 대학원졸   23   31

 

#2 교차분할표 작성을 위한 패키지 설치

install.packages("gmodels")
library(gmodels)
install.packages("ggplot2")
library(ggplot2)

 

#3 패키지를 이용한 교차분할표 작성

CrossTable(x = diamonds$color, y = diamonds$cut)







For CrossTable() 함수

 

 

 

 

ex) 패키지를 이용한 교차분할표 작성: 부모의 학력 수준과 자녀 대학 진학 여부

## 변수모델: 학력수준(독립변수) → 진학 여부(종속변수)

x <- data$level2
y <- data$pass2

CrossTable(x,y)



결과에서

N: 관측치

Chi-square contribution: 기대비율  카이제곱 식(=∑(관측값 – 기대값) 2 / 기대값)에 의해 구해진 결과,

카이제곱 식에서 기대값은 (현재 셀의 행 합 X 현재 셀의 열 합) / 전체합) 수식으로 산출

 

예) 부모의 학력수준이 고졸이면서 자녀가 대학에 합격할 경우의 기대값: (89 x 135) / 225 = 53.4

기대비율: (49-53.4)2 / 53.4 = 0.3625

 

N/Row Total: 행비율

N/Column Total: 열 비율

N/Table Total: 셀 비율

 

맨 마지막 행에서

Column Total 90  전체 관측치

0.4  열비율

이렇게 계산된 기대비율 6개(교차분할표 6개 셀)의 총합과 자유도(df)라는 검정 통계량을 이용하여 두 변인 간의 관련성 여부를 검정하는 방법  카이제곱 검정

변수들에 대한 결합분포를 나타내는 교차분할표의 결과를 토대로 변수 간의 관련성을 다음과 같이 진술

 

 

 

교차분할표 해석

부모의 학력 수준에 따른 자녀의 대학 진학 여부를 설문 조사한 결과 부모의 학력 수준에 상관없이 대학진학 합격률이 평균 60.0%로 학력 수준별로 유사한 결과가 나타났다.

전체 응답자 225명을 대상으로 고졸 39.6%(89명) 중 55.1%가 진학에 성공하였고, 대졸 36.4%(82명) 중 68.4%가 성공했으며, 대학원졸은 24%(54명) 중 57.4%가 대학진학에 성공하였다. 특히 대졸 부모의 대학진학 합격률이 평균보다 조금 높고, 고졸 부모의 대학진학 합격률이 평균보다 조금 낮은 것으로 분석된다.

반응형