데이터 과학

탐색적 데이터 분석

무엇을 찾을지 정해 놓고 보는 것이 아니라,
무엇이 있는지 보려고
데이터를 살펴보는 일입니다.

학습 목표

  1. 탐색적 데이터 분석이 무엇인지 설명하고, 데이터 살펴보기 · 통계 · 시각화 · 상관관계의 네 가지 방법을 구분할 수 있다.
  2. 기술 통계로 데이터를 요약하고, 상관계수의 부호와 절댓값이 무엇을 뜻하는지 해석할 수 있다.
  3. 열 · 행 기준의 데이터 통합 방법과 겹치는 속성을 줄이는 방법을 구분하고, 세계 행복 보고서 데이터셋으로 탐색적 데이터 분석을 수행할 수 있다.

통곗값이 같으면 같은 데이터일까?

통곗값이 같으면 그림도 같을까요?

1973년 영국의 통계학자 프란시스 앤스컴(Francis Anscombe)은 「같은 통계치를 가진 데이터라도 그래프를 그리면 서로 다른 패턴을 가질 수 있다」고 주장했습니다. 알베르토 카이로(Alberto Cairo)는 「통계 요약만을 신뢰하지 말고 항상 데이터를 시각화하라」고 촉구하기 위해 공룡 모양의 데이터사우루스(Datasaurus) 데이터셋을 만들었습니다. 이후 다른 연구자들이 이것을 같은 통곗값을 갖는 서로 다른 12개의 데이터셋으로 확장했습니다.

확장된 12개 산점도 중 넷. 넷 다 같은 요약 통계를 가집니다.

x 평균 54.26
y 평균 47.83
x 표준 편차 16.76
y 표준 편차 26.93
상관계수 r −0.06

공룡과 별과 원이 같은 평균, 같은 표준 편차, 같은 상관계수를 가집니다. 그런데 그림으로 그리면 전혀 다른 모양이 나타납니다. 요약한 숫자만 보고는 이 차이를 알 수 없으므로, 시각화로 함께 살펴야 합니다.

탐색적 데이터 분석은 통계와 시각화를 함께 써서 데이터를 여러 각도로 살펴보고, 그 데이터가 어떤 성질과 짜임새를 가졌는지 알아내는 과정입니다. 답을 정해 놓고 확인하는 것이 아니라, 무엇이 들어 있는지 먼저 알아보는 단계입니다.

사과 한 상자를 처음 받았다고 해 봅시다. 몇 개인지 세고, 평균 무게를 구하고, 품종별로 나란히 놓아 보고, 색과 단맛이 함께 가는지 살펴봅니다. 데이터를 앞에 두고 하는 일도 이와 같습니다.

사과 더미 앞에서 사람들이 하는 말

「사과가 모두 몇 개이고, 무엇을 측정해 두었지?」

→ 데이터 살펴보기

「사과 무게의 평균은?」

→ 통계로 요약하기

「홍로가 후지보다 세로 길이가 더 길구나.」

→ 시각화로 비교하기

「빨간 사과가 더 달콤할 줄 알았는데, 그렇지는 않구나.」

→ 상관관계 확인하기

사과 더미를 앞에 두고 나올 수 있는 네 가지 질문

네 가지 방법으로 이루어집니다

위의 네 마디가 그대로 탐색적 데이터 분석의 네 가지 방법입니다. 차례로 살펴봅니다.

이 말은 누가 만들었나요? — 존 튜키

미국의 통계학자 존 튜키(John Tukey)의 저서 「Exploratory Data Analysis」에서 처음 도입한 데이터 분석 방법론입니다.

우리가 존재한다고 믿는 것들은 물론이고, 존재하지 않는다고 믿는 것까지 발견하는 태도, 유연성, 자발성이 바로 탐색적 데이터 분석이다. — 존 튜키(John Tukey)

존 튜키는 그래프와 같은 시각적 도구를 사용하여 데이터의 패턴을 이해하고, 이상치나 특이점을 식별하는 등 데이터에서 예상치 못한 것을 발견하고 데이터를 충분히 이해하는 자발적인 태도를 강조했습니다.

패턴 분석은 데이터에서 규칙성을 찾는 작업으로, 패턴 분석을 통해 데이터에 숨은 반복적인 경향성이나 유용한 정보를 찾아낼 수 있습니다.

스스로 확인

「탐색적」이라는 말이 붙은 이유는 무엇일까요? 무엇을 찾을지 미리 정해 놓고 확인하는 것과 무엇이 있는지 보려고 살펴보는 것은 어떻게 다를까요?

