泰尔指数是在经济学管理学中写论文常见的一种评价发展是否平衡的一种方法。适用于面板数据,基本思想是利用每个地区的人均收入和总人口数进行加权计算,比较一个地区的不同地方发展是否平衡,类似于方差分析。就是研究分类型自变量对数值型因变量的影响,只不过加了个权用指数表示出来了。

具体公式和计算原理介绍如下:


泰尔指数计算:

总差异的Theil指数公式如下:

本文中的区域表示的是城市和农村两大区域,分组是分成了31个省份。
也就是说,这里的区域之间就是农村跟城市之间,城市之间就是每个省份之间。


看不懂没关系....下面直接看代码


导入包:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
#import seaborn as sns
plt.rcParams ['font.sans-serif'] ='SimHei'
plt.rcParams ['axes.unicode_minus']=False     

读取数据:观察数据的样子

data=pd.read_excel('2000-2019年分地区人均可支配收入、城市和农村可支配收入以及泰尔指数.xlsx')
data.head()

典型的面板数据,有时间和地区两个变量。

首先我们计算农村的泰尔指数,先通过数据透视表或者分组聚合方法得到每个地区每年的单独的数据:

农村平均家庭可支配=data.groupby(['year','pro'])['农村家庭可支配(元)'].mean().unstack()
农村总人口=data.groupby(['year','pro'])['农村总人口(万人)'].mean().unstack()
#还可以像下面这样数据透视,结果也是一样的
农村平均家庭可支配=data.pivot(index='year',columns='pro',values='农村家庭可支配(元)')
农村总人口=data.pivot(index='year',columns='pro',values='农村总人口(万人)')

查看数据前5行

农村平均家庭可支配.head()

31个省份各自的农村家庭平均收入,农村总人口也是一样的,不展示了。

下面将农村家庭平均收入乘上农村总人口,可以得到每个省份每年的农村总可支配收入:

农村家庭可支配=农村总人口*农村平均家庭可支配
农村家庭可支配.head()

然后对省份进行求和,相对于对列求和,计算每年所有省份的农村家庭可支配收入的总和:

农村家庭可支配.sum(axis=1)

然后按时间上,也是每行上,每个省份都除以当前年份的这个总和数。

人口也是做同样的处理,每年所有省份求和,然后再分别除以这个求和数。

就相对于计算了每年每个省份各自的农村可支配收入的比例,然后除以人口的这个比例,然后取对数。

农村家庭可支配=农村家庭可支配.div(农村家庭可支配.sum(axis=1),axis=0)
农村总人口=农村总人口.div(农村总人口.sum(axis=1),axis=0)
农村家庭可支配2=农村家庭可支配.copy()
农村家庭可支配=农村家庭可支配/农村总人口for i in 农村家庭可支配.columns:农村家庭可支配[i]= 农村家庭可支配[i].apply(np.log) 

我这里变量名有点乱,都把前面的覆盖了....

计算出来的对数后和原来的农村家庭可支配比例相乘,然后按列求和,也就是对每各省份求和,然后除以省份个数31,就可以得到我们的农村泰尔指数。

农村家庭可支配=农村家庭可支配*农村家庭可支配2
农村家庭可支配['logsum']= 农村家庭可支配.sum(axis=1)/31
农村泰尔指数=农村家庭可支配['logsum']
农村泰尔指数


下面再计算城市泰尔指,流程就和上面一样了

城市家庭可支配=data.groupby(['year','pro'])['城市家庭可支配(元)'].mean().unstack()
城市总人口=data.groupby(['year','pro'])['城镇总人口(万人)'].mean().unstack()
城市家庭可支配=城市总人口*城市家庭可支配
城市家庭可支配=城市家庭可支配.div(城市家庭可支配.sum(axis=1),axis=0)
城市总人口=城市总人口.div(城市总人口.sum(axis=1),axis=0)
城市家庭可支配2=城市家庭可支配.copy()
城市家庭可支配=城市家庭可支配/城市总人口
for i in 城市家庭可支配.columns:城市家庭可支配[i]= 城市家庭可支配[i].apply(np.log) 城市家庭可支配=城市家庭可支配*城市家庭可支配2
城市家庭可支配['logsum']= 城市家庭可支配.sum(axis=1)/31
城市泰尔指数=城市家庭可支配['logsum']

