탐색적 데이터 분석(EDA : exploratory data analysis)

- 기존의 통계학에서는 추론, 즉 적은 표본을 가지고 더 큰 모집단에 대한 결론을 도출하기 위한 일련의 복잡한 과정에 관해 다루었다. 1962년 존 투키는 "데이터 분석의 미래"라는 논문을 통해 통계적 추론을 하나의 구성 요소로보는 데이터 분석(data analysis)이라는 새로운 과학적 학문을 제안했다. 이후 탐색적 데이터 분석이라는 분야는 1997년 존 투키의 "탐색적 데이터 분석"을 통해 정립되었다.

- 탐색적 데이터 분석은 데이터의 주요 특성을 요약하기 위해 데이터를 분석하는 접근법이며, 주로 시각적인 방법을 사용한다. 예시로는 박스 플롯, 히스토그램 등이 있다.

 

1. 5. 데이터 분포 탐색하기

용어 의미
상자그림(box plot) 투키가 데이터의 분포를 시각화하기 위한 간단한 방법으로 소개한 그림
도수분포표(frequency table) 어떤 구간에 해당하는 수치 데이터 값들의 빈도를 나타내는 기록
히스토그램(histogram) x축은 구간들을, y축은 빈도수를 나타내는 도수 테이블의 그림
밀도 그림(density plot) 히스토그램을 부드러운 곡선으로 나타낸 그림. 커널밀도추정을 주로 사용한다.

1. 5. 1. 백분위수와 상자그림

- 상자그림(box plot)은 백분위수를 이용해 데이터의 분산을 시각화하는 방법이다.

그림 1. 상자그림

용어 의미
최솟값(Minimum) 이상치를 제외하고 가장 작은 값. 상자를 기준으로 수염 아래의 끝에 있는 수평선.
최댓값(Maximum) 이상치를 제외하고 가장 큰 값. 상자를 기준으로 수염 위의 끝에 있는 수평선.
이상치(outlier) 그림에서 수염 외부에 점으로 존재한다.
수염(whisker) 상자를 기준으로 위아래로 점선으로 나타난 부분.
1분위수($Q_1$/25백분위수) 상자그림에서 상자의 아래쪽을 의미한다.
2분위수($Q_2$/50백분위수)
중간값(Median)
상자그림에서 상자 안에 있는 굵은 선으로 표시한다.
3분위수($Q_3$/75백분위수) 상자그림에서 상자의 위쪽을 의미한다.
IQR $IQR=Q_3-Q_1$

1. 5. 2. 도수분포표와 히스토그램

- 도수분포표는 변수의 범위를 동일한 크기의 구간으로 나눈 다음, 각 구간마다 몇개의 변수 값이 존재하는지를 보여주기 위해 사용된다.

- 히스토그램은 바로 이 도수분포표를 시각화하는 방법이다. R에서 hist 함수로 나타낸다.

hist(x, …)
# S3 method for default
hist(x, breaks = "Sturges",
     freq = NULL, probability = !freq,
     include.lowest = TRUE, right = TRUE,
     density = NULL, angle = 45, col = NULL, border = NULL,
     main = paste("Histogram of" , xname),
     xlim = range(breaks), ylim = NULL,
     xlab = xname, ylab,
     axes = TRUE, plot = TRUE, labels = FALSE,
     nclass = NULL, warn.unused = TRUE, …)

그림 2. 히스토그램

  • 그래프에 빈 구간들이 있을 수 있다.

  • 구간은 동일한 크기를 갖는다.

  • 구간의 수(혹은 구간의 크기)는 사용자가 결정할 수 있다.

  • 빈 구간이 있지 않은 이상, 막대 사이는 공간 없이 서로 붙어 있다.

통계학에서 말하는 모멘트

- 통계학에서 위치와 변이는 각각 분포의 일차 및 이차 적률(혹은 모멘트)이라고 한다. 삼차, 사차 모멘트는 각각 왜도(skewness), 첨도(kutosis)라고 부른다. 왜도는 데이터가 큰 값이나 작은 값 쪽으로 얼마나 비스듬히 쏠려 있는지를 나타내고, 첨도는 데어티가 극단값을 갖는 경향성을 나타낸다. EDA에서는 모멘트 값들을 직접 구하기보다는 상자그림이나 히스토그램과 같이 시각화해서 직접 확인한다.

1. 5. 3. 밀도 추정