파일을 열면 무엇부터 볼까?

방법 ① 데이터 살펴보기

탐색적 데이터 분석의 기본은 다양한 측면에서 데이터를 살펴보는 것입니다.

몇 개인가

전체 데이터의 개수

무엇으로 되어 있나

어떤 속성들로 구성되어 있는지

어떤 유형인가

속성이 문자형인지 수치형인지

빈 곳은 없나

데이터에 결측치가 있는지

세계 행복 보고서 2023을 살펴보면

아래 표는 이 데이터셋의 속성 가운데 주요 속성 8개만 골라 보인 것입니다. Country name(국가명) 속성값은 문자형 데이터이고, 나머지 속성값은 모두 수치형 데이터입니다.

No. Country name
(국가명)
Ladder score
(행복 점수)
Logged GDP per capita
(1인당 GDP)
Social support
(사회적 지지)
Healthy life expectancy
(건강 기대 수명)
Freedom to make life choices
(선택의 자유)
Generosity
(관대함)
Perceptions of corruption
(부패 인식)
1Finland7.80410.7920.96971.150.961−0.0190.182
2Denmark7.58610.9620.95471.250.9340.1340.196
3Iceland7.5310.8960.98372.050.9360.2110.668
4Israel7.47310.6390.94372.6970.809−0.0230.708
5Netherlands7.40310.9420.9371.550.8870.2130.379
6Sweden7.39510.8830.93972.150.9480.1650.202
7Norway7.31511.0880.94371.50.9470.1410.283
8Switzerland7.2411.1640.9272.90.8910.0270.266
9Luxembourg7.22811.660.87971.6750.9150.0240.345
10New Zealand7.12310.6620.95270.350.8870.1750.271
………………………
136Lebanon2.3929.4780.5366.1490.474−0.1410.891
137Afghanistan1.8597.3240.34154.7120.382−0.0810.847

세계 행복 보고서 2023 데이터 일부 — 137개국 중 12개국 발췌
출처: UN 세계 행복 보고서 2023 worldhappiness.report

표의 맨 윗줄이 속성명, 그 아래 칸들이 속성값입니다. Country name 한 열만 문자형이고 나머지 일곱 열은 전부 수치형입니다. 국가명은 문자형이면서 동시에 범주형으로 구분하기도 합니다.

스스로 확인

표에서 137개 데이터가 다 보이지 않는데 「전체 데이터의 개수」는 어떻게 알 수 있을까요? 눈으로 세지 않고 알아내려면 어떤 도구를 쓰면 될까요?

137개를 한 줄로 요약할 수 있을까?

방법 ② 통계로 분석하기

데이터를 통곗값으로 분석하면 데이터의 대략적인 특성을 빠르게 파악할 수 있습니다.

기술 통계는 많은 데이터를 몇 개의 숫자로 줄여 설명하는 방법입니다. 개수, 평균, 표준 편차, 최댓값, 최솟값, 사분위수 같은 값들이 여기에 해당합니다.

통계 분석의 기본이 되는 형태가 기술 통계 분석입니다. 아래 그림처럼 원자료를 히스토그램으로 바꾸고 평균과 표준 편차를 얹으면, 137개의 숫자가 몇 개의 값과 한 장의 그림으로 줄어듭니다.

원자료(행복 점수) 평균 5.5 · 표준 편차 1.1

원자료를 기술 통계와 히스토그램으로 요약하는 과정

기술 통계에 들어가는 값

데이터의 개수 count

평균 mean

분산 variance

표준 편차 standard deviation

최댓값 maximum

최솟값 minimum

중앙값 median

사분위수 quartile

데이터의 특성을 확인하여 결측치나 이상치 등을 처리하는 데이터 전처리에 활용할 수 있습니다. 기술 통계는 분석의 결과가 아니라 출발점입니다.

세계 행복 보고서의 기술 통계

index Ladder score
(행복 점수)
Logged GDP per capita
(1인당 GDP)
Social support
(사회적 지지)
Healthy life expectancy
(건강 기대 수명)
Freedom to make life choices
(선택의 자유)
Generosity
(관대함)
Perceptions of corruption
(부패 인식)
count137.0137.0137.0136.0137.0137.0137.0
mean5.59.40.865.00.80.00.7
standard deviation1.11.20.15.80.10.10.2
minimum1.95.50.351.50.4−0.30.1
제1사분위수4.78.60.760.60.7−0.10.7
제2사분위수5.79.60.865.80.80.00.8
제3사분위수6.310.50.969.40.90.10.8
maximum7.811.71.077.31.00.50.9

