Hailey's TIL
데이터 분석 및 의미 찾기 2 본문
1. Anova
<Chapter5. 이변량 분석: 범주 -> 범주 >
1.교차표(pd.crosstab)
범주 vs 범주 를 비교하고 분석하기 위해서는 먼저 교차표를 만들어야 함.
- pd.crosstab(행, 열)
pd.crosstab(titanic['Survived'], titanic['Sex'])
- pd.crosstab(행, 열, normalize = )
pd.crosstab(titanic['Survived'], titanic['Sex'], normalize = 'columns')
2. 시각화
1) Mosaic
- mosaic plot
- mosaic(dataframe, [ feature, target])
mosaic(titanic, [ 'Pclass','Survived'])
plt.axhline(1- titanic['Survived'].mean(), color = 'r')
plt.show()
① X축 길이는 각 객실등급별 승객비율을 나타낸다.
② 그 중 3등급 객실에 대해서 보면, y축의 길이는, 3등급 객실 승객 중에서 사망, 생존 비율을 의미한다.
2) 100% Stacked Bar
- 먼저 crosstab으로 집계 : pd.crosstab(feature, target, normalize = 'index')
- .plot.bar(stacked = true)
- 전체 평균선 : plt.axhline()
temp = pd.crosstab(titanic['Pclass'], titanic['Survived'], normalize = 'index')
print(temp)
temp.plot.bar(stacked=True)
plt.axhline(1-titanic['Survived'].mean(), color = 'r')
plt.show()
✔️ 비율만 비교하므로 양에 대한 비교는 할 수 없다!
3. 수치화
1) 카이제곱검정
- 카이제곱검정 : 범주형 변수들 사이에 어떤 관계가 있는지, 수치화 하는 방법
- 카이 제곱 통계량은
- 클수록 기대빈도로부터 실제 값에 차이가 크다는 의미.
- 계산식으로 볼 때, 범주의 수가 늘어날 수록 값은 커지게 되어 있음.
- 보통, 자유도의 2~3배 보다 크면, 차이가 있다고 본다.
- 기대빈도: 아무런 관련이 없을 때 나올 수 있는 빈도수
- 실제 데이터: 관측된 값들
- 범주형 변수의 자유도 : 범주의 수 - 1
- 카이제곱검정에서는
- x 변수의 자유도 × y 변수의 자유도
- 예 : Pclass --> Survived
- Pclass : 범주가 3개, Survived : 2개
- (3-1) * (2-1) = 2
- 그러므로, 2의 2 ~ 3배인 4 ~ 6 보다 카이제곱 통계량이 크면, 차이가 있다고 볼수 있음.
# 1) 먼저 교차표 집계
table = pd.crosstab(titanic['Survived'], titanic['Pclass'])
print(table)
print('-' * 50)
# 2) 카이제곱검정
spst.chi2_contingency(table)
<Chapter6. 이변량 분석: 범주 -> 범주>
1. 시각화
1) sns.kdeplot( )
- kdeplot에는 두가지 방법이 있다.
- ① kdeplot( , hue = 'Survived')
- 생존여부의 비율이 유지된 채로 그려짐
- 두 그래프의 아래 면적의 합이 1
- ② kdeplot( , hue = 'Survived', common_norm = False)
- 생존여부 각각 아래 면적의 합이 1인 그래프
- ③ kdeplot( , hue = 'Survived', multiple = 'fill')
- 나이에 따라 생존여부 비율을 비교해볼 수 있음. (양의 비교가 아닌 비율!)
- ① kdeplot( , hue = 'Survived')
- 그래프1 에서 생존자와 사망자 그래프가 만나는 부분 -> 다섯 군데
- 그래프 2의 빨간색은 전체 평균 생존율
- 겹치는 부분은 전체 평균과 같은 지점
- 약 15세 이하는 생존율이 전체 평균보다 높다.
- 20~30대는 생존율이 전체 평균보다 낮다.
- 60~70대는 대부분 사망.
[2주차 04]