the art of data science_ eda

29
The Art of Data Science 4. Exploratory Data Analysis 송치성

Upload: chisung-song

Post on 11-Apr-2017

420 views

Category:

Data & Analytics


0 download

TRANSCRIPT

The Art of Data Science

4. Exploratory Data Analysis

송치성

위 4개의 데이터셋은 유사한 데이터셋일까?

Anscombe’s Quartet

Anscombe’s Quartet

탐색적 자료분석

(EDA, Exploratory Data Analysis) :

- 데이터를 탐색하는 과정. - 일반적으로 구조와 요소들을 살펴봄. - 이걸 어떻게..?

Exploratory Data Analysis

Data visualization

- 데이터를 시각적으로 표현. - EDA에서 가장 중요한 도구(Tool)

- 왜?!

데이터 시각화(Data visualization)

1. 시각화된 정보는 빨리 흡수됨. (Bar chart, Line chart, …) 2. 패턴을 쉽게 인식할 수 있음. (Heatmap, Wordcloud)

Data visualization

Goals of EDA

1. 자신의 데이터셋에 어떤 문제가 있는지 확인. 2. 질문(Question)에 대한 답(Answer)을 자신이 가지고 있는 데이터에

서 찾을 수 있는지 확인. 3. 질문에 대한 답의 스케치를 그려봄.

EDA의 목적?

Case study를 통해 EDA를 배워보자!

Case study

이번 챕터에서의 질문:

“미국 동부의 카운티가 서부의 카운티보다 오존 레벨이 높을까?”

Check list for EDA

1. Formulate your question 2. Read in your data 3. Check the packaging 4. Look at the top and the bottom of your data 5. Check your “n”s 6. Validate with at least one external data source 7. Make a plot 8. Try the easy solution first 9. Follow up

1. Formulate your question

- 질문을 고안(Formulate)해내는것은 EDA에서 효과적. - Sharp한 질문이나 가설일수록 변수가 적게 필요. (차원 축소의 효과)

- ‘동부와 서부는 어떻게 다를까?’ 보다는 ‘뉴욕과 LA는 어떻게 다를까?’가 좀더 샤프한 질문.

- 이 때 고려해야할것: “내가 가지고 있는 데이터가 이 질문에 대한 답을 찾기 위한 옳은 데이터일까?”

2. Read in your data

1. 실습 데이터 : 미국 EPA의 시간당 오존 측정량 (2014년) [http://aqsdr1.epa.gov/aqsweb/aqstmp/airdata/download_files.html]

2. R로 데이터 불러오기

- readr 패키지 : Hadley Wichham이 만든 패키지로 기본 Built-in 함수보다 빠르게 데이터를 불러올수 있음.

- col_types 속성 : 데이터셋의 각 컬럼의 클래스 지정.(c : character / i: integer / n: numeric)

2. Read in your data

1. 컬럼명 공백없도록 보정.

Ex) “speed of car” -> “speed.of.car”

3. Check the Packaging

당신에게 아직 열지 못하게 하는 선물이 있다면?

- 박스를 흔들어봄. - 두드려봄. - 무게를 재봄.

실제로 데이터 분석을 시작하기 전에 데이터에 접근할 때에도 마찬가지!

3. Check the Packaging

1. row가 몇개인지 봄.

2. column이 몇개인지 봄.

3. Check the Packaging

3. 전체적인 구조(structure)를 봄.

- row/col 정보를 포함하고 있음. - Read_csv()에서 지정한 class대로

col이 제대로 불러와졌는지 확인! - 가끔 쉽게 잠재적인 문제를 확인할 수

있음.

4. Look at the Top and the Bottom of your Data

- 데이터의 시작과 끝을 봄. - 데이터가 적절한 포맷인지, 제대로 읽혔는지 확인하는 과정. - 특히, 데이터의 끝에 코멘트를 달아놓는 경우도 있기 때문에

tail()은 유용.

5. ABC: Always be Checking Your “n”s