세계 행복 보고서 2023의 기술 통계 — 속성 7개의 요약값
출처: UN 세계 행복 보고서 2023 worldhappiness.report

개수는 137개

전체 데이터의 개수는 137개입니다. Ladder score는 1.9~7.8의 값을 가집니다.

혼자 136개인 열

Healthy life expectancy만 count가 136입니다. 결측치가 한 개 존재한다는 뜻입니다.

혼자 큰 열

같은 속성이 51.5~77.3으로 다른 속성에 비해 값의 크기(scale)가 큽니다.

Ladder score의 평균은 5.5, 표준 편차 1.1, 제1사분위수 4.7, 중앙값 5.7, 제3사분위수 6.3, 최솟값 1.9, 최댓값 7.8입니다.

표 한 장에서 두 가지 할 일이 이미 나왔습니다. 결측치 한 개를 처리해야 하고, 속성 간 크기 차이가 크므로 데이터 사이의 거리를 계산하는 기계학습 방법을 쓴다면 정규화를 검토해야 합니다.

스스로 확인

Generosity(관대함)의 최솟값이 −0.3입니다. 「관대함」이 음수라는 것이 말이 될까요? 이상해 보이는 값을 만났을 때 무엇부터 확인해야 하는지 떠올려 봅시다.

그림으로 바꾸면 무엇이 더 보일까?

방법 ③ 데이터 시각화로 분석하기

데이터를 그래프로 그리면 추세와 분포의 차이가 보이고, 표에서는 묻혀 있던 패턴과 이상치가 드러납니다.

막대그래프 · 히스토그램

데이터의 크기나 분포를 비교하여 분석할 수 있습니다.

국가별 1인당 GDP — 왼쪽부터 행복 점수가 높은 순
출처: UN 세계 행복 보고서 2023 worldhappiness.report

산점도

두 개의 속성 사이의 관계를 쉽게 파악할 수 있습니다.

1인당 GDP에 따른 행복 점수 — 가로축 1인당 GDP, 세로축 행복 점수
출처: UN 세계 행복 보고서 2023

두 그래프를 함께 보면 1인당 GDP가 높은 나라일수록 행복 점수도 높은 경향이 있지만, 1인당 GDP가 낮은 나라 중에 행복 점수가 높은 나라도 있다는 것을 알 수 있습니다.

산점도로 이상치도 찾습니다

위 산점도에서 붉게 표시된 점을 보세요. 1인당 GDP는 낮은 쪽인데 행복 점수는 위쪽에 홀로 떨어져 있습니다. 이렇게 대부분의 데이터 분포와 차이가 많이 나는 값을 산점도에서 발견할 수 있습니다. 산점도는 이렇게 이상치를 찾을 때도 씁니다.

「경향이 있지만 예외도 있다」는 문장은 표만 봐서는 나오지 않습니다. 점들이 어떻게 흩어져 있는지를 눈으로 봐야 「대체로 오른쪽 위로 간다」와 「그런데 저기 하나 있다」를 동시에 말할 수 있습니다.

함께 움직이는 정도를 숫자로 측정할 수 있을까?

방법 ④ 상관관계로 분석하기

상관관계는 두 속성 x와 y가 함께 오르내리는 관계입니다. 어느 쪽이 어느 쪽을 따라간다는 방향은 담겨 있지 않습니다.

양의 상관관계

x가 큰 데이터일수록 y도 큰 경향이 있는 관계입니다.

음의 상관관계

x가 큰 데이터일수록 y는 작은 경향이 있는 관계입니다.

상관계수(r)는 그 관계가 얼마나 강한지를 나타내는 숫자입니다. −1에서 1 사이의 값을 가지며, r의 절댓값이 1에 가까울수록 상관이 높습니다. 일반적으로 피어슨 상관계수가 많이 쓰입니다.

부호가 뜻하는 것

r = 1 완벽한 양의 상관관계. 한 속성이 큰 데이터일수록 다른 속성도 일정한 비율로 크다. 모든 점이 한 직선 위에 놓인다.
r = 0 상관관계 없음. 두 속성 간에 선형 관계가 전혀 없다는 뜻이다. 다만 비선형 관계는 존재할 수 있다.
r = −1 완벽한 음의 상관관계. 한 속성이 큰 데이터일수록 다른 속성은 일정한 비율로 작다. 모든 점이 한 직선 위에 놓인다.

절댓값으로 강약 판단하기

