本文讨论两个时期的面板数据的分析方法。

【例1】伍德里奇《计量经济学导论:现代方法》的“第13章 跨时横截面的混合:简单面板数据处理方法”的例13.5,利用SLP75_87数据,研究睡眠与工作之间的替代关系。构建多元线性回归模型如下:
slpnapit=β0+δ0d81t+β1totwrkit+β2educit+β3marrit+β4yngkidit+β5gdhlthit+ai+uitslpnap_{it}=\beta_0+\delta_0d81_t+\beta_1totwrk_{it}+\beta_2educ_{it}+\beta_3marr_{it}+\beta_4yngkid_{it}+\beta_5gdhlth_{it}+a_i+u_{it} slpnapit​=β0​+δ0​d81t​+β1​totwrkit​+β2​educit​+β3​marrit​+β4​yngkidit​+β5​gdhlthit​+ai​+uit​

  • slpnap:睡眠时长
  • d81:1975年为0,1981年为1
  • totwrk:每周工作分钟数
  • educ:受教育的年数
  • marr:已婚为1,否则为0
  • yngkid:孩子小于3岁为1,否则为0
  • gdhlth:健康为1,否则为0
  • a:影响睡眠时间的固定因素

对于任意i,将1975年和1981年的两个方程相减得到的差分方程,我们称之为一阶差分方程。
Δslpnapi=δ0+δ1Δtotwrki+δ2Δeduci+δ3Δmarri+δ4Δyngkidi+δ5Δgdhlthi+Δui\Delta slpnap_i=\delta_0+\delta_1\Delta totwrk_i+\delta_2\Delta educ_i+\delta_3\Delta marr_i+\delta_4\Delta yngkid_i+\delta_5\Delta gdhlth_i+\Delta u_i Δslpnapi​=δ0​+δ1​Δtotwrki​+δ2​Δeduci​+δ3​Δmarri​+δ4​Δyngkidi​+δ5​Δgdhlthi​+Δui​
该差分方程中的固定因素消失了,剩下的都是随时间变化的因素。

处理面板数据时需特别注意面板数据的编排方式,不同的编排方式有不同的处理方法。本例中,原始数据将每一个人的1975年和1981年的数据分别存储在同一行的两个字段中,比如eudc75和educ81。

代码如下:

import wooldridge as woo
import numpy as np
import pandas as pd
import statsmodels.formula.api as smfslp75_81 = woo.dataWoo('slp75_81')slp75_81['D_slpnap'] = slp75_81['slpnap81'] - slp75_81['slpnap75']
slp75_81['D_totwrk'] = slp75_81['totwrk81'] - slp75_81['totwrk75']
slp75_81['D_educ'] = slp75_81['educ81'] - slp75_81['educ75']
slp75_81['D_marr'] = slp75_81['marr81'] - slp75_81['marr75']
slp75_81['D_yngkid'] = slp75_81['yngkid81'] - slp75_81['yngkid75']
slp75_81['D_gdhlth'] = slp75_81['gdhlth81'] - slp75_81['gdhlth75']
reg = smf.ols('D_slpnap~D_totwrk+D_educ+D_marr+D_yngkid+D_gdhlth',data=slp75_81)
results = reg.fit()
print(results.summary())

结果为:

                            OLS Regression Results