查看

城市泰尔指数


再计算总体的城乡间的泰尔指数

总体家庭可支配=data.groupby(['year','pro'])['居民可支配收入(元)'].mean().unstack()
总体总人口=data.groupby(['year','pro'])['总人口数(万人)'].mean().unstack()总体家庭可支配=总体总人口*总体家庭可支配
总体家庭可支配=总体家庭可支配.div(总体家庭可支配.sum(axis=1),axis=0)
总体总人口=总体总人口.div(总体总人口.sum(axis=1),axis=0)
总体家庭可支配2=总体家庭可支配.copy()总体家庭可支配=总体家庭可支配/总体总人口
for i in 总体家庭可支配.columns:总体家庭可支配[i]= 总体家庭可支配[i].apply(np.log) 总体家庭可支配=总体家庭可支配*总体家庭可支配2
总体家庭可支配['logsum']= 总体家庭可支配.sum(axis=1)/31
城乡间泰尔指数=总体家庭可支配['logsum']
城乡间泰尔指数


将结果写到一个数据框里面,然后求和,计算各自的比例,储存

df=pd.DataFrame()
df['农村泰尔指数']=农村泰尔指数
df['城市泰尔指数']=城市泰尔指数
df['城乡间泰尔指数']=城乡间泰尔指数
df['总泰尔指数']=df.sum(axis=1)  #求和

计算比例

df['农村贡献率(%)']=df['农村泰尔指数']/df['总泰尔指数']
df['城市贡献率(%)']=df['城市泰尔指数']/df['总泰尔指数']
df['城乡间贡献率(%)']=df['城乡间泰尔指数']/df['总泰尔指数']

文本索引

df.index=[str(i) for i in df.index]

储存

df.to_excel('结果.xlsx')

结果可视化

df[['农村泰尔指数','城市泰尔指数','城乡间泰尔指数','总泰尔指数']].plot(figsize=(14,6),title='2000-2019 年居民收入泰尔指数走势图')
plt.savefig('2000-2019 年居民收入泰尔指数走势图.jpg',dpi=256)

比例的可视化

df[['农村贡献率(%)','城市贡献率(%)','城乡间贡献率(%)']].plot(figsize=(14,6),title='2000-2019 年农村、城市、城乡间泰尔指数对总泰尔指数的贡献率')
plt.savefig('2000-2019 年农村、城市、城乡间泰尔指数对总泰尔指数的贡献率图.jpg',dpi=256)

分析:

我们通过的泰尔指数走势图会发现,从2000年到2019年泰尔指数整体趋势,无论是农村还是城市,都是在下降。说明发展不平衡的现象有所缓解。

从农村城市城乡间泰尔指数最总泰尔指数的贡献率来看,城乡之间的泰尔指数对总泰尔指数的贡献率最大,说明城乡之间的收入差距较大,农村的贡献率一直大于城市间贡献率说明,各省份农村之间的收入差异比起城市也较大。

(进一步还可以分析几几年在下降,下降的快和慢等等,最近几年较为平缓,城乡见贡献度有下降趋势等等)