상관계수 |r| 상관 정도
0상관이 전혀 없다
0 초과 ~ 0.2 미만거의 상관이 없다
0.2 이상 ~ 0.4 미만약한 상관이 있다
0.4 이상 ~ 0.6 미만상관이 있다
0.6 이상 ~ 0.8 미만강한 상관이 있다
0.8 이상 ~ 1 미만매우 강한 상관이 있다
1완벽한 상관이 있다

이 구간 기준은 분야에 따라 다르게 잡기도 합니다.

스스로 확인

상관계수가 0.9인 두 속성과 −0.9인 두 속성이 있습니다. 어느 쪽 관계가 더 강할까요? 부호와 절댓값 중 무엇이 강약을 정하는지 말해 봅시다.

무엇이 행복과 가장 관련이 깊을까?

실제 데이터로 상관계수 읽어 보기

행복 점수와 여섯 요인의 상관계수

각 요인과 행복 점수를 산점도로 그리고 상관계수를 함께 구하면 어느 요인이 행복 점수와 가장 강한 상관이 있는지 알 수 있습니다.

사회적 지지

0.83

매우 강한 양의 상관

1인당 GDP

0.78

강한 양의 상관

건강 기대 수명

0.75

강한 양의 상관

선택의 자유

0.66

강한 양의 상관

관대함

0.04

거의 상관이 없다

부패 인식

−0.47

음의 상관

세계 행복 데이터의 여섯 요인과 행복 점수의 상관계수
출처: UN 세계 행복 보고서 2023

행복 점수와 사회적 지지는 매우 강한 양의 상관관계가 있습니다. 1인당 GDP, 건강 기대 수명, 선택의 자유도 양의 상관관계가 있습니다. 부패 인식은 음의 상관관계이고, 관대함은 거의 상관이 없습니다.

이 데이터에서는 1인당 GDP(0.78)보다 어려울 때 기댈 사람이 있는가(0.83)가 행복 점수와 더 강한 상관이 있습니다. 다만 이상치를 처리하면 순서가 바뀝니다(『네 가지 방법을 실제로 실행해 볼까?』 절). 이런 문장은 상관계수를 측정하기 전에는 말할 수 없습니다.

모든 짝을 한 장에 — 상관계수 히트맵

속성이 7개면 짝은 21가지입니다. 산점도를 21장 그릴 수는 없으므로, 상관계수를 색으로 칠한 표인 히트맵으로 한 번에 봅니다.

행복 점수 1인당 GDP 사회적 지지 건강 기대 수명 선택의 자유 관대함 부패 인식
행복 점수 1 0.78 0.83 0.75 0.66 0.044 −0.47
1인당 GDP 0.78 1 0.74 0.84 0.45 −0.16 −0.44
사회적 지지 0.83 0.74 1 0.73 0.54 0.037 −0.27
건강 기대 수명 0.75 0.84 0.73 1 0.42 −0.14 −0.34
선택의 자유 0.66 0.45 0.54 0.42 1 0.17 −0.38
관대함 0.044 −0.16 0.037 −0.14 0.17 1 −0.12
부패 인식 −0.47 −0.44 −0.27 −0.34 −0.38 −0.12 1

세계 행복 보고서 속성 간 상관계수 — 진한 파랑일수록 강한 양의 상관, 붉을수록 음의 상관
출처: UN 세계 행복 보고서 2023

읽는 법

대각선은 모두 1입니다. 자기 자신과의 상관이기 때문입니다. 표는 대각선을 기준으로 위아래가 대칭입니다. 「x와 y의 상관」과 「y와 x의 상관」이 같은 값이기 때문입니다.

행복 점수 말고도 보입니다

1인당 GDP와 건강 기대 수명이 0.84로 매우 강한 상관이 있습니다. 1인당 GDP가 높은 나라일수록 건강 기대 수명도 긴 경향이 있다는 뜻입니다. 행복 점수와 무관한 속성끼리의 관계도 이 표에서 함께 드러납니다.

스스로 확인

관대함의 상관계수가 0.04입니다. 그렇다면 「남을 돕는 것은 행복과 아무 상관이 없다」고 말해도 될까요? 친구가 운동 시간과 기분 점수를 조사했더니, 조금 운동한 날과 아주 오래 운동한 날은 기분이 낮고 알맞게 운동한 날이 가장 높았습니다. 이때 상관계수가 0에 가깝게 나올 수 있는 까닭도 함께 생각해 봅시다.

파일이 두 개로 나뉘어 있다면?

데이터 통합하기

