가설 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와 상관계수에대한 포스팅도 할 예정이다
기대해주세요~