[Data Science With R] 3. 탐색적 데이터 분석 (Exploratory Data Analysis) (202405)

2023. 3. 29. 22:01·Data Science/Manipulation

0. Overview

 

 

1. 정의

  • 데이터를 체계적으로 탐색하기 위해 시각화 및 탐색을 활용하는 과정
  • 데이터를 이해하고 그 속에서 인사이트를 발굴하기 위해 중요한 과정

 

 

 

2. 방법

  • 데이터에 대한 질문을 만든다
  • 데이터를 시각화, 변형 및 모델링하여 질문에 대한 답을 찾는다
  • 질문을 개선하거나 새로운 질문을 만든다

 

 

 

3. 질문

  • 단변량 변수 내에서 어떤 유형의 변동(Variation)이 발생하는지
  • 이변량 & 다변량 변수 간에 어떤 유형의 공변동(Covariation)이 발생하는지

 

 

 

4. 시각화

  1. 범주형 변수의 분포 
    • 개수 : count(x), table(x)
    • 시각화 : geom_bar, geom_col

  2. 연속형 변수의 분포
    • 범주화 : cut, cut_width, cut_interval, cut_number, case_when
    • 시각화 : geom_histogram, geom_freqpoly, geom_density, geom_violin
cut base 데이터를 수치형 벡터를 제공받는 breaks에 따라 (a1, a2], ... , ($a_{n-1}$, $a_n$]으로 구분
cut_width ggplot2 연속형 데이터를 구간의 너비를 지정하는 width에 따라 범주화
center(구간의 중심) 설정을 통해 구간의 세부사항을 조정할 수 있음
cut_interval ggplot2 동일한 범위를 가지는 n개의 그룹으로 범주화하는 함수
cut_number ggplot2 각 그룹에 속한 관측치 수가 비슷하도록 n개의 그룹으로 범주화하는 함수
pulse <- MASS::survey$Pulse
tibble(pulse=pulse) |> 
  mutate(
    pulse_cut = cut(pulse, breaks=c(0, 60, 90, Inf), labels = c("low", "middle", "high")),
    pulse_cut_width = cut_width(pulse, width=10, center=80),
    pulse_cut_interval = cut_interval(pulse, n=5),
    pulse_cut_number = cut_number(pulse, n=5)
  )

 

 

 

5. 결측값(Missing Value)

결측값(Missing Value)이란 데이터셋에서 특정 변수의 값이 기록되지 않거나, 존재해야 하는 값이 누락된 경우를 의미합니다.

R에서는 NA(Not Available)로 표시되며, 해당 셀에 값이 없음을 나타내며 is.na 함수를 사용해 해당 값이 결측값인지 확인할 수 있습니다.

  • 시각화 
    • Amelia::missmap 함수 사용
    • naniar 라이브러리 사용 (https://cran.r-project.org/web/packages/naniar/vignettes/naniar-visualisation.html )
Amelia::missmap(airquality)
vis_miss(airquality)

 

  • 처리
    • 해당 행 삭제 : na.omit, complete.cases, dplyr::drop_na, na_if, coalesce 함수 사용 (결측값의 비율이 전체 데이터 대비 많이 낮은 경우)
    • 대치(단순대치, 평균대치 등등) : mice::mice, Amelia::amelia, zoo::na.* function

참고로, 대규모 데이터 셋에서는 geom_boxplot을 사용하는 것 보다 lvplot::geom_lv 함수를 사용하는 것이 효과적이다.

diamonds %>% 
  ggplot(mapping=aes(x=cut, y=price)) + geom_boxplot()

diamonds %>% 
  ggplot(mapping=aes(x=cut, y=price)) + lvplot::geom_lv(outlier.colour = "red", varwidth = T, width.method = "linear")

 

 

 

6. 유용한 패키지 

  • DataExplorer Package
    • introduce(data) : data의 간단한 정보를 출력(행수, 열수, 이산형 열 수, 연속형 열 수, 결측치가 포함된 열 수, 결측치 수, 결측치가 포함되지 않은 행의 수, 총 데이터 포인트 수, 메모리 사용량)
    • create_report(data, output_file, output_dir, y, config) : config에 맞게 데이터 프로파일 리포트를 생성 (시각화 및 데이터 통계, 상관계수, PCA 포함) 
    • profile_missing(data) : 각 열마다 missing value의 수와 백분율을 간단하게 보여주는 함수
    • plot_str(data, type) : 데이터의 구조를 Network Graph를 통해 보여주는 함수로 create_report에 기본적으로 포함
    • plot_scatterplot(data, by) : by에 지정된 열의 각 수준별로 data의 모든 변수의 단변량 산점도를 보여주는 함수

 

  • GGally 
    • ggpairs : ggplot2 generalized pairs plot
    • ggcorr : correlation matrix plot
    • ggtable : Cross-tabulated tables of discrete variables
    • ggparcoord : Plotting static parallel coordinate plots

(좌측상단) ggpairs / (우측상단) ggcorr / (좌측하단) ggtable / (우측하단) ggparcoord

 

  • GWalkR::gwalkr(data) : Tableau 스타일의 그래프 뷰어기능 제공

저작자표시 비영리 변경금지 (새창열림)

'Data Science > Manipulation' 카테고리의 다른 글

[Data Science With R] 6. 파싱(Parsing) (202405)  (0) 2023.03.31
[Data Science With R] 5. readr로 파일 읽기 (202503)  (0) 2023.03.31
[Data Science With R] 4. 티블(Tibble) (202406)  (1) 2023.03.30
[Data Science With R] 2. 데이터 변형 (202405)  (1) 2023.03.29
[Data Science with R] 1. 데이터 시각화 (202405)  (1) 2023.03.29
'Data Science/Manipulation' 카테고리의 다른 글
  • [Data Science With R] 5. readr로 파일 읽기 (202503)
  • [Data Science With R] 4. 티블(Tibble) (202406)
  • [Data Science With R] 2. 데이터 변형 (202405)
  • [Data Science with R] 1. 데이터 시각화 (202405)
임파카
임파카
[ML & Statistics] 모바일 버전에서 수식 오류가 있어 PC 환경에서 접속하는 것을 권장합니다.
  • 임파카
    무기의 스탯(Stat)
    임파카
  • 전체
    오늘
    어제
    • Study (149)
      • Data Science (44)
        • Modeling (18)
        • Manipulation (21)
        • Visualization (4)
      • Statistics (59)
        • Mathmetical Statistics (53)
        • Categorical DA (1)
      • Web Programming (17)
      • AI (26)
        • Machine Learning (16)
        • Deep Learning (10)
      • 활동 및 프로젝트 (3)
  • 인기 글

  • hELLO· Designed By정상우.v4.10.5
임파카
[Data Science With R] 3. 탐색적 데이터 분석 (Exploratory Data Analysis) (202405)
상단으로

티스토리툴바