발표 계기
한국의 행복지수는 59위
한국의 행복지수가 146개국 중 59위인 것으로 나타났다. 유엔 산하 자문기구인 지속가능발전해법네트워크(SDSN)는 18일(현지시간)일 이 같은 내용을 담은 '2022 세계 행복보고서'를 공개했다. SDSN은 2012년부터 국가 국내총생산(GDP), 기대수명, 사회적 지지, 자유, 부정부패, 관용 등 6개 항목의 3년치 자료를 토대로 행복지수를 산출해 순위를 매겼다. 59위인 한국은 GDP나 기대수명 항목에서는 수치가 높았지만, 나머지 항목이 이에 못 미친 것으로 나타났다.
핀란드가 세계 행복지수 1등… 과연 그 이유는?
광범위한 복지 혜택, 낮은 수준의 부패, 제대로 작동하는 민주주의, 주입된 자유와 자율성으로 인해 많은 국제 기구로부터 오랫동안 찬사를 받아 왔다. 누진세와 부의 분배 덕분에 보편적인 의료 시스템이 번성할 수 있었고, 놀랍게도 핀란드인의 80% 이상이 경찰을 신뢰한다 . 이는 다른 많은 국가에서 주장할 수 있는 것보다 훨씬 많다.
핀란드는 노키아, 로비오(앵그리 버드 개발사), 슈퍼셀(클래시 오브 클랜 제작사), 엘리베이터 제조사 코네(KONE)와 같은 세계적인 브랜드를 세계 경제에서 오랫동안 밀어붙여 세계 경제에서 차지하는 비중을 넘어섰다.
핀란드는 불평등과의 싸움에서 오랫동안 예외적인 국가였다. 전 세계 대부분의 국가에서 빈부 격차가 벌어지고 있는 시기에 핀란드는 최빈곤층 시민들을 돌볼 수 있도록 지속적으로 노력해 왔다. 불평등에 대한 투쟁은 많은 국가들이 지속적으로 투쟁하고 있는 것이지만, 핀란드는 그 과정을 유지하고 우선 순위 목록에서 최우선 순위를 유지하기 위해 노력한 국가다.
행복한 나라란 무엇인가?.. 우리나라가 행복한 국가가 되려면…
우리는 보통 많은 부에는 행복이 뒤따른다고 생각한다. 하지만 GDP 1위인 미국은 2022 세계 행복 지수 보고서에서 16위를 차지했고 심지어 GDP 2위인 중국은 74위를 차지하였다. 이 결과는 우리가 익히 알고 있는 상식과는 배치된다. 돈이 많아야 행복할 수 있다는 생각과 현실은 일치하지 않는다.
개인의 삶과 별개로, 대한민국은 행복한 국가일까? 이 질문에 쉽게 그렇다고 이야기하는 사람은 적을 것이다. 대한민국이 행복한 국가가 되기 위해서는 그러한 국가들의 특성에 대해서 알아야 할 필요가 있다. 세계 행복 보고서의 조사 기간 중 평균적으로 가장 행복하다고 나타난 세 국가는 핀란드, 덴마크, 그리고 노르웨이이다. 이 국가들은 어떠한 요소를 가지고 있을까? 혹은 어떠한 방식으로 나라를 운영해야 핀란드, 덴마크, 노르웨이와 같은 행복한 나라로 나아갈 수 있는가? 우리는 이 의문들에 답하기 위해 세계 행복 보고서 안의 데이터를 가공하여 이를 시각화하고, 궁극적으로 머신러닝을 통해 행복과 각 변수들 간의 상관관계에 대해 분석해보고자 한다.
데이터 소개
이번 데이터는 세계행복보고서에서 발표한 각 국가의 행복지수를 2015년에서 2022년까지 다운받아, 이를 토대로 데이터 시각화 및 머신러닝으로 분석을 진행하였다.
•
세계행복보고서
1.
유엔 산하 자문기구인 지속가능발전 해법네트워크가 매년 발표하는 보고서로, 세계 각 나라 거주민들의 행복을 정량화하여 행복지수로 표현하고, 이를 통해 정부, 기업 및 시민 사회가 행복에 관한 복지를 평가 및 피드백할 수 있도록 한다.
2.
각 나라별 1000명의 사람들에게 자신의 삶의 만족도를 조사한 갤럽의 월드 폴(World Poll)을 바탕으로 구매력 기준 GDP, 기대수명, 사회적 지지, 선택의 자유, 아량, 부정부패 등 6가지 변수를 고려하여 평가한다.
•
세계행복보고서 데이터 소개
1.
2015-2022년 세계 각 국의 행복지수 및 다른 변수 데이터
2.
Target Value - Score(행복지수)
3.
Feature Data columns - Year(연도), Country(나라), Region(지역), Economy(경제지수), Health(건강지수), Social Support(사회적 지지), Freedom(자유지수), Trust(신뢰지수), Score(행복지수)
4.
Numbers of Data - 936 (117 x 8)
데이터 EDA(Exploratory Data Analysis)
데이터 변수 처리
데이터 값 처리
데이터 형상 파악하기
데이터 형상 파악하기
pairplot
상관분석(Correlation Analysis)
가장 행복한 국가 / 지역 Top 7
Code
•
가장 행복한 나라는 앞의 기사에서 살펴보았듯이 핀란드가 1등을 차지하였다. 다음으로 덴마크, 노르웨이, 스위스 등 서유럽 국가(원래 중부 및 북부 유럽이지만, 데이터에서는 서부 유럽으로 표기)가 대거 포진되어 있음을 알 수 있다.
•
행복한 나라 Top 7 중 캐나다가 포함되어 있어, 유일하게 북미 국가 중 가장 행복한 나라 중 하나로 선정된 것을 알 수 있다. 이는 캐나다가 살기 좋은 나라라는 우리의 인식과 크게 다르지 않다고 볼 수 있다.
•
지역별로 살펴보면 호주 및 뉴질랜드가 가장 행복한 지역으로 선정되었다. 호주나 뉴질랜드가 가장 행복한 지역이 아님에도 이 지역이 가장 행복한 지역으로 선정된 이유에는 서유럽에 비해 평균적인 행복도가 대부분 높다고 예측할 수 있다.
•
그 다음으로 행복한 나라 1-6위가 있는 서유럽이 행복지수 2등, 북미가 행복지수 3등으로 뽑혔다.
•
심지어 동아시아보다 평균 GDP가 낮은 서남부 아시아, 중북부유럽이 행복지수 6-7등에 선정되었다. → 경제지수만이 행복지수에 절대적이지 않다는 것을 알 수 있다.
행복지수 제외 요인별 최고 국가 분석
•
경제 지수는 구매력평가(PPP)의 1인당 GDP(변동명 gdp) 통계는 세계개발지표(WDI)의 2021년 12월 16일 갱신된 것이다. (GDP per capita by PPP - 구매력 지수)
→ 국가별 경제지수에서 1등을 차지한 국가는 싱가포르임을 알 수 있다. 그 다음으로는 아일랜드, UAE, 스위스 순으로 높다. 구매력 평가지수가 1인당 GDP와 크게 관련이 있다.
(개인이 평균적으로 부가 많아야 구매력 지수가 증가한다는 우리의 직관과 비슷함)
•
건강 지수는 세계보건기구(WHO) 글로벌 건강관측소 데이터 저장소에서 추출한 데이터를 기반으로 한다.
→ 건강 지수 또한 1등을 차지한 국가는 싱가포르이다. 그 다음으로는 일본, 스페인, 스위스 순임을 알 수 있다.
•
사회적 지지도는 다음 질문에 대한 이진 응답(0 또는 1)의 국가 평균으로 구성된다. “만약 여러분이 어려움에 처했다면, 여러분은 필요할 때마다 여러분을 도와줄 수 있는 친척이나 친구들이 있나요, 아니면 그렇지 않나요?”
→ 사회적 지지도에서는 아이슬랜드가 1위를 차지하였다. 그 다음으로는 뉴질랜드, 핀란드, 덴마크 순이다.
•
자유 지수는 다음 질문에 대한 응답의 국가 평균으로 구성된다. "당신은 당신의 인생에서 무엇을 할 것인지 선택할 수 있는 자유에 만족합니까, 아니면 불만입니까?
→ 자유 지수에서 1등을 차지한 국가는 캄보디아이다. 그 다음으로 핀란드, 노르웨이, 우즈베키스탄이 선정되었다.
•
관용 지수는 1인당 GDP에서 다음과 같은 질문의 응답으로 나눈 것으로 구성된다. "지난 달에 자선단체에 돈을 기부한 적이 있나요?”
→ 관용 지수에서 미얀마가 1등을 차지했고, 그 다음으로 태국, 인도네시아가 선정되었다.
지역별 행복지수 분포
•
전반적으로 서유럽, 북미, 호주 및 뉴질랜드가 행복 지수에서 상위권을 차지하고 있는데, 이는 핀란드, 노르웨이, 덴마크, 캐나다, 호주 등 행복과 관련된 지수 등이 전반적으로 높기 때문에 이루어진 것으로 볼 수 있다.
•
서아시아는 분포가 떨어져 있는데, 이는 인도와 파키스탄 등 상대적으로 경제, 건강 및 사회적 지지도 측면에서 여유가 있는 국가도 있지만, 탈레반이 집권하는 아프가니스탄에는 전반적으로 사회적 자유가 굉장히 제한되는 등 행복 지수가 크게 낮기 때문인 것으로 볼 수 있다.
•
중부 및 동유럽 국가의 행복 지수가 상대적으로 밀접되어 있는 모습을 볼 수 있는데, 그 이유는 구 소련으로 이루어진 하나의 국가로 지냈던 시절이 불과 30년 전까지 이루어져 있었기에 이에 대한 동질성이라고 생각하면 좋을 것 같다.
•
한국이 속한 동아시아는 행복 지수가 평균보다 살짝 위에서 형성되어 있는 모습을 볼 수 있다.
행복에 영향을 많이 준 요인은? (요인 탐색)
•
후반부에는 본격적으로 머신러닝으로 행복에 미치는 요인에 대해서 분석하므로, 여기서는 간단하게 행복에 반영된 점수를 간단히 탐색해보도록 한다.
•
먼저, 관용 지수와, 신뢰 지수는 행복 지수에서 낮은 비중을 차지할 것으로 예상된다. 그 이유는 두 지수 평균 및 분포 비중이 0.5를 넘지 못하므로 다른 지수보다 영향력이 적기 때문이다.
•
다음으로 경제지수와 사회적 지지도는 행복 지수에서 큰 요인이 될 것으로 기대되는데, 그 이유는 경제 지수와 사회적 지지도 모두 평균 1점을 넘어가고, 분포 자체가 다른 요인보다 크기 때문이다.
•
그래서 행복에 영향을 가장 많이 줄 것으로 생각되는 세 가지 요인(경제, 건강, 사회적 지지도 지수)을 시간 순서대로 나타내보았다.
동아시아에서의 행복지수 및 요인 추이
•
2015년에서 2022년까지의 동아시아에서의 행복지수를 살펴볼 때, 일본, 한국, 중국 순임을 알 수 있다. 한국과 일본은 비슷한 분포를 형성한다고 볼 수 있고, 중국의 분포는 상대적으로 넓게 퍼져 있음을 알 수 있다. 중국의 분포가 넓게 퍼져 있는 이유는 중국의 경제 성장과 건강 지수 증가로 행복 지수가 점점 증가하였기 때문이다.
•
행복에 영향을 가장 많이 줄 것으로 생각되는 세 가지 요인을 시간 추이에 따라 시각화를 진행하였다.
1.
동아시아의 행복지수에서 봤듯이, 전반적으로 일본의 행복지수가 가장 높고, 한국의 행복지수는 이보다 살짝 낮다는 것을 알 수 있다. 시기적으로 보면 2020년의 행복지수는 전반적으로 떨어져 있다는 것을 알 수 있는데, 이는 코로나 19의 영향 때문인 것으로 보인다. 코로나 19의 성장세가 둔화된 2022년에는 전반적으로 행복지수나 이에 관련된 지수가 전반적으로 오른 것을 볼 수 있다.
2.
세부 지표를 살펴보면 2021년의 경제지수는 동아시아 3국 모두 상승하고 있지만, 이에 반해 동아시아의 건강 지수와 사회적 지지도 모두 떨어져 있는 모습을 볼 수 있다. 대체로 ‘경제적’ 측면과 ‘사회·정치적’ 측면 간의 불균형이 빚어지고 있음을 알 수 있다. 이는 동아시아 3국의 행복지수에 부정적 영향으로 작용하고 있다. 따라서 동아시아의 행복지수 상승을 위해서는 경제적 측면 뿐만 아니라 사회·정치적 측면의 성장으로 불균형이 개선되어야 함을 시사한다.
행복한 국가는 어떤 국가일까?
#다항 선형 회귀 분석 실시
코드
회귀 분석을 실시한 결과, r-squared 값은 0.75, adjusted r-squared도 0.75로 나왔으며 6개의 변수의 p-value값이 모두 0.001 이하로 모든 변수가 유의하다고 판단할 수 있다.
회귀 식은
따라서, 회귀 분석 결과 신뢰도(부패 지수)가 가장 큰 영향을 주는 것으로 드러났고 다음으로 자유도, 건강 지수, 경제 지수 순서로 영향을 미치는 것으로 볼 수 있다. 사회적 지지도와 관용도는 행복을 측정하는 데에 상대적으로 영향력이 덜한 것으로 판단된다.
그런데, 선형 모델보다 비선형 모델이 예측하는데 더 타당할 것 같아서 여러 모델들로 score(행복 지수)를 예측해보고 이때의 feature importance를 확인해보고자 했다.
y_target=df['Score']
X_data=df.drop(['Score','Year','Country','Region'],axis=1,inplace=False)
X_train, X_test, y_train, y_test=train_test_split(X_data,y_target,test_size=0.3,random_state=42)
from sklearn.model_selection import cross_val_score
def get_model_cv_prediction(model,X_data,y_target):
neg_mse_scores=cross_val_score(model,X_data,y_target,scoring="neg_mean_squared_error",cv=5)
rmse_scores=np.sqrt(-1*neg_mse_scores)
avg_rmse=np.mean(rmse_scores)
print(model.__class__.__name__)
print('5 교차 검증의 평균 RMSE : {0:.3f} '.format(avg_rmse))
from sklearn.tree import DecisionTreeRegressor
from sklearn.ensemble import RandomForestRegressor
from sklearn.ensemble import GradientBoostingRegressor
from xgboost import XGBRegressor
from lightgbm import LGBMRegressor
dt_reg=DecisionTreeRegressor(random_state=42)
rf_reg=RandomForestRegressor(random_state=42)
gb_reg=GradientBoostingRegressor(random_state=42)
xgb_reg=XGBRegressor(random_state=42)
lgb_reg=LGBMRegressor(random_state=42)
models=[dt_reg,rf_reg,gb_reg,xgb_reg,lgb_reg]
for model in models:
get_model_cv_prediction(model,X_data,y_target)
[결과]
DecisionTreeRegressor
5 교차 검증의 평균 RMSE : 0.719
RandomForestRegressor
5 교차 검증의 평균 RMSE : 0.535
GradientBoostingRegressor
5 교차 검증의 평균 RMSE : 0.540
XGBRegressor
5 교차 검증의 평균 RMSE : 0.564
LGBMRegressor
5 교차 검증의 평균 RMSE : 0.555
Python
복사
다양한 모델로 머신러닝을 돌려본 결과 randomforest의 예측 성능이 가장 좋았다.
RMSE 값의 타당성을 확인하기 위해 train data의 y 분포를 확인한다.
y_train.describe()
count 655.000000
mean 5.629539
std 1.074349
min 2.404000
25% 4.831400
50% 5.739000
75% 6.367200
max 7.842000
Python
복사
보통 y의 std * 0.5 범위 내에 RMSE 값이 있다면 rmse이 값이 타당하다고 판단되는데, y값의 std가 1.075, randomforest의 RMSE 값이 0.535로, 랜덤포레스트의 성능이 괜찮은 것으로 보인다.
각각의 모델에서 피처별 중요도를 알아보고자 한다.
#Decision Tree
Economy 의 중요도가 절대적이고 Trust , Health 순으로 나타났고, Generosity는 decision tree 계산 과정에 하는 역할이 거의 없는 것으로 드러났다.
#Random Forest
가장 성능이 좋았던 랜덤 포레스트의 중요도는 Economy, Health, Trust 순이었다.
#gbm
gradient boosting machine은 랜덤 포레스트의 피처 중요도 결과와 유사하게, Economy, Health, Trust 순서로 중요도가 높은 것으로 드러났다.
#xgb
xbgoost는 Health, Economy, Trust 순으로 피처 중요도가 높았다.
#lgb
lightGBM은 다른 모델들과 비교했을 때, 중요도 분포가 확연히 다르다. Social Support, Freedom, Economy, Trust, Generosity, Health 순이었지만 6개의 수치들에 큰 차이는 없었다.
머신러닝 모델들로 살펴본 결과, 경제, 건강, 신뢰가 행복한 국가를 결정짓는데 중요한 요소인 것으로 드러났다.
행복지수를 예측해보자
/
#categorical 변수 알아보기 - Region
#Region_value_counts()
Central and Eastern Europe 192
Sub-Saharan Africa 168
Western Europe 152
Latin America and Caribbean 144
Middle East and Northern Africa 104
Southeastern Asia 64
Southern Asia 48
Eastern Asia 32
North America 16
Australia and New Zealand 16
Name: Region, dtype: int64
Python
복사
#Region에 따른 행복지수 Boxplot
→ 지역에 따라 행복지수에 차이가 있는 것으로 보이나 one-hot encoding을 진행하기에 값의 종류가 많다고 판단하여, 인코딩을 진행했을 때와 진행하지 않을 때 모두를 비교해보기로 함
#numerical 변수들과 score의 관계 파악
fig, axs=plt.subplots(figsize=(16,8),ncols=3,nrows=2)
for i, feature in enumerate(num):
row=int(i/3)
col=i%3
sns.regplot(x=feature,y='Score',data=df,ax=axs[row][col])
Python
복사
#decision tree
#random forest
#gradient boosting
#xgb
#lgb
결론
2010~2012년 41위를 기록한 이후 2018~2020년 62위로 행복 순위가 추세적 하락세를 보이고 있는 현 상황의 원인을 ‘사회 정치적’ 측면의 미발달로 생각할 수 있다. ‘한강의 기적’ 이라고 알려진 우리나라의 경제 성장은 전 세계를 보아도 사례가 몇 없는, 정말 기적에 가까운 발전 속도를 지녔었다. 하지만 반대급부로 발전한 경제 수준에 시민의식이 따라가지 못하는 윤리적 공백 문제가 사회 이슈로 대두되기도 했다. 우리 팀은 윤리적 공백 문제가 낮은 행복도의 결과로 표출된 것이라고 생각한다. 특히 ‘사회·정치적’ 요소 중 행복에 큰 영향을 주는 신뢰 부분의 사회 전반적 향상을 촉구해야 모두가 행복한 대한민국으로 발돋움할 수 있을 것이다.