- 일반적으로 카운팅은 잘못된 것을 알아차리는 좋은 방법. - 이를 적절하게 하기 위하여 데이터를 체크하는데 사용되는 몇가지 landmark

를 확인해야함. - 실습 데이터셋에서 landmark는 “시간당(hourly)”와 “전체 카운티(entire

county)”.

- 문제점 : 대부분은 정시에 측정되었지만, 약간 아닌 것들이 있음. -> 체크해봐야함!

5. ABC: Always be Checking Your “n”s

- 시간이 “13:14”일때 측정된 데이터를 확인해봄.

- 두개다 Franklin에서 9월30일에 측정. -> 그 때의 다른 데이터들은 어떨까?

5. ABC: Always be Checking Your “n”s

- 뉴욕 프랭클린의 9월30일에 측정된 데이터 확인.

- 시간 데이터가 이상하게 되어있음. - 여기에서만 그렇기 때문에 크게 걱

정안해도 됨.

5. ABC: Always be Checking Your “n”s

- 주(state)가 얼마나 있는지 탐색.

- 52개.. 하지만 미국은 주가 50개 있음! -> 잘못된 부분 찾아야함.

이러한 문제를 해결하고 입증하기 위해 외부의 데이터가 필요하기도 함!

6. Validate with at least One External Data Source

- External validation을 할 경우, 데이터셋의 문제점을 찾을 수도 있음. - 오존의 경우, 8시간 평균 측정치가 0.075ppm을 많이 초과하면 안된다는 기

준이 있음.

- 최대값이 349로 굉장히 높지만, 대부분이 기준인 0.075 이하.

6. Validate with at least One External Data Source

- 해석: - 데이터가 옳은 규모이고, 단위도 맞다. - 분포의 범위가 대충 예상한 대로임. - 몇몇 측정치(10%이내)는 기준을 초과하지만 괜찮다..?

(Some hourly levels (less than 10%) are above 0.075 but this may be reasonable given the wording of the standard and the averaging involved. )

7. Make a Plot

- 데이터를 시각화할 플롯을 만드는 것은 질문과 데이터를 더 깊이 이해하는데 있어서 좋은 방법.

- 플롯의 두가지 주요인: - 1. 기대 만들기. (creating expectations) - 2. 기대를 벗어나는 것 체크.

- 데이터에 대해 이해도가 높다면(좋은 질문과 가설 수립), 플롯을 만드는 것은 효율적인 도구로써 사용할 수 있음.

7. Make a Plot

- 대부분의 데이터는 0.05ppm아래에서 아주 좁게 분포.

- 푸에르토 리코는 아주 낮지만, 가끔 극단적으로 높은 값이 있음.

- 조지아와 하와이는 때때로 높음.

8. Try the Easy Solution First

- 가장 처음 질문을 상기해보면,,“미국 동부의 카운티가 서부의 카운티보다 오존 레벨이 높을까?”

- 정확한 답변을 찾기보다는 가설이나 질문에 대한 prima facie evidence를 찾는것이 중요!

- 미국의 동부, 서부를 나눠야함. -> longitude 데이터를 이용.

8. Try the Easy Solution First

- 데이터셋에 경도 -100을 기준으로 west/east로 나누는 region 열 추가.

- west/east 별로 간단한 오존 요약통계량 경향 확인.

- West가 중앙값,평균값 둘다 조금 더 높음. -> 분포는 어떨까?

8. Try the Easy Solution First

- 박스플롯으로 확인.

9. Follow-up Questions

- EDA는 다음 질문들을 검토하는데 효과적.

1. 정확한 데이터를 가지고 있는가? (잘못된 데이터가 없나?) 2. 다른 데이터가 필요한가? (다른 년도 등..) 3. 정확한 질문을 가졌는가? (동서로 나누어 생각하는게 맞나? 등..)

The goal of exploratory data analysis is to get you thinking about your data and reasoning about your question. At this point, we can refine our question or collect new data, all in an iterative process to get at the truth.