카테고리 없음

데이터분석하기 범주형과 범주형, 숫자와 범주 일때.

yumin630 2024. 10. 1. 01:50

범주형 두개의 데이터를 분석하는 방법을 알아보는 방법을 알아보자~

 

예를들어, 성별에따른 퇴사 여부 , 혈액형별 mbti i형인지 e 형인지 등... 

 

 

첫번째 교차표로 집계하기

 

교차표 시각화 코드

#첫번째가 행, 두번째가 열
pd.crosstab(data[target], data[feature])

#normalize = columns 로 하면 컬럼별 퍼센트를 구해준다
pd.crosstab(data[target], data[feature], normalize = 'columns')

 

 

교차표(normalize 적용 X)

이런식으로 출력된다.

 

 

 

교차표로 부터 모자이크 플롯으로 시각화 하기

 

모자이크 플롯은 범주별로 양과 비율을 나타낸다. 

mosaic(titanic, [ 'Pclass','Survived'])
plt.axhline(1- titanic['Survived'].mean(),
color = 'r')
plt.show()

 

 

 

이런식으로 표현된다.

 

해석방법은 빨간선은 전체 평균을 나타내고, x축은 Pclass의 비율을 나타내고

y축은 Survived 비율을 나타낸다.

 

코드에서

평균을 나타내는 선인 빨간 선을표시하기 위해 1- titanic['Survived'].mean() 이 부분에 1을 빼는 이유는

1이 생존, 0 이 사망을 나타내는 데이터에서 생존에 대한 평균을 구했는데, 모자이크 플롯 y 축을 보면 사망인 0 이 밑에 있다. 그래서 사망률을 기준으로 표시해야하기 때문에 전체 (1) 에서 뺀 것이다.

 

 

 

카이제곱검정으로 수치화 하기

 

# 1) 먼저 교차표 집계
table = pd.crosstab(titanic['Survived’],
titanic['Pclass'])
print(table)
print('-' * 50)
# 2) 카이제곱검정
spst.chi2_contingency(table)