관련성이 높은 두 데이터를 하나로 합치면 한 번에 분석할 수 있습니다. 합치는 방향은 옆으로 붙이기(열 기준)와 아래로 잇기(행 기준) 둘입니다. 옆으로 붙일 때는 무엇을 남길지에 따라 공통된 것만 · 기준 데이터셋 전부 · 모든 데이터의 세 가지로 다시 나뉩니다. 합친 뒤 겹치는 속성을 줄이는 속성 줄이기는 통합과 다른 작업이라 따로 봅니다.

열 기준

속성을 옆으로 이어 붙인다.
필요한 것 — 공통된 속성

행 기준

줄을 아래로 이어 붙인다.
필요한 것 — 구분할 새 속성

속성 줄이기(통합 뒤에 하는 일)

겹치는 속성을 하나로 줄인다.
필요한 것 — 상관계수

① 열 기준 — 옆으로 붙이기

여러 속성을 가진 두 데이터를 옆으로 붙이려면 같은 값을 갖는 공통된 속성이 있어야 합니다. 아래는 사과 생산량 데이터와 기후 데이터를 연도를 공통된 속성으로 삼아 한 파일로 합친 예입니다. 한쪽에만 있는 연도가 있다면 그 줄을 버릴지, 빈칸으로 남길지도 함께 정해야 합니다.

사과 생산량 데이터

연도재배 면적 (ha)10a당 생산량 (kg)생산량 (톤)
1980226671132256590
1981236971440341237
1982236351392328999

기후 데이터

연도평균 기온 (°C)최고 기온 평균 (°C)최저 기온 평균 (°C)강수량 (mm)
198021.825.9718.331853.83
198123.172818.831474.8
198223.1328.218.51187.17
연도재배 면적 (ha)10a당 생산량 (kg)생산량 (톤) 평균 기온 (°C)최고 기온 평균 (°C)최저 기온 평균 (°C)강수량 (mm)
198022667113225659021.825.9718.331853.83
198123697144034123723.172818.831474.8
198223635139232899923.1328.218.51187.17

연도를 공통 속성으로 삼아 옆으로 붙인 결과 — 연도 열은 하나만 남는다
[수업용 자료]

공통된 속성은 두 개 이상의 데이터를 연결하는 데 쓰이는 속성입니다. 이 속성이 있어야 어느 줄과 어느 줄을 붙일지 정할 수 있습니다. 합치고 나면 「그해 날씨와 그해 수확이 어떤 관계가 있는지」를 한 표 안에서 분석할 수 있습니다.

② 행 기준 — 아래로 붙이기

같은 속성을 가진 두 데이터를 아래로 붙일 때는 두 데이터를 구분할 수 있는 새로운 속성이 필요합니다. 아래는 후지와 홍로 데이터를 하나로 합치면서 품종 속성을 새로 넣은 예입니다.

후지 데이터

지역수확 일자과중 (g)당도 (°Brix)
포천2022-10-27280.213.8
화성2022-10-26337.415.3
김제2015-11-02329.614.6

홍로 데이터

지역수확 일자과중 (g)당도 (°Brix)
포천2022-09-0726814.1
화성2022-09-02358.312.5
완주2022-09-02258.913.4
지역수확 일자과중 (g)당도 (°Brix)품종
포천2022-10-27280.213.8후지
화성2022-10-26337.415.3후지
김제2015-11-02329.614.6후지
포천2022-09-0726814.1홍로
화성2022-09-02358.312.5홍로
완주2022-09-02258.913.4홍로

아래로 붙이면서 품종 속성을 새로 넣은 결과
출처: 농촌진흥청 과수생육 · 품질관리시스템

새 속성을 넣지 않으면 되돌릴 수 없습니다. 합치고 나면 어느 줄이 후지였고 어느 줄이 홍로였는지 알 방법이 사라지므로, 합치기 전에 품종 표시부터 남겨 둡니다.

생각해 봅시다 — 화이트 와인과 레드 와인 품질 데이터

와인 품질 데이터는 화이트 와인과 레드 와인이 각각 다른 파일로 제공됩니다. 두 파일을 합치려면 어떤 기준으로 합쳐야 할까요?

두 파일은 같은 속성을 가진 파일이므로, 사과 데이터와 마찬가지로 종류를 구분할 수 있는 새로운 속성을 추가하여 행 기준으로 합칠 수 있습니다.

데이터 수집: archive.ics.uci.edu/dataset/186/wine+quality

스스로 확인

학년 초 신체검사 기록과 학년 말 신체검사 기록을 합치려 합니다. 두 파일의 속성이 같다면 어느 기준일까요? 무엇을 새로 넣어야 할까요?