Python数据分析案例02——泰尔指数的计算相关推荐

  1. matlab怎么计算泰尔指数,关于泰尔指数的计算

    根据林宏.陈广汉在2003年的<统计与预测>中发表的文 章介绍,泰尔指数是由泰尔(THEIL,1967)利用信息理论中的熵 概念来计算收入不平等而得名.假设U是某一特定事件A将 要发生的概 ...

  2. NO.46------用python做金融分析(求解泰尔指数)

    相关理论 泰尔指数(Theil,1967)(也有人译为"泰尔系数",但我倾向于"泰尔指数")是分析区域收入水平差异的一个重要工具,而区域差距又是一个重要的热点话 ...

  3. 泰尔指数(Theil)公式详解(原出处:人人网)

    原文出处:人人网 泰尔指数(Theil,1967)(也有人译为"泰尔系数",但我倾向于"泰尔指数")是分析区域收入水平差异的一个重要工具,而区域差距又是一个重要 ...

  4. 泰尔指数r语言_还在用Excel算区位基尼系数?用geo.gini吧!

    区域经济研究中,经常需要测度产业空间集中的程度,常用的指标有区位基尼系数(Locational GiniCoefficient).泰尔指数(Theil Index)和EG指数等.这一期先讲区位基尼系数 ...

  5. python数据分析实战案例-Python数据分析案例实战

    原标题:Python数据分析案例实战 至今我们网站已经开设了多个数据分析系列的课程,大部分都是基于算法思路来开展的,课程中着重点在于算法的讲授.软件的使用,案例只是辅助学习.然而很多学员反映,希望可以 ...

  6. 视频教程-Python数据分析案例实战 视频课程-Python

    Python数据分析案例实战 视频课程 计算机硕士,多年工作经验,技术和产品负责人. 多年推荐系统/NLP/大数据工作经验. 负责公司多个AI项目产品落地,包括文本分类.关键词抽取.命名实体识别.对话 ...

  7. R语言ineq算基尼系数_科学网—一招搞定泰尔指数及其分解 - 王庆喜的博文

    一招搞定泰尔指数及其分解 上期讲了区位基尼系数,这期讲讲泰尔指数. 泰尔指数的原理同基尼系数,都是在测度一组数据分布的差异性.但是其有着良好的可分解性质,因此当需要考察产业空间集中度在不同区域层面的差 ...

  8. matlab使用教程公式求解,泰尔指数及分解公式的计算方法与Matlab实现

    前言 最近查一点泰尔指数的资料,发现无论是公式还是软件实现,都说的特别乱,看不出所以然. 特整理了该内容,并用Matlab软件给出了实现的代码. 一.泰尔指数 泰尔指数(Theil index)或者泰 ...

  9. 2010-2019年208个地级市城乡收入差距泰尔指数

    2010-2019年208个地级市城乡收入差距泰尔指数 1.数据来源:各省的统计NJ以及部分地级市的NJ(主要是地级市的城镇化率) 城镇化率为常驻人口城镇化率而非户籍人口城镇化率.附件中也包含各个地级 ...

最新文章

  1. 位域 内存 字节序_JS操作内存?二进制数组了解一下
  2. java中位数_JAVA中位数排序
  3. [原创]浅谈对华为34岁以上员工“退休”
  4. boost::copy_graph用法的测试程序
  5. java sort()怎么实现的_Java中Array.sort()的排序原理
  6. 使用VS Code 开发.NET Core 应用程序 部署到Linux 跨平台
  7. 算法我也不知道有没有下一个---一个题目的开端(索引堆与图)
  8. 今天走了一天, 才回到家
  9. [翻译]利用C#获取终端服务(Terminal Services)会话的闲置时间
  10. oracle数据库imp/sqlplus命令无效引发的问题
  11. Python打印2018年的日历(【问题描述】 打印2018年的日历 【输入形式】 【输出形式】 【样例输入】 【样例输出】)
  12. 【3D Max】3D max如何删除环境贴图
  13. 在ARM板上运行Qt程序
  14. 【matplotlib】画图怎样将中文为宋体-英文为新罗马字体
  15. 邮箱显示exchange账号服务器错误,Exchange服务器刚开始用就总是出错!
  16. echarts 地图显示(定位图标)
  17. 计算机组装防静电措施,浅谈组装电脑如何防静电与去除机箱静电的方法
  18. C#,入门教程——列表(List)的基础知识
  19. Computer Vision_3D Reconstruction_Point Cloud(计算机视觉三维重建点云点云配准)
  20. 矸石称重自动化系统有什么特点

热门文章

  1. 易语言读写内存操作详解
  2. 超可爱!80后男人领完结婚证后说的话
  3. Python学习笔记(五.数据分析 ——上)
  4. NFC卡,Mifare卡,IC卡,ID卡,proximity卡,RFID卡之间的区别
  5. 期货反向跟单—交易员的培训问题
  6. dell服务器pci位置,dell服务器,系统开机错误日志:WARNING: at drivers/pci/intr_remapping.c...
  7. cad文件怎么转成jpg格式的图片?这个办法很好用
  8. 金仓数据库KingbaseES之null和“ ”的区别
  9. WordPress环境搭建
  10. 登录界面全屏+背景图片沉浸式+键盘将输入框顶起来+键盘弹起背景不会被弹起或者压缩