1. 이변량분석 : 범주 -> 숫자
1.1 범주 vs 숫자 비교
- 평균 비교 : barplot
- 범주가 2개 : 두 평균의 차이 비교
- 범주가 3개 이상 : 전체 평균과 각 범주의 평균 비교
1.2 시각화
- sns.barplot() : 평균비교
- 신뢰구간(오차범위)
- 평균값이 얼마나 믿을만한가?
- 좁을수록 믿을만하다
- 데이터가 많을수록, 편차가 적을수록 신뢰구간은 좁아짐
- 두 평균에 차이가 크고 신괴 구간은 겹치지 않을때, 대립가설이 맞다고 볼 수 있음
눈으로 겹치는 부분을 보고 판단하기 어려운 경우 - 가설검증으로 해결
1.3 수치화
#교차표
pd.crosstab(df['Survived'],df['Sex'])
pd.crosstab(titanic[’Survived’],titanic[’Sex’],normalize=’’)
pd.crosstab(titanic[’Survived’],titanic[’Sex’],normalize=’’)
- normalize 옵션 : 비율로 변환
- columns: 열 기준 100%
- index: 행 기준 100%
- all : 전체 기준 100%
2.2 시각화 - 모자이크 플롯
- mosaic plot : 범주별 양과 비율 나타냄
- 빨간선은 전체 평균
- 두 범주형 변수가 아무런 상관이 없다면
- 조금이라도 관련이 잇다면,비율 혹은 bar의 크기에 조금이라도 차이가 남
- 전체 평균 기준선을 기준으로 많이 차이가 나면 관련이 깊음
2.3 수치화 - 카이제곱검정
- 기대빈수 : 아무련 관련이 없을때 나올 수 있는 빈도수
- 실제 데이터 관련된 값
카이제곱 통계량
- 클수록 기대빈도로부터 실제 값에 차이가 크다는 의미
- 범주의 수가 늘어날수록 값은 커지게 되었음
- 자유도의 약 2배도다 크면, 차이가 있다고 봄
범주형 변수의 자유도
카이제곱 검정에서 자유도 계산
카이제곱 변수
- 먼저 crosstab으로 집계
- normalize 옵션을 사용하면 안됨!!
- 카이제곱 검정 수행
# 먼저 교차표 집계
table=pd.crosstab(titanic['Survived'],titanic['Pclass'])
print(table)
# 카이제곱검정
spst.chi2_contingency(table)
결과
- 카이제곱 통계량
- p-value
- 자유도
- 기대빈도:계산된 값
3. 이변량분석 숫자 → 범주
sns.kdeplot()
- common_norm=False : 생존자, 사망자 각각 kde plot
- multiple-’fill’ 모든 구간에 대한 100% 비율로 kpe 그리기
- 겹치는 부분이 많은 수록 관련이 없다