속성이 많으면 무조건 좋을까?

속성 줄이기 — 겹치는 것을 하나로 줄이기

속성 줄이기 — 겹치는 것을 하나로 줄이기

거의 같은 내용을 담은 속성 여럿을 하나로 묶어 줄이는 과정입니다. 겹치는 속성을 정리하면 분석과 모델링이 더 잘 되는 경우가 많습니다. 어떤 속성끼리 겹치는지는 상관계수로 판단합니다.

사과 품질 데이터로 예를 들어 봅니다. 사과 한 개마다 다음과 같은 속성이 측정되어 있습니다.

속성뜻
과중무게 (g)
종경 · 횡경세로 길이 · 가로 길이 (mm)
L/D 비율종경 ÷ 횡경. 1보다 작을수록 옆으로 납작하다
경도1 · 경도2같은 사과의 단단한 정도를 두 번 측정한 값
경도 평균경도1과 경도2의 평균
당도 · 산도단맛 · 신맛의 정도

사과 품질 데이터의 주요 속성
출처: 농촌진흥청 과수생육 · 품질관리시스템

이 속성끼리 상관계수를 구하면 유난히 높은 짝이 두 묶음 나옵니다.

종경과 횡경 — r = 0.94

종경(사과의 세로 길이)과 횡경(가로 길이)은 매우 강한 상관이 있습니다. 큰 사과는 세로도 가로도 크기 때문입니다.

둘 중 하나만 고르거나, 세로를 가로로 나눈 L/D 비율 한 속성으로 합칠 수 있습니다. 다만 L/D 비율은 모양(납작한 정도)만 남기고 크기는 버리므로, 크기가 필요한 분석이라면 하나를 고르는 편이 낫습니다.

경도1 · 경도2 · 경도 평균 — r = 0.98 이상

같은 사과를 두 번 측정한 값과 그 평균이므로 거의 같은 값입니다.

경도1과 경도2를 대표하는 경도 평균 하나만 남기면 됩니다.

속성이 많다고 좋은 것이 아닙니다. 거의 같은 이야기를 하는 속성이 여럿 있으면 그 이야기만 여러 번 세어지는 셈이 됩니다. 상관계수를 히트맵으로 그려 보면 어느 속성끼리 겹치는지가 한눈에 보이고, 그런 속성은 줄일 후보가 됩니다.

더 알아보기 — 다중 공선성

다중 공선성(multicollinearity)은 속성들끼리 상관이 너무 높을 때 생기는 현상입니다. 속성들이 서로 강하게 연결되어 있어 어느 속성이 얼마나 기여했는지 구분하기 어려워집니다. 이렇게 되면 모델의 예측력이나 해석력이 떨어질 수 있습니다.

속성 제거 상관관계가 높은 속성 중 하나를 모델에서 뺀다.
주성분 분석(PCA) 또는 요인 분석 여러 속성을 대표하는 새로운 속성을 만든다.

회귀 분석을 할 때 특히 주의해서 살펴야 하는 문제입니다.

스스로 확인

우리 반 중간고사 성적표와 기말고사 성적표가 따로 있습니다. 열 기준과 행 기준 중 어느 쪽으로 합쳐야 할까요? 합치려면 무엇이 필요할까요?

행복 점수가 높은 나라에는 무엇이 있을까?

실습 — 네 가지 방법을 처음부터 끝까지 실행해 봅니다

문제 상황

국제 연합(UN)은 매년 세계 행복 보고서를 발표합니다. 2023년 보고서에 따르면 핀란드에 이어 덴마크, 아이슬란드가 세계에서 가장 행복한 나라로 뽑혔습니다.

단계 1 문제 정의하기

세계 행복 보고서 데이터셋으로 나라별 행복 점수가 어떤 속성과 함께 움직이는지 분석해 봅시다.

단계 2 데이터 수집하기

캐글(kaggle)에서 세계 행복 데이터(2023)를 수집합니다.

kaggle.com/datasets/ajaypalsinghlo/world-happiness-report-2023

단계 3 데이터 전처리하기

이 단계에서 만들 워크플로

File

Preprocess

결측치 삭제

Select Columns

속성 분류

  1. File 위젯에서 데이터셋을 불러온 다음 Data Table 위젯을 연결합니다. info 칸을 보면 총 19개의 속성과 137개의 데이터 포인트로 이루어져 있고 결측치가 있음을 알 수 있습니다.
  2. 결측치를 처리하기 위해 File에 Preprocess 위젯을 연결합니다. 결측치 비율이 0.1% 이하이므로 삭제하고, Data Table로 확인합니다. 데이터 포인트가 136개로 줄어듭니다.
  3. Preprocess에 Select Columns 위젯을 연결하여 속성을 독립 변수와 종속 변수로 나눕니다.