==============================================================================
Dep. Variable:               D_slpnap   R-squared:                       0.150
Model:                            OLS   Adj. R-squared:                  0.131
Method:                 Least Squares   F-statistic:                     8.191
Date:                Tue, 09 Aug 2022   Prob (F-statistic):           3.83e-07
Time:                        09:07:33   Log-Likelihood:                -1864.4
No. Observations:                 239   AIC:                             3741.
Df Residuals:                     233   BIC:                             3762.
Df Model:                           5
Covariance Type:            nonrobust
==============================================================================coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
Intercept    -92.6340     45.866     -2.020      0.045    -182.999      -2.269
D_totwrk      -0.2267      0.036     -6.287      0.000      -0.298      -0.156
D_educ        -0.0245     48.759     -0.001      1.000     -96.090      96.041
D_marr       104.2139     92.855      1.122      0.263     -78.729     287.157
D_yngkid      94.6654     87.653      1.080      0.281     -78.027     267.358
D_gdhlth      87.5778     76.599      1.143      0.254     -63.338     238.493
==============================================================================
Omnibus:                       31.927   Durbin-Watson:                   1.890
Prob(Omnibus):                  0.000   Jarque-Bera (JB):               57.378
Skew:                          -0.719   Prob(JB):                     3.47e-13
Kurtosis:                       4.922   Cond. No.                     2.72e+03
==============================================================================Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
[2] The condition number is large, 2.72e+03. This might indicate that there are
strong multicollinearity or other numerical problems.

【例2】伍德里奇《计量经济学导论:现代方法》的“第13章 跨时横截面的混合:简单面板数据处理方法”的“13.3 两时期面板数据分析”的案例,利用CRIME2数据,研究犯罪率与失业率的关系。用以描述1982年和1987年城市犯罪率的固定效应模型是:
crmrteit=β0+δ0d87t+β1unemit+ai+uitcrmrte_{it}=\beta_0+\delta_0d87_t+\beta_1unem_{it}+a_i+u_{it} crmrteit​=β0​+δ0​d87t​+β1​unemit​+ai​+uit​

  • crmrte:犯罪率
  • d87:1982年为0,1987年为1
  • unem:失业率
  • a:影响睡眠时间的固定因素

因为 aia_iai​ 是不随时间而变化的常数,所以我们可以取两个年份的数据之差。对横截面的第i个观测值,把两年的方程分别写成:
yi2=(β0+δ0)+β1xi2+ai+ui2yi1=β0+β1xi1+ai+ui2y_{i2}=(\beta_0+\delta_0)+\beta_1x_{i2}+a_i+u_{i2}\\ y_{i1}=\beta_0+\beta_1x_{i1}+a_i+u_{i2} yi2​=(β0​+δ0​)+β1​xi2​+ai​+ui2​yi1​=β0​+β1​xi1​+ai​+ui2​
如果我们将第一个方程减去第二个方程,便得到
yi2−yi1=δ0+β1(xi2−xi1)+(ui2−ui1)y_{i2}-y_{i1}=\delta_0+\beta_1(x_{i2}-x_{i1})+(u_{i2}-u_{i1}) yi2​−yi1​=δ0​+β1​(xi2​−xi1​)+(ui2​−ui1​)

或:
Δy=δ0+Δxi+Δui\Delta y=\delta_0+\Delta x_i+\Delta u_i Δy=δ0​+Δxi​+Δui​
固定效应 aia_iai​ 被差分掉,不再出现。我们称之为一阶差分方程。

处理面板数据时需特别注意面板数据的编排方式,不同的编排方式有不同的处理方法。本例中,原始数据索引为偶数的行存放着1982年数据,索引为奇数的行存放着1987年数据。

代码如下:

import wooldridge as woo
import numpy as np
import pandas as pd
import statsmodels.formula.api as smfcrime2 = woo.dataWoo('crime2')# 创建个体索引
id_tmp = np.linspace(1, 46, num=46)
crime2['id'] = np.sort(np.concatenate([id_tmp, id_tmp]))# 对每个个体的crmrte and unem进行一阶差分
crime2['crmrte_diff1'] = \crime2.sort_values(['id', 'year']).groupby('id')['crmrte'].diff()
crime2['unem_diff1'] = \crime2.sort_values(['id', 'year']).groupby('id')['unem'].diff()# statsmodels估计一阶差分模型:
reg_sm = smf.ols(formula='crmrte_diff1 ~ unem_diff1', data=crime2)
results_sm = reg_sm.fit()
print(results_sm.summary())

结果如下:

                            OLS Regression Results
