✔ Python/1. Data Science

1변량 & 다변량 데이터 및 시각화 방안(with python)

  • -

1변량 데이터

하나의 변량(종류)만 있는 데이터를 1변량 데이터라고 합니다.

기본적인 통계량

기본적인 통계용어들을 익히도록 하겠습니다

  • 총합(sum)
  • 평균값(average)
  • 표본분산 - 표본평균을 사용하여 분산을 계산한 값
    • 수식 : \[\sigma^2 =\frac{1}{N} \sum_{i=1}^N (x_i - \mu)^2\]
  • 불편분산 - 표본분산의 과소추정 경향을 보정하기 위한 개념, 불편분산
    • 수식 : \[\sigma^2 =\frac{1}{N-1} \sum_{i=1}^N (x_i - \mu)^2 \]
  • 표준편차
  • 표준화 - 데이터의 평균을 0으로, 표준편차(분산)을 1로 하는 변환을 표준화라고합니다. 가량 키의 1cm 몸무게 1kg간격의 차이는 동일한 것을 의미하지않기때문입니다. 이와 같은 표준화를 하는 이유는 큰 변수와 작은 변수둘이 섞여있다면 그 분석이 유의하지않기 때문입니다.
  • 최대, 최소값
    • 최대값 - scipy.amax / 최소값 - scipy.amin 활용하여 쉽게 구할 수 있음
  • 중앙값(scipy.mdeian) ≠ 평균값
    • 중앙값과 평균값은 같을 수는 있지만, 항상 같지는 않음
    • 데이터의 이상치(매우 큰 값 또는 매우 작은 값이 발생)가 있는 경우, 중앙값은 그 데이터의 영향을 받지않습니다. 하지만, 평균값은 영향을 받습니다.
  • 사분위(Quantile)
    • scipy의 status를 활용하여 사분위값을 구할 수 있음
    • 작은 값부터 쭉 펼쳐놨을때 해당하는 25% 또는 75%에 해당하는 값을 표출함
import numpy as np
import scipy as sp
from scipy import stats

data = np.array([1,2,3,4,5,6,7,8,9])

stats.scoreatpercentile(data , 25) # 결과값 3

stats.scoreatpercentile(data , 75) # 결과값 3

 

다변량 데이터

여러개의 변수를 조합한 데이터. 즉, 2개 이상의 변수를 가진 데이터 의미함

  • 그룹별 통계량 계산하기 - pandas의 groupby 함수
import scipy as sp
import pandas as pd

data = pd.read_csv("./data.csv")
group = data.groupby("species")
print(group.mean())

group.describe()

 

2개의 연속형 변수의 관계성 파악 - 공분산(Covariance)

\[ Cov(x,y) = \frac{1}{N} \sum_{i=1}^N (x_i - \mu_x)(y_i-\mu_y)\]

해석 : 공분산의 결과가 0보다 큰 값을 때, 변수 x가 평균값보다 큰 값일 때, 다른 변수 y도 평균보다 큰 값을 가진다고 해석할 수 있음

공분산과 데이터의 형태(출처: 파이썬으로 배우는 통계학교과서 p127)

 

  • 공분산이 0보다 큰 경우, 변수 한쪽이 큰 값을 갖게되면 다른 한쪽도 커짐
  • 공분산이 0보다 작을 때, 변수 한 쪽이 큰 값을 갖게되면 다른 한쪽은 작아짐
  • 공분산이 0일때, 변수 사이에 관계성은 없음

 

상관계수

상관분석은 두가지 또는 그 이상의 변량에 대해 상호관계성을 분석하는 방법으로 피어슨, 스피어만, 켄달, 점 양분, 파이 계수가 있습니다.

  • 피어슨 상관계수
    • 연속형 변수와 연속형 변수간의 선형관계 파악시 활용
    • 다만, 두 변수 모두 정규성을 따른다는 가정이 필요

\[ \rho_{xy} = \frac{Cov(x,y)}{ \sqrt{ \sigma_x^2 \sigma_y^2}} \] 

  • 스피어만 순위 상관계수
    • 두 변수가 정규성을 따르지 않는 경우, 피어슨 상관계수를 활용할 수 없기에 순위 상관계수 방법 활용
    • 순위를 이용하기 땨문에 비모수적 방법
  • 켄달
  • 점 양분 상관계수
  • 파이계수

 

다변량 데이터 시각화

시각화 방안

  • 상자그림(boxplot)

  • 바이올린플롯

바이올린 플롯(출처: 아무튼 워라밸 블로그)

  • 막대그래프
  • 산포도(sns.jointplot)
  • 페어플롯(sns.pariplot)

페어블롯(출처: stack overflow)


Reference

  1. (도서) 파이썬으로 배우는 통계학 교과서
  2. 상관분석의 종류 - http://www.incodom.kr/%EC%83%81%EA%B4%80%EB%B6%84%EC%84%9D_%EC%A2%85%EB%A5%98

비전공자의 데이터 사이언티스트 도전기

 

 

728x90
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.