Features
(독립 변수)
  • 1인당 GDP
  • 사회적 지지
  • 건강 기대 수명
  • 선택의 자유
  • 관대함
  • 부패 인식
Target
(종속 변수)
행복 점수

독립 변수는 답을 가늠하는 근거로 넣는 쪽, 종속 변수는 알아맞히려는 쪽입니다. 이 나눔은 분석의 역할일 뿐, 데이터가 인과를 보증해 주지는 않습니다. 우리가 알고 싶은 것이 「행복 점수가 어떤 속성과 함께 움직이는가」이므로 행복 점수를 Target에 둡니다. 19개 속성 중 7개만 남기는 이유는, 나머지가 이 질문에 답하는 데 필요 없기 때문입니다.

스스로 확인

19개 속성 중 7개만 남겼습니다. 버린 12개는 영영 필요 없는 속성일까요? 다른 질문을 던진다면 어떻게 될지 생각해 봅시다.

네 가지 방법을 실제로 실행해 볼까?

실습 단계 4 — 탐색적 데이터 분석하기

단계 4 탐색적 데이터 분석하기

앞에서 배운 통계 → 시각화 → 상관관계 순서로 차례로 실행해 봅니다.

(1) 통계적인 방법으로 분석하기

  1. Select Columns에 Feature Statistics 위젯을 연결하여 통계 요약 정보를 확인합니다.
  2. Healthy life expectancy(건강 기대 수명) 속성이 다른 속성값에 비해 값이 커서 정규화를 해 봅니다. 이 실습의 상관 분석에는 필요 없지만, 이어서 거리를 측정하는 방법으로 분석할 때를 대비하는 것입니다. Preprocess를 클릭하여 Normalize to interval [0, 1]을 선택합니다.
  3. Feature Statistics 위젯을 클릭하여 전체 데이터의 값이 0~1 사이로 정규화되었음을 확인합니다. 정규화는 값의 범위만 바꾸므로, 뒤에서 구할 상관계수는 정규화 전과 같습니다.
  4. File에 Distributions 위젯을 연결하면 통계 분포를 시각적으로 확인할 수 있습니다. Normal을 선택하면 정규분포곡선도 함께 보여 줍니다.

전처리가 먼저가 아닐 수도 있습니다. 여기서는 통계를 본 다음에야 정규화가 필요하다는 것을 알았습니다. 전처리와 탐색적 데이터 분석은 데이터에 따라 순서가 달라지고, 오가며 반복됩니다.

(2) 데이터 시각화로 분석하기

Select Columns에 Scatter Plot 위젯을 연결하면 속성 간의 관계를 시각화할 수 있습니다. x축에는 Social support(사회적 지지), y축에는 Ladder score(행복 점수)를 선택하고 산점도를 출력합니다.

Scatter Plot에서 상관계수를 함께 보려면 Show regression line을 선택합니다.

(3) 상관관계로 분석하기

Select Columns에 Correlations 위젯을 연결하여 Ladder score(행복 점수)를 선택하면 행복 점수와 다른 속성 간의 상관관계를 확인할 수 있습니다.

Ladder score와 Social support의 상관관계가 0.838로 가장 높습니다.

결과 분석 — 그래서 답이 무엇인가

행복 점수는 사회적 지지와 가장 상관이 높고(r = 0.838), 1인당 GDP, 건강 기대 수명, 선택의 자유와도 상관이 높게 나타났습니다. 반면 부패 인식과는 음의 상관관계가 있으며, 관대함과는 상관이 거의 없는 것으로 나타났습니다.

이 결과로 보면 사회적 지지가 높은 나라일수록 행복 점수도 높은 경향이 가장 뚜렷하고, 소득과 건강 기대 수명이 높은 나라일수록, 선택의 자유가 많은 나라일수록, 부패 인식이 낮은 나라일수록 행복 점수가 높은 경향이 있습니다.

다만 이것은 두 속성이 함께 움직인다는 것까지만 말해 줍니다. 무엇이 무엇의 원인인지는 이 분석으로 알 수 없고, 나라 단위의 평균에서 나온 관계를 개인에게 그대로 옮겨 읽어서도 안 됩니다.

