首页 > 代码库 > 用Power BI观察经济与健康的关系
用Power BI观察经济与健康的关系
Hans Rosling是卡罗琳学院的国际卫生学教授,这位学者与众不同的技能是数据可视化,以直观的数据展现了令人信服的世界观,并且在gapminder.org提供无偿展示以及下载。如果你没有看过以下的TED讲座,真心建议你花点时间,保证物有所值:
- Hans Rosling: Asia’s rise — how and when
- Hans Rosling: Let my dataset change your mindset
这里,我们想通过Power BI模仿Hans Rosling来观察一下经济与健康之间的关系。经济数据最直接的就是GDP了,好在The World Bank提供了1960年至今的数据。健康指标有许多,比如预期寿命,不过我们这里想采用的是Body Mass Index身体指数。简而言之,BMI就是体重(公斤)除以身高的平方(米),是目前国际上常用的衡量人体胖瘦程度以及是否健康的一个标准,一般而言在18.5到25之间是比较合适的。我们感兴趣的是,一个国家经济越景气,人民的BMI是否越和谐。感谢Gapminder提供了从1980年到2008年的数据。当然,我们最好再加上一个人口维度,以便观察世界主要国家,数据也可以从The World Bank下载。
首先用Power Query准备数据。好在Gapminder和The World Bank都提供了Excel格式输出,下载完毕之后可以直接导入。这里有个技巧就是逆透视。比如,Gapminder提供了某个国家逐年的BMI数据,可惜透视完了的数据无法做分析的:
所以需要选中所有的年份列,然后选择Unpivot指令,整理以后如下所示:
对GDP以及人口数据做同样的操作,不再赘述。
接下来要对数据建模,以便聚合并分析。关于数据建模,第一步就是找到不同数据源列与列之间的关系。一种做法就是利用Power Query的Merge功能,具体做法请参考用Power BI展示中国摩天大楼一文。另一种做法就是直接利用PowerPivot建立内外键。个人感觉,Power Query的Merge功能仅仅对小型的数据集比较合适,对于大型数据,PowerPivot更有效率。这里采用后者,术业有专攻嘛。
老规矩,先把刚才所有建立的query全部导入Power Pivot中,然后建立之间的关系。很明显,三个数据集直接的关联就是Country和Year这对组合键。由于PowerPivot并不支持组合键的关联,我们需要分别建立计算列,=[Country] & “@” & [Year],命名为Id,然后关联起来即可:
最后就可以展示数据啦。新建一个Power View,X VALUE放GDP,Y VALUE放BMI,SIZE放Population以示区别,DETAILS和COLOR都放Country,最后在PLAY AXIS放Year。考究一点的,还可以过滤人口在五千万以上,以及仅仅显示1979至2009年之间的数据。结果如下:
其中,横轴是GDP,越大经济越好;纵轴是BMI,18至25之间都合理;圆圈大小代表国家人口。结果是以动画形式展现的,这里请自行发挥想象。
可以看到,美国经济一马当先,在身材肥胖方面也是当仁不让。好莱坞里面的帅哥美女并不代表美国普罗大众,现实生活中由于肥胖导致的高额医疗费用也给国家带来不小负担。我认识一个美国朋友就经常抱怨说,他吃心吃力赚钱并锻炼,却要缴税给不锻炼不努力赚钱的人看病。英国、德国、意大利、法国等西欧国家,以及巴西、墨西哥等南美国家与美国也是相当类似。
与西欧和南美国家相比,日本、中国、印度、巴基斯坦等亚洲国家看起来身材都相当可以的嘛!不过仔细推敲一下,这到底是锻炼出来的呢还是饿出来的呢?让我们再计算一下人均GDP,如下图所示:
这么一来就真相大白了。日本是个可敬可畏的国家,与欧美国家不一样,在经济发达的同时也保持着很好的身材。以前在日本旅行的时候,判断一个人是否是日本人的一个重要依据就是身材,丰满一些的十有八九是外国人。而中国、印度、巴基斯坦、印尼等亚洲国家,我想还是生活物质不富足导致BMI正常的原因多一些,部分发达的大都市并不能代表整个国家。纵然中国的GDP能够赶超日本,看一下人均,应该会冷静客观很多。
至此,在Power BI的帮助下,我们看到经济与健康之间并没有必然的联系,主要还是每个国家自己的选择。中国需要更有清醒认识,在努力实现中国梦的同时,也应该力争高富帅和白富美。
原文链接:http://qizh.me。