지난 강의에 이어서 seaborn으로 시각화를 진행하였다.
sns.boxplot(data=df, x="신장(5Cm단위)", y="체중(5Kg 단위)", hue='음주여부')
sns.violinplot(data = df, x="신장(5Cm단위)", y="체중(5Kg 단위)", hue="음주여부", split =True)
sns.swarmplot(data=df_sample, x = "신장(5Cm단위)", y = "체중(5Kg 단위)", hue='음주여부')
sns.lmplot(data = df_sample, x="연령대코드 (5세 단위)", y='혈색소', hue = "음주여부", col="성별코드")
sns.lmplot(data=df_sample, x="(혈청지오티)AST", y="(혈청지오티)ALT", hue = "음주여부", robust = True)
sns.scatterplot(data=df_sample, x="(혈청지오치)AST", y="(혈청지오티)ALT", hue="음주여부")
boxplot
: 25%, 75%를 기준으로 박스(막대) 그래프와 오차막대를 나타낸다.violinplot
: 바이올린 현과 같은 그래프swarmplot
: 범주형 데이터를 산점도로 나타내기lmplot
: 회귀선 그리기.col
을 사용해 여러 개의 컬럼을 나누어서 그릴 수 있고,robust
를 사용해 이상치를 제거할 수도 있다.scatterplot
: 산점도로 나타내기
이어서 distplot
, axvline
, kdeplot
을 살펴보았다.
df_chol = df[df["총콜레스테롤"].notnull(), "총콜레스테롤"]
sns.distplot(df_chol, bins=100)
plt.axvline(df_sample["총콜레스테롤"].mean(), linestyle = ":")
sns.distplot(df.loc[df["총콜레스테롤"].notnull() & (df["음주여부"] == 1)])
sns.kdeplot(df.loc[df["총콜레스테롤"].notnull() & (df["음주여부"] == 1)])
distplot
: 히스토그램과 곡선을 동시에 나타낸다. 시리즈 형태가 들어가야 한다.axvline
: 그래프에 특정 값을 기준으로 직선을 그어 그 값을 기준으로 구분이 쉽도록 해준다. 위 예시에서는 평균에 선을 그었다linestyle
로 직선의 모양을 지정할 수 있다.kdeplot
:distplot
에서 히스토그램이 사라진 버전.
상관관계 파악
앞선 모든 과정은 이걸 하기 위한 준비단계였다고 봐도 무방하다. 컬럼들이 실제로 상관관계가 있는지(인과관계가 아니다) 파악한다면 새로운 인사이트를 얻을 수 있을 것이다.
columns = ["연령대코드 (5세 단위)", "체중(5Kg 단위)", "신장(5Cm단위)", "허리둘레",
"시력(좌)", "시력(우)", "청력(좌)", "청력(우)", "수축기혈압",
"이완기혈압", "식전혈당(공복혈당)", "총콜레스테롤", "트리글리세리드",
"HDL콜레스테롤", "LDL콜레스테롤", "혈색소", "요단백", "혈청크레아티닌",
"(혈청지오티)AST", "(혈청지오티)ALT", "감마지피티", "흡연상태", "음주여부"]
df_small = df_sample[columns]
df_corr = df.small.corr() # pearson 상관 계수 테이블 구하기
df_corr["신장(5Cm단위)"].sort_values()
df_corr.loc[df_corr["신장(5Cm단위)"] > 0.3, "신장(5Cm단위)"]
분석을 원하는 컬럼을 columns
에 담고 .corr()
을 이용해서 상관 계수를 구하였다. 여기서는 Pearson의 상관계수를 기본적으로 사용한다. 그리고 상관 계수는 특정 값 이상이어야만 의미가 있으므로(‘특정 값’은 구글링해보자) 그 값들만 추출한다.
heatmap
을 사용하면 상관 계수를 시각적으로 나타낼 수 있다. 마치 모자이크 처리를 하듯이 상관 계수가 큰 경우에는 진한 색으로, 아닌 경우에는 점점 연하게 표시한다.
sns.heatmap(df_corr, annot = True, fmt = ".2f", cmap = "Blues")
annot
으로 숫자 표시 여부를 지정하고, fmt
로 소수점을 조절, cmap
으로 색상을 설정할 수 있다.
여기서 배운 다양한 전처리, 통계, 시각화, 상관 관계 파악 기법을 활용하면 임의의 데이터에 대해 가설을 설정하고 이를 검증할 수 있다. 다만, 상관 관계는 인과 관계가 아니므로, 인과 관계를 밝히기 위해서는 추가적인 검증을 진행해야 한다.
댓글남기기