오답노트
[데이터 분석] 이변량 분석 - 수치 데이터와 범주 데이터 본문
시각화
시각화는 히스토그램과 밀도함수 그래프 각각 할 수 있다.
이 때는 범주별로 겹쳐서 출력 후 비교한다.
밀도함수 그래프
sns.kdeplot(x='Age', data = titanic, hue ='Survived', common_norm = False)
plt.show()
hue 옵션으로 범주를 설정해줘야 한다.
그리고 common_norm 옵션을 False로 해야 정확한 결과를 얻을 수 있다.
common_norm이 True면 두 면적의 합이 1이 되게 한다. False를 입력하면 각 면적이 1이 되도록 출력한다.
표 해석은 다음과 같이 할 수 있다.
0세 부터 20세까지는 산 사람이 많고
약 30세부터 40세까지는 죽은 사람이 많다.
40세부터 60세까지는 산 사람이 조금 많고
60세부터 80세까지는 죽은 사람이 조금 많다.
이렇게 구간별 해석도 가능하다.
sns.kdeplot(x='Age', data = titanic, hue ='Survived', multiple = 'fill')
plt.show()
multiple 옵션에 fill을 입력하면 색이 찬 그래프로 출력되는데, 비율을 비교하는데 용이하다.
히스토그램
sns.histplot(x='Age', data = titanic, hue = 'Survived')
plt.show()
hue 옵션으로 범주를 설정해줘야 한다.
kdeplot 과 마찬가지로 multiple 옵션에 fill을 입력해서 출력할 수 있다.
sns.histplot(x='Age', data = titanic, bins = 16
, hue ='Survived', multiple = 'fill')
plt.show()
수치화
수치 데이터 와 범주 데이터에 대해 가설검정을 위한 도구가 없다.
대신 로지스틱 회귀 모델로 부터 p 값을 구할 수 있다.
import statsmodels.api as sm
sm.Logit(타겟시리즈, 변수시리즈).fit()
model = sm.Logit(titanic['Survived'], titanic['Age'])
result = model.fit()
print(result.pvalues)
'''
Optimization terminated successfully.
Current function value: 0.661967
Iterations 4
Age 3.932980e-13
dtype: float64
'''
3.932980e-13 가 p 값이다. 0.0125 보다 작으므로 상관관계가 있다고 볼 수 있다.
'Python > 데이터 분석' 카테고리의 다른 글
[데이터 분석] 이변량 분석 - 총 정리 (0) | 2022.08.12 |
---|---|
[데이터 분석] 이변량 분석 - 범주 데이터와 범주 데이터 (0) | 2022.08.12 |
[데이터 분석] 이변량 분석 - 범주 데이터와 수치 데이터 (0) | 2022.08.12 |
[데이터 분석] 이변량 분석 - 수치 데이터와 수치 데이터 2 (0) | 2022.08.11 |
[데이터 분석] 이변량 분석 - 수치 데이터와 수치 데이터 1 (0) | 2022.08.11 |