==============================================================================
Dep. Variable:           crmrte_diff1   R-squared:                       0.127
Model:                            OLS   Adj. R-squared:                  0.107
Method:                 Least Squares   F-statistic:                     6.384
Date:                Tue, 09 Aug 2022   Prob (F-statistic):             0.0152
Time:                        10:13:43   Log-Likelihood:                -202.17
No. Observations:                  46   AIC:                             408.3
Df Residuals:                      44   BIC:                             412.0
Df Model:                           1
Covariance Type:            nonrobust
==============================================================================coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
Intercept     15.4022      4.702      3.276      0.002       5.926      24.879
unem_diff1     2.2180      0.878      2.527      0.015       0.449       3.987
==============================================================================
Omnibus:                        2.636   Durbin-Watson:                   1.146
Prob(Omnibus):                  0.268   Jarque-Bera (JB):                2.255
Skew:                           0.539   Prob(JB):                        0.324
Kurtosis:                       2.883   Cond. No.                         8.70
==============================================================================Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.

我们也可以调用linearmodels的FirstDifferenceOLS模块进行估计。

import wooldridge as woo
import numpy as np
import pandas as pd
import linearmodels as plmcrime2 = woo.dataWoo('crime2')
crime2['d87'] = (crime2['year'] == 87).astype(int)  # False=0, True=1
# 创建个体索引
id_tmp = np.linspace(1, 46, num=46)
crime2['id'] = np.sort(np.concatenate([id_tmp, id_tmp]))crime2 = crime2.set_index(['id', 'year'])
reg_plm = plm.FirstDifferenceOLS.from_formula(formula='crmrte ~ d87 + unem',data=crime2)
results_plm = reg_plm.fit()
print(results_plm)

结果为:

                     FirstDifferenceOLS Estimation Summary
================================================================================
Dep. Variable:                 crmrte   R-squared:                        0.1961
Estimator:         FirstDifferenceOLS   R-squared (Between):              0.4064
No. Observations:                  46   R-squared (Within):               0.1961
Date:                Tue, Aug 09 2022   R-squared (Overall):              0.4041
Time:                        10:27:37   Log-likelihood                   -202.17
Cov. Estimator:            Unadjusted                                           F-statistic:                      5.3653
Entities:                          46   P-value                           0.0082
Avg Obs:                       2.0000   Distribution:                    F(2,44)
Min Obs:                       2.0000
Max Obs:                       2.0000   F-statistic (robust):             5.3653P-value                           0.0082
Time periods:                       2   Distribution:                    F(2,44)
Avg Obs:                       46.000
Min Obs:                       46.000
Max Obs:                       46.000                                           Parameter Estimates
==============================================================================Parameter  Std. Err.     T-stat    P-value    Lower CI    Upper CI
------------------------------------------------------------------------------
d87            15.402     4.7021     3.2756     0.0021      5.9257      24.879
unem           2.2180     0.8779     2.5266     0.0152      0.4488      3.9872
==============================================================================

·

