카테고리 없음

데이터 분석방법 - 범주형 -> 연속형 일때

yumin630 2024. 9. 28. 02:50

 

가설 x-> y 일때 x:범주형, y:연속형 이면 시각화 방법은 평균비교 barplot, 수치화는 T검정과 분산분석 방법을 사용해서 분석한다.

 

 

# barplot 그리기
# data에 데이터프레임 이름
sns.barplot(x="Survived", y="Age", data=titanic)
plt.grid()
plt.show()

 

 

 

이런 형태로 출력된다. 가운데 까만 선은 95% 신뢰구간을 나타내고, 그래프는 평균을 나타낸다.

0~30 까지의 나이만 있다는 그래프가아니라 30즘의 나이가 평균이라고 나타낸다.

즉, 신뢰구간(까만선)은 짧고 겹치지 않을수록, 평균의 차이가 클수록 대립 가설이 맞다고 해석한다. 

 

 

 

 

boxplot으로 볼수도 있지만 대부분 많이 쓰진 않는다.

sns.boxplot(x='Survived', y = 'Age', data = titanic)
plt.show()

 

 

이런 형태로 출력된다.

 

 

 

수치화 방법 

수치화는 집단이 2개일때와 3개 이상일때로 나뉘는데, 2개일때는 t-test, 3개 일상일땐 anova(분산분석)을 이용한다.

 

먼저 t-test는 두 그룹간의 평균을 비교하는 방법이다.

 

# 먼저 NaN이 있는지 확인해 봅시다.
titanic.isna().sum()
# 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)

 

 

t-test를 위한 코드이다. null값이 있으면 안된다. 

 

이 통계량이 유의미한지 알기위해

 

• p-value가 0.05보다 작으면 차이가 있다.

• t 통계량이 -2보다 작거나, 2보다 크면, 차이가 있다. 

 

 

ANOVA

  • 분산 분석 ANalysis Of VAriance
    • (집단 간 분산)/(집단 내 분산) = (전체 평균 − 각 집단 평균)/(각 집단의 평균 − 개별 값)
    • 값이 대략 2~3 이상이면 차이가 있다고 판단합니다.

 

# 1) 분산 분석을 위한 데이터 만들기
# NaN 행 제외
temp = titanic.loc[titanic['Age'].notnull()]
# 그룹별 저장
P_1 = temp.loc[temp.Pclass == 1, 'Age']
P_2 = temp.loc[temp.Pclass == 2, 'Age']
P_3 = temp.loc[temp.Pclass == 3, 'Age']

#anova
spst.f_oneway(P_1, P_2, P_3)

 

 

p-value와 상관계수에대한 포스팅도 할 예정이다

 

기대해주세요~