탐색적 데이터 분석, EDA

업데이트:

탐색적 데이터 분석, EDA(Exploratory Data Analysis)

  • 오늘날 대부분의 데이터는 비정형 데이터
    • 데이터 분석을 위해서는 RAW 데이터를 정형화해야함
    • 혹은 정형화된 형태로 수집

데이터 분류 및 구조

정형 데이터

  • 먼저, 데이터 종류를 왜 나누나요?
    • R, Python 등에서는 데이터를 종류별로 구분하여 처리함
  • 연속형: 범위 데이터 ex) 풍속, 지속시간
  • 이산: 횟수와 같은 정수형 데이터 ex) 사건 발생 빈도, 구매 횟수
  • 범주형: 가능한 범위 안 데이터만 취함 (List, 다항형 데이터) ex) 서울 내 구자치, TV스크린 종류
  • 이진: Binary (0,1) ex) T or F
  • 순서형: 각 데이터 간 분명한 순위가 있는 범주형 데이터 ex) 평점
  • 테이블 데이터
    • 데이터 프레임: 테이블 형태의 데이터 구조
    • 피처: 일반적으로 테이블의 각 열 (= 특징, 속성, 입력, 예측변수, 변수)
    • 결과(outcome): 데이터 과학 프로젝트 예측의 결과물 (=종속변수, 응답, 목표, 출력)
    • 레코드: 테이블에서의 각 행 (= 기록값, 사건(case), 사례, 관측값, 패턴, 샘플)
  • 테이블 형식이 아닌 데이터 구조
    • 시계열 데이터, 위치 데이터, 그래프 등 있음

위치 추정

  • 대표값 구하기
    • 각 피쳐들을 살펴보는 기초적 방법, 대부분의 값이 어디에 위치하는지 중심 경향성을 나타내는 추정값
  • 대표값 종류 및 용어
    • 평균
    • 가중평균: 가중치를 곱한 총합 / 가중치의 총합
    • 중앙값
    • 가중 중앙값
    • 절사평균(=절단평균): 정해진 개수의 극단값을 제외한 평균값
    • 로버스트하다(=저항성 있다): 극단값들에 민감하지 않다는 것을 의미
    • 특잇값(=극단값)
  • 평균과 중앙값
    • 평균은 특잇값과 같은 데이터에 민감함
    • 중앙값은 평균에 비해 비교적 로버스트한 위치 추정 방법
    • 평균에서도 절사평균, 가중평균 등으로 특잇값의 영향을 줄이기 위해 활용됨.
    • 결국 어떤 방법이든, 특잇값에 의한 데이터들의 대략적인 위치 왜곡을 막기 위해 고안된 것들

변이 추정

  • 값이 얼마나 퍼져있는지, 밀집해있는지 등의 산포도를 나타냄
  • 변이값 종류
    • 편차: 관측값과 추정값과의 차이
    • 분산: 평균과 편차를 제곱한 값들의 합을 n-1로 나눈 것
    • 표준편차: 분산의 제곱근
    • 평균절대편차: 평균과의 편차의 절댓값의 평균
    • 중간값의 중위절대편차: 중간값과의 편차의 절댓값의 중간값 (..?)
    • 범위: 최댓값과 최솟값의 차이
    • 순서통계량(=순위): 최소에서 최대까지 정렬된 데이터 값에 따른 계량형
    • 사분위범위(IQR): 75번째 백분위수와 25번쨰 백분위수 사이의 차이
  • 분산, 표준편차 구할 시 n이 아니라 왜 n-1
    • 불편성 혹은 불편추정량을 없애기 위해
      • n으로 나누면 모집단에 해당하는 값보다 작게 나옴: 편향된(bias)값이 나올 수 있음
      • 조금이라도 더 정확한 값을 찾기 위해, 값을 크게 만들기 위해 n-1로 사용
    • 자유도
      • 표본평균을 알 경우, n개의 데이터를 무작위로 뽑았을 때 n번째 표본은 정해져있음
      • 이러한 상황을 방지하여 n개의 데이터 모두 독립적인 정보로 유지하기 위해 n-1
  • 백분위수와 상자그림(boxplot)
    • 백분위수: 최댓(100%), 중앙(50%), 최솟값(0%) 및 25%, 75%값 등
      • 분포를 알기 쉬움
    • 백분위수를 표현하기 위한 상자그림
    • 특잇값(이상값)을 제외한 백분위수 표현

      study

  • 도수분포표와 히스토그램
    • 도수분포표: 변수의 범위를 동일한 크기로 나눔
    • 히스토그램: 도수분포표를 시각화
      • 도수 구간에 따라 시각화 모형이 달라짐
      • 구간을 너무 크게 설정하면 분포의 특징 파악을 놓칠 수 있음
      • 구간을 너무 작게 설정하면 큰 그림, 경향성을 볼 수 없음
      • 구간 별 불연속성이 나타남 (뚝뚝 끊김!)
    • 모멘트
      • 1차 모멘트: 위치
      • 2차 모멘트: 변이
      • 3차 모멘트: 왜도
      • 4차 모멘트: 첨도 (데이터가 극단값을 갖는 경향성)
  • 밀도 추정
    • 히스토그램의 선형버전 (sns.distplot(df, kde=True, rug=False)
    • 커널밀도추정
  • 막대도표 vs 히스토그램
    • 막대도표는 여러 변수를 표현 - 그래서 막대 간 떨어져있지!
    • 히스토그램은 하나의 변수를 구간으로 나눠서 표현
  • 파이그래프
    • 막대도표 대신 파이그래프를 사용할 수도 있지만 시각적으로 안좋아서 잘 안씀
    • 실제량의 크기나 변화의 상황을 나타내는데 적당하지 않다.
    • 변화량을 비교할 때에도 극단적인 변화가 아니면, 한 번에 알아차리기 어렵다.
    • 여러 변수들을 표현하기에 적합하지 않다

범주형 데이터

  • 범주?
    • 전혀 다른 집단 ex. 사과, 배
    • 정도를 나타내는 요인 ex. 낮음, 중간, 높음
    • 구간별로 나뉜 수치 데이터 ex. 20~24세, 25~29세
  • 수치형을 범주형으로 나눠서 자주 봄.(나이를 5세씩 잘라서 본다든지)
  • 최빈값
    • 범주형 데이터에선 잘 사용되지만, 수치형 데이터에는 잘 사용되지 않음
  • 기댓값
    • 주로 가중평균하여 구함
  • 데이터 시각화 전, 확인해야 할 것들

    image

상관관계

  • 이변량분석(두개의 변수 관계)
  • 상관계수(피어슨 상관계수)
    • 0~1범위
    • 0.2: 약한 상관관계 / 0.5: 강한 상관관계
  • 상관행렬(행x열이 변수들로 이뤄진 일반적인 상관관계 table)
  • 산점도(scatterplot)
    • 상관관계를 알 수 있는 시각화
    • 데이터가 비교적 적을 때에는 활용 가능
    • 데이터가 너무 많으면 특성 파악이 힘들다

다변량분석

  • 평균, 분산은 일변량분석 (하나의 변수에 대한 분석법)
  • 상관관계는 두개의 변수에 대한 분석, 이변량분석
  • 수치형변수-수치형변수
    • 등고선, 육각형, 히트맵 등 사용
  • 범주형-범주형(pd.crosstab)
    • 분할표(피벗) 으로 사용
  • 범주형-수치형
  • 바이올린도표 (violinplot)
    • 상자그림을 보완한 형태: 데이터의 분포를 더 자세히 볼 수 있다.
    • 데이터의 특잇값들을 더 명확하게 보여줌

댓글남기기