【Python计量】两期面板数据分析相关推荐

  1. Python 数据分析第六期--文本数据分析

    Python 数据分析第六期–文本数据分析 1. Python 文本分析工具 NLTK NLTK (Natural Language Toolkit) NLP 领域最常用的一个 Python 库 , ...

  2. 面板数据分析及stata应用笔记

    动态面板数据模型及估计方法 假说里面不要出现显著 文章目录 (一)面板数据基础知识 **一.面板数据的定义** **二.面板数据的分类** **三.面板数据的优缺点** **四.面板数据模型** ** ...

  3. 数据分析python有趣分享_Python有趣|数据分析三板斧

    前言 天下武功中,哪个是最简单,最实用的了?那当然是程咬金的三板斧.传说中,程咬金晚上睡觉,梦见一老神仙,教了他三十六式板斧,这套功夫威力极大,而且招式简单,十分适合程咬金,但是程咬金醒来之后就只记住 ...

  4. R语言 面板数据分析 plm包实现(一) ——LSDV和固定效应模型

    系列文章 R做面板数据分析:R语言 面板数据分析 plm包实现(一) --LSDV和固定效应模型 如果想看随机效应模型怎么做,参见这篇文章 R语言 面板数据分析 plm包实现(二)--随机效应模型 如 ...

  5. (附源码)Python云顶之弈数据分析系统 毕业设计451545

    目 录 摘要 1 1 绪论 1 1.1研究背景 1 1.2开发意义 1 1.3系统开发技术的特色 1 1.4论文结构与章节安排 1 2 基于Python云顶之弈数据分析系统系统分析 3 2.1 可行性 ...

  6. 慕课面板数据分析与Stata应用—第一章总结

    1.面板数据类型 短.长 平衡.非平衡 静.动态 2.估计方法 2.1 混合回归 特征:认为个体异质性不存在,所有的个体估计方程都一致 2.2固定效应 特征:认为个体异质性与解释变量相关 类别 单向: ...

  7. 产品策略研究期的数据分析与挖掘

    在产品设计阶段,第一时期策略研究首先从宏观角度对外部环境和内部情况加以分析,重点关注市场.技术等方面的发展与变化趋势,然后辅以用户细分研究,以此从中明确产品未来开发的相关策略. 借助企业内部和外部资料 ...

  8. python与excel结合能做什么-Python网络爬虫与文本数据分析

    原标题:Python网络爬虫与文本数据分析 课程介绍 在过去的两年间,Python一路高歌猛进,成功窜上"最火编程语言"的宝座.惊奇的是使用Python最多的人群其实不是程序员,而 ...

  9. 用html5交换两个变量的值,Python判断两个对象相等的原理 python交换两个变量的值为什么不用中间变量...

    python语言设计一个类代表花,其中含2个对象属性,2class flower: def __init__ (self, name, shape): self.name = name self.sh ...

最新文章

  1. 人工智能考题可能性猜测
  2. 纠错——【Singleton array array(0.2) cannot be considered a valid collection.】
  3. listitem android,android-为contextmenu标识listitem的ID
  4. 在pycharm中使用conda虚拟环境(conda虚拟环境是已经创建好的),解决python安装包文件很费劲的问题
  5. Win10强制更新怎么关闭 彻底禁止Windows自动更新
  6. 特岗招聘计算机专业要求,咨询特岗教师招聘专业设置问题
  7. pycharm下打开、执行并调试scrapy爬虫程序
  8. 《TensorFlow 2.0深度学习算法实战教材》学习笔记(八、过拟合)
  9. Visual Studio 2008 Designer.cs不能更新/自动添加控件声明的解决办法
  10. 使用layer 实现点击 显示大图
  11. 今天给大家带来搜题公众号搭建教程(附赠搜题接口 还支持语音图片搜题)
  12. Python数据挖掘 之 数据处理(使用pandas对智联招聘上的北京地区python岗位进行数据清洗)
  13. 2011 imac 固态_iMac (21.5 英寸, 2011 年中) - 技术规格
  14. 计算机基础知识(基础入门小白专属)三
  15. 数组连接中的vstack()函数与hstack()函数
  16. swustOJ 1378 Best Grass
  17. 晚上几点睡觉算熬夜?没有睡够,“白天补觉”有效果?终于知道了
  18. r语言c(1 6),R语言(1)
  19. 第72届英国影艺学院电影奖9日公布入围名单
  20. Logstash:你喜欢 Grok 吗?

热门文章

  1. 刚开始学习编程的迷茫、痛苦是必然的?!。
  2. Shamir 门限秘密共享
  3. iphone如何最快已读全量未读短信
  4. java编写一个学生类和教师类,Java创建一个学生类
  5. MiniJavaVM——一个Java虚拟机的设计和实现
  6. OpenResty 在马蜂窝广告监测中的应用
  7. 洛谷P1021邮票面值设计
  8. husky gazebo
  9. 计算机行业前景6,目前10大最有发展前景的行业,人工智能第六,有你喜欢的行业吗?...
  10. 2023年全国最新会计专业技术资格精选真题及答案1