일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 자기개발
- 데이터다듬기
- 구조
- deeplearning
- 데이터프레임
- 파이썬기초
- 정보화
- 미니프로젝트
- 교육
- 데이터분석
- 딥러닝
- KT에이블스쿨
- It
- DX컨설턴트
- 데이터분석가
- 프로젝트
- 인프라
- 오답노트
- MachineLearning
- 파이썬
- 데이터다루기
- 데이터분석기초
- KT에이블스쿨5기
- 넘파이
- 아키텍처
- 판다스
- 머신러닝
- 짧은생각
- IT인프라
- 데이터
- Today
- Total
꾸준히 성장하기
[D+24] 교육 | 이변량 분석의 핵심: 수치-수치 & 범주-수치 간 관계 본문
오늘의 주제는 이변량 분석에서 매우 중요한 두 가지 유형의 관계, 즉 수치(x)-수치(y) 간의 관계와 범주(x)-수치(y) 간의 관계에 관한 내용입니다.
이 두 관계를 이해하는 것은 데이터 분석에서 필수적인 부분이며, 여러분의 DX 컨설턴트로서의 역량을 높이는 데 큰 도움이 될 것입니다.
1. 수치(x)→수치(y) 간의 관계 "직선"
1) 시각화: 산점도
산점도는 두 수치형 변수 사이의 관계를 시각적으로 파악하는 데 매우 유용합니다.
데이터 포인트가 직선에 가까이 모여 있으면 강한 선형 관계를 나타내며, 흩어져 있으면 두 변수 사이에 관계가 없음을 의미합니다.
수치 → 수치 이변량 분석 함수 코드
def eda_2_nn(data, feature, target):
# Scatter plot
temp = data.loc[data[feature].notnull()]
sns.scatterplot(x=feature, y=target, data=temp)
plt.grid()
plt.show()
# Pearson correlation coefficient
result = spst.pearsonr(temp[feature], temp[target])
print(f'Correlation coefficient: {result[0]}, P-value: {result[1]}')
tax(제산세율) → medv(집값) 산점도
eda_2_nn(boston, 'tax', 'medv')
tax(제산세율) → medv(집값) 산점도와 단변량
sns.jointplot(x='tax', y='medv', data=boston)
plt.show()
2) 수치화: 상관계수 및 상관분석
상관계수(r)는 -1부터 1까지의 값을 가지며, 이는 두 변수 사이의 선형 관계의 강도와 방향을 나타냅니다.
r 값이 1에 가까우면 강한 양의 선형 관계를, -1에 가까우면 강한 음의 선형 관계를 의미합니다.
상관분석에서 p-value는 상관계수가 통계적으로 유의미한지를 검정합니다.
p-value가 0.05 미만이면 두 변수 사이에 유의미한 관계가 있다고 볼 수 있습니다.
수치 → 수치 수치화 분석
result = spst.pearsonr(boston['tax'], boston['medv']) print(result)
2. 범주(x)→수치(y) 간의 관계 "평균비교"
1) 시각화: bar plot (평균비교)
범주-수치 간의 관계를 시각화하는 방법 중 하나는 바 플롯을 사용하는 것입니다.
바 플롯은 각 범주별 평균값을 막대로 나타내며, 검은 세로 선은 신뢰구간을 나타내어 평균값의 정확도를 제공합니다.
이를 통해 여러 범주 간의 평균값을 비교하여 차이를 쉽게 파악할 수 있습니다.
범주 → 수치 이변량 분석 함수 코드(0: 사망, 1: 생존)
sns.barplot(x="Survived", y="Age", data=titanic)
plt.grid()
plt.show()
2-1) 두 집단일 때, 수치화: t-test
t-test를 사용하여 두 집단의 평균 차이가 통계적으로 유의미한지 검정합니다.
t 통계량이 -2보다 작거나 2보다 크면 두 집단 사이에 유의미한 차이가 있음을 의미합니다.
t 통계량 < -2 또는 t 통계량 > 2 = 차이가 있다 = 내 의견 = 대립 가설
범주 → 수치 t-test
# NaN 행 제외
temp = titanic.loc[titanic['Age'].notnull()]
# 두 그룹으로 데이터 저장
died = temp.loc[temp['Survived'] == 0, 'Age']
survived = temp.loc[temp['Survived'] == 1, 'Age']
# t-test
spst.ttest_ind(died, survived)
2-2) 세 집단일 때, 수치화: ANOVA(분산분석)
ANOVA(분산분석)를 사용하여 세 개 이상의 집단 평균 사이에 차이가 있는지 검정합니다.
F 통계량은 집단 간 분산과 집단 내 분산의 비율로 계산되며, 이 값이 클수록 집단 간에 유의미한 차이가 있음을 의미합니다.
분산은 제곱을 한 후의 값이기에 음수 값이 나올 수 없습니다.
F 통계량 = 집단 간 분산 / 집단 내 분산
집단 간 분산 > 집단 내 분산 = F통계량 값이 크다 = 집단 내 값들이 오밀조밀 = 신뢰도가 높다 = 대립 가설 = 차이가 있다
범주 → 수치 ANOVA
# NaN 행 제외
temp = titanic.loc[titanic['Fare'].notnull()]
# 세 그룹으로 데이터 저장
E_1 = temp.loc[temp.Embarked == 'S', 'Fare']
E_2 = temp.loc[temp.Embarked == 'C', 'Fare']
E_3 = temp.loc[temp.Embarked == 'Q', 'Fare']
# ANOVA
result = spst.f_oneway(E_1, E_2, E_3)
이러한 분석 방법을 이해하고 적용하는 것은 데이터를 해석하고 인사이트를 도출하는 데 있어 매우 중요합니다.
오늘 다룬 내용을 잘 이해하고 실습에 적극적으로 참여하는 것을 추천드립니다🌟
'KT 에이블스쿨 5기 > 교육' 카테고리의 다른 글
[D+27] 교육 | 데이터 크롤링의 기본과 접근 방법(정적 페이지 크롤링) (0) | 2024.03.18 |
---|---|
[D+26] 교육 | 이변량 분석의 핵심: 수치-범주 & 범주-범주 간 관계 (0) | 2024.03.17 |
[D+22] 교육 | 개별 변수 분석, 단변량 분석 (0) | 2024.03.13 |
[D+21] 교육 | 범주형 자료와 수치형 자료 (1) | 2024.03.12 |
[D+20] 교육 | CRISP-DM 방법론 (0) | 2024.03.11 |