- 밀도 그림은 데이터의 분포를 연속된 선으로 보여준다. 다시 말해서 좀 더 부드러운 히스토그램이라고 생각해볼 수 있다. 커널밀도추정을 통해 데이터로부터 직접 계산한다. R의 density 함수로 나타낸다.

density(x, …)
# S3 method for default
density(x, bw = "nrd0", adjust = 1,
        kernel = c("gaussian", "epanechnikov", "rectangular",
                   "triangular", "biweight",
                   "cosine", "optcosine"),
        weights = NULL, window = kernel, width,
        give.Rkern = FALSE,
        n = 512, from, to, cut = 3, na.rm = FALSE, …)

그림 3. 밀도 추정

EDA에서 상자그림과 히스토그램을 제외한 다양한 방법과 밀도추정 부분에서 커널밀도추정 방법에 대한 심도있는 추가적인 학습이 필요하다.


1. 6. 이진 데이터와 범주 데이터 탐색하기

용어 의미
최빈값(mode) 데이터에서 가장 자주 등장하는 범주 혹은 값
기댓값(expected value) 범주에 해당하는 어떤 수치가 있을 때, 범주의 출현 확률에 따른 평균
막대도표(bar chart) 각 범주의 빈도수 혹은 비율을 막대로 나타낸 그림
파이그림(pie chart) 각 범주의 빈도수 혹은  비율을 원의 부채꼴 모양으로 나타낸 그림

막대도표는 어떤 범주형 자료를 보여줄 때 주로 사용되며 가장 흔한 시각화 방법이다. R에서 barplot 함수로 나타낸다.

barplot(height, …)
# S3 method for default
barplot(height, width = 1, space = NULL,
        names.arg = NULL, legend.text = NULL, beside = FALSE,
        horiz = FALSE, density = NULL, angle = 45,
        col = NULL, border = par("fg"),
        main = NULL, sub = NULL, xlab = NULL, ylab = NULL,
        xlim = NULL, ylim = NULL, xpd = TRUE, log = "",
        axes = TRUE, axisnames = TRUE,
        cex.axis = par("cex.axis"), cex.names = par("cex.axis"),
        inside = TRUE, plot = TRUE, axis.lty = 0, offset = 0,
        add = FALSE, ann = !add && par("ann"), args.legend = NULL, …)

# S3 method for formula
barplot(formula, data, subset, na.action,
        horiz = FALSE, xlab = NULL, ylab = NULL, …)

막대도표와 히스토그램은 매우 유사하다. 다만 막대도표의 x축은 각 요인변수(factored variable)의 서로 다른 범주들을 나타내는 반면, 히스토그램의 x축은 수치적으로 나타낼 수 있는 하나의 변수의 값을 의미한다. 또한 히스토그램에서 막대들은 일반적으로 서로 붙어 있고, 중간에 틈이 있다는 것은 그 부분에 해당하는 값들이 존재하지 않는다는 것을 의미하지만 막대도표에서 막대들은 서로 떨어져있다.

1. 6. 1. 최빈값

- 데이터에서 가장 자주 등장하는 값 혹은 값들. 범주형 데이터를 분석하는데 간단히 사용된다. 하지만 수치데이터에는 잘 사용하지 않는다.

1. 6. 2. 기댓값

공간 $S$를 갖는 이산형 확률변수 $X$의 pmf가 $f(x)$이고 총합

$\sum_{x\in{S}}^{}u(x)f(x)$

가 존재하면, 그 합을 $u(X)$의 수학적 기댓값(mathematical expectation) 또는 기댓값(expected value)이라 하고 $E[u(X)]$로 표기한다. 즉,

$E[u(X)]=\sum_{x\in{S}}^{}u(x)f(x)$.

 

간단히 말하면 기댓값은 가중평균과 같은 꼴이다.

 

※ 범주 데이터와 기댓값에 대한 추가적인 학습이 필요하다.

<참고자료>
1. Peter Brucs & Andrew Brucs (2018), 데이터 과학을 위한 통계. 한빛미디어. 이용준 옮김.
2. Exploratory data analysis, Wikipedia(en.wikipedia.org/wiki/Exploratory_data_analysis)
3. Box plot, Wikipedia(en.wikipedia.org/wiki/Box_plot)
4. Histogram, Wikipedia(en.wikipedia.org/wiki/Histogram)
5. Density estimation, Wikipedia(en.wikipedia.org/wiki/Density_estimation)
6. R 코드 정보, R Documentation(www.rdocumentation.org/)
7. Hogg & Tanis & Zimmerman (2016), 수리 통계학. 자유아카데미. 백장선 & 송영숙 옮김.

+ Recent posts