
CDA數(shù)據(jù)分析師 出品
作者:真達、Mika
數(shù)據(jù):真達
【導讀】
今天教大家用python分析《世界幸福指數(shù)報告》。《世界幸福指數(shù)報告》是對全球幸福狀況的一次具有里程碑意義的調(diào)查。
民意測驗機構(gòu)蓋洛普從2012年起,每年都會在聯(lián)合國計劃下發(fā)布《世界幸福指數(shù)報告》,報告會綜合兩年內(nèi)150多個國家的國民對其所處社會、城市和自然環(huán)境等因素進行評價后,再根據(jù)他們所感知的幸福程度對國家進行排名。
《世界幸福指數(shù)報告》的編撰主要依賴于對150多個國家的1000多人提出一個簡單的主觀性問題:“如果有一個從0分到10分的階梯,頂層的10分代表你可能得到的最佳生活,底層的0分代表你可能得到的最差生活。你覺得你現(xiàn)在在哪一層?”
那么哪個國家在總體幸福指數(shù)上排名最高?哪些因素對幸福指數(shù)的影響最大?今天我們就帶你用Python來聊一聊。
01、數(shù)據(jù)理解
關(guān)鍵字段含義解釋:
1. rank:幸福指數(shù)排名
2. region:國家
3. happiness:幸福指數(shù)得分
4. gdp_per_capita:GDP(人均國內(nèi)生產(chǎn)總值)
5. healthy_life_expectancy:健康預(yù)期壽命
6. freedom_to_life_choise:自由權(quán)
7. generosity:慷慨程度
8. year:年份
9. corruption_perceptions:清廉指數(shù)
10. social_support:社會支持(客觀上物質(zhì)上的援助和直接服務(wù);主觀上指個體感到在社會中被尊重、被支持和被理解的情緒體驗和滿意程度。)
02、數(shù)據(jù)導入和數(shù)據(jù)整理
首先導入所需包。
# 數(shù)據(jù)整理 import numpy as np import pandas as pd # 可視化 import matplotlib.pyplot as plt import seaborn as sns import plotly as py import plotly.graph_objs as go import plotly.express as px from plotly.offline import init_notebook_mode, iplot, plot init_notebook_mode(connected=True) plt.style.use('seaborn')
# 讀入數(shù)據(jù) df_2015 = pd.read_csv('./deal_data/2015.csv') df_2016 = pd.read_csv('./deal_data/2016.csv') df_2017 = pd.read_csv('./deal_data/2017.csv') df_2018 = pd.read_csv('./deal_data/2018.csv') df_2019 = pd.read_csv('./deal_data/2019.csv') # 新增列-年份 df_2015["year"] = str(2015) df_2016["year"] = str(2016) df_2017["year"] = str(2017) df_2018["year"] = str(2018) df_2019["year"] = str(2019) # 合并數(shù)據(jù) df_all = df_2015.append([df_2016, df_2017, df_2018, df_2019], sort=False) df_all.drop('Unnamed: 0', axis=1, inplace=True) df_all.head()
print(df_2015.shape, df_2016.shape, df_2017.shape, df_2018.shape, df_2019.shape) (158, 10) (157, 10) (155, 10) (156, 11) (156, 11)
df_all.info()
<class 'pandas.core.frame.DataFrame'> Int64Index: 782 entries, 0 to 155 Data columns (total 10 columns): region 782 non-null object rank 782 non-null int64 happiness 782 non-null float64 gdp_per_capita 782 non-null float64 healthy_life_expectancy 782 non-null float64 freedom_to_life_choise 782 non-null float64 corruption_perceptions 781 non-null float64 generosity 782 non-null float64 year 782 non-null object social_support 312 non-null float64 dtypes: float64(7), int64(1), object(2) memory usage: 67.2+ KB
2019世界幸福地圖
整體來看,北歐的國家幸福指數(shù)較高,如冰島、丹麥、挪威、芬蘭;東非和西非的國家幸福指數(shù)較低,如多哥、布隆迪、盧旺達和坦桑尼亞。
代碼展示:
data = dict(type = 'choropleth', locations = df_2019['region'], locationmode = 'country names', colorscale = 'RdYlGn', z = df_2019['happiness'], text = df_2019['region'], colorbar = {'title':'Happiness'}) layout = dict(title = 'Geographical Visualization of Happiness Score in 2019', geo = dict(showframe = True, projection = {'type': 'azimuthal equal area'})) choromap3 = go.Figure(data = [data], layout=layout) plot(choromap3, filename='./html/世界幸福地圖.html')
2019世界幸福國家排行Top10
2019年報告,芬蘭連續(xù)兩年被評為“全球最幸福國家”。丹麥、挪威、冰島、荷蘭進入前五名,對比2018年報告,中國從86名下降到93名。
代碼展示:
# 合并數(shù)據(jù) rank_top10 = df_2019.head(10)[['rank', 'region', 'happiness']] last_top10 = df_2019.tail(10)[['rank', 'region', 'happiness']] rank_concat = pd.concat([rank_top10, last_top10]) # 條形圖 fig = px.bar(rank_concat, x="region", y="happiness", color="region", title="World's happiest and least happy countries in 2019") plot(fig, filename='./html/2019世界幸福國家排行Top10和Last10.html')
幸福指數(shù)相關(guān)性
我們可以得出以下結(jié)論:
以下分別觀察各個因素的影響程度。
GDP和幸福得分
人均GDP與幸福得分呈高度線性正相關(guān)關(guān)系,GDP越高的國家,幸福水平相對越高。
代碼展示:
# 散點圖 fig = px.scatter(df_all, x='gdp_per_capita', y='happiness', facet_row='year', color='year', trendline='ols' ) fig.update_layout(height=800, title_text='GDP per capita and Happiness Score') plot(fig, filename='./html/GDP和幸福得分.html')
健康預(yù)期壽命和幸福得分
健康預(yù)期壽命與幸福得分呈高度線性正相關(guān)關(guān)系,健康預(yù)期壽命越高的國家,幸福水平相對越高。
代碼展示:
散點圖 fig = px.scatter(df_all, x='healthy_life_expectancy', y='happiness', facet_row='year', color='year', trendline='ols' ) fig.update_layout(height=800, title_text='Healthy Life Expecancy and Happiness Score') plot(fig, filename='./html/健康預(yù)期壽命和幸福得分.html')
GDP和幸福水平動態(tài)圖
代碼展示:
fig = px.scatter(df_all, x='gdp_per_capita', y='happiness', animation_frame='year', animation_group='region', size='rank', color='region', hover_name='region', trendline='ols' ) fig.update_layout(title_text='Happiness Rank vs GDP per Capita') plot(fig, filename='./html/GDP和幸福水平動態(tài)圖展示.html')
健康預(yù)期壽命和幸福水平動態(tài)圖
代碼展示:
fig = px.scatter(df_all, x='healthy_life_expectancy', y='happiness', animation_frame='year', animation_group='region', size='rank', color='region', hover_name='region', trendline='ols' ) fig.update_layout(title_text='Happiness Rank vs healthy_life_expectancy') plot(fig, filename='./html/健康預(yù)期壽命和幸福水平動態(tài)圖展示.html')
我們使用線性回歸進行建立一個基準模型,首先篩選一下建模變量,并刪除空值記錄。
sel_cols = ['happiness', 'gdp_per_capita', 'healthy_life_expectancy', 'freedom_to_life_choise', 'corruption_perceptions', 'generosity'] # 重置索引 df_model.index = range(df_model.shape[0]) df_model = df_all[sel_cols] # 刪除空值 df_model = df_model.dropna() df_model.head()
from statsmodels.formula.api import ols # 建立多元線性回歸模型 lm_m = ols(formula='happiness ~ gdp_per_capita + healthy_life_expectancy + freedom_to_life_choise + corruption_perceptions + generosity', data=df_model).fit() lm_m.summary()
模型的R-squared=0.744,擬合效果尚可,根據(jù)模型的參數(shù)可知:
比較預(yù)測值和真實值的分布:
df_pred = pd.concat([df_model['happiness'], y_pred], axis=1) df_pred.columns = ['y_true', 'y_pred'] # 散點圖 fig = px.scatter(df_pred, x='y_true', y='y_pred', trendline='ols') fig.update_layout(title='Resid of OLS Regression') plot(fig, filename='./html/預(yù)測值和真實值分布圖.html')
以下為模型殘差分布圖。
fig = px.histogram(x=lm_m.resid) fig.update_layout(title='Resid of OLS Regression') plot(fig, filename='./html/多元線性回歸殘差分布圖.html')
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報考條件詳解與準備指南? ? 在數(shù)據(jù)驅(qū)動決策的時代浪潮下,CDA 數(shù)據(jù)分析師認證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計的實用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實施重大更新。 此次更新旨在確保認 ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時代,BI ...
2025-07-10SQL 在預(yù)測分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢預(yù)判? ? 在數(shù)據(jù)驅(qū)動決策的時代,預(yù)測分析作為挖掘數(shù)據(jù)潛在價值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點,而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報考到取證的全攻略? 在數(shù)字經(jīng)濟蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗:捕捉數(shù)據(jù)背后的時間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時間維度的精準切片? ? 在數(shù)據(jù)的世界里,時間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準 ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗:數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對策略? 長短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨特的門控機制,在 ...
2025-07-07統(tǒng)計學方法在市場調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場調(diào)研是企業(yè)洞察市場動態(tài)、了解消費者需求的重要途徑,而統(tǒng)計學方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03