단계 1에서 던진 질문에 문장으로 답이 나왔습니다. 숫자를 구하는 것으로 끝나지 않고 사람이 읽을 수 있는 문장으로 옮기는 것까지가 탐색적 데이터 분석입니다.

더 알아보기 — 이상치를 처리하면 결과가 달라집니다

상자 그림을 이용하면 이 데이터에 이상치가 있는지 쉽게 확인할 수 있습니다. 제1사분위수와 제3사분위수로 아래쪽 · 위쪽 이상치 기준을 계산하고, Select Rows 위젯에서 그 사이의 값만 선택하여 이상치를 처리합니다.

속성명제1사분위수제3사분위수 IQR × 1.5아래쪽 이상치 기준위쪽 이상치 기준
행복 점수4.6816.3512.512.188.86
1인당 GDP8.5810.542.945.6413.48
사회적 지지0.720.8960.260.461.16
건강 기대 수명60.59969.47513.3147.2982.79
선택의 자유0.7250.8750.230.501.10
관대함−0.0720.1180.29−0.360.40
부패 인식0.6640.8460.2730.3911.119

사분위수로 계산한 이상치 기준

이상치를 처리하고 산점도를 다시 보면 사회적 지지와 행복 점수의 상관계수가 0.838에서 0.81로 낮아집니다. 상관관계를 다시 구하면 1인당 GDP가 가장 높아지고, 사회적 지지, 건강 기대 수명 순이 됩니다.

순위가 바뀌었습니다. 같은 데이터인데 어떻게 전처리했느냐에 따라 결론이 달라진 것입니다. 그래서 분석 결과를 말할 때는 어떤 처리를 거쳤는지 함께 밝혀야 합니다.

이 데이터셋은 속성 줄이기가 필요할까?

꼭 필요하지는 않습니다. 세계 행복 보고서 데이터셋은 행복 점수 같은 설문 응답에 1인당 GDP · 건강 기대 수명 같은 통계를 더해 나라별로 모은 데이터입니다. 1인당 GDP와 건강 기대 수명(0.84)처럼 강한 상관이 있는 짝은 있지만, 사과의 경도1 · 경도2처럼 같은 것을 거듭 측정한 속성은 없습니다.

속성 줄이기는 늘 하는 것이 아니라, 히트맵을 보고 필요할 때 하는 것입니다.

스스로 확인

이상치를 처리했더니 1위가 사회적 지지에서 1인당 GDP로 바뀌었습니다. 그렇다면 어느 쪽이 맞는 답일까요? 답을 하나로 고를 수 없다면, 보고서에는 무엇을 적어야 할까요?

핵심 정리

탐색적 데이터 분석

EDA

  • 데이터의 성질과 짜임새를 알아내는 과정
  • 살펴보기 · 통계 · 시각화 · 상관관계 네 가지 방법
  • 데이터사우루스 — 통곗값이 같아도 그림은 전혀 다를 수 있다
  • 순서는 고정되지 않는다 — 전처리와 오가며, 결과에는 어떤 처리를 거쳤는지 함께 밝힌다

기술 통계

데이터를 몇 개의 숫자로

  • 개수 · 평균 · 분산 · 표준 편차 · 최댓값 · 최솟값 · 중앙값 · 사분위수
  • count가 혼자 적으면 그 속성에 결측치가 있다
  • 분석의 결과가 아니라 전처리로 이어지는 출발점

상관계수 r

−1 ~ 1

  • 부호는 방향(양 · 음), 절댓값은 강도
  • r = 0은 선형 관계가 없다는 뜻 — 비선형은 있을 수 있다
  • 속성이 많으면 히트맵으로 모든 짝을 한 번에

데이터 통합과 속성 줄이기

합치는 두 방향과 그 뒤의 정리

  • 열 기준 — 옆으로. 공통된 속성이 필요
  • 행 기준 — 아래로. 구분할 새 속성이 필요
  • 속성 줄이기 — 통합과 다른 일. 겹치는 것을 줄인다. 상관계수로 판단

확인 퀴즈

배운 내용을 확인해 봅시다.

Q1

데이터사우루스가 보여 주는 것은 무엇인가?

Q2

기술 통계표에서 다른 속성은 count가 137인데 한 속성만 136입니다. 무엇을 뜻하는가?

Q3

두 속성의 상관계수가 r = −0.85입니다. 옳은 해석은?

Q4

후지 데이터와 홍로 데이터는 속성이 서로 같습니다. 이 둘을 하나로 합치려면?

Q5

실습에서 이상치를 처리했더니 상관관계 1위가 바뀌었습니다. 이것이 알려 주는 것은?