系列文章
- R做面板数据分析:R语言 面板数据分析 plm包实现(一) ——LSDV和固定效应模型
- 如果想看随机效应模型怎么做,参见这篇文章
R语言 面板数据分析 plm包实现(二)——随机效应模型 - 如果想看如何判断面板数据适用随机效应模型还是固定效应模型,参见这篇文章:
R语言 面板数据分析 plm包实现(三)——面板数据与面板模型的检验 - 使用随机效应模型,且一些时间或个体存在数据缺失,应当使用Swamy Arora估计,如何用R语言来实现,参见这篇文章:
R语言 面板数据如何做Swamy Arora估计。 - 如何从统计年鉴获知某地接受转移支付额度
目录
- 系列文章
- 1.模型描述
- 数据导入
- 2.假定γt =0,直接估计随机 “Individual effects” 模型
- 3.假定ui =0,直接估计随机“Time effects”模型;
首先是plm包安装和数据导入部分,参见文章:
《R语言 面板数据分析 plm包实现(一) ——LSDV和固定效应模型》 使用随机效应模型,且一些时间或个体存在数据缺失,应当使用Swamy Arora估计,如何用R语言来实现,参见这篇文章:
R语言 面板数据如何做Swamy Arora估计。
1.模型描述
有数据集:Ex1_1.dta
数据样式:
点击下载
其中FN代表公司,总共有三家;YR代表年份;I是总投资;F是企业实际价值;C是企业实际资本存量。更多解释:
数据导入
这个数据集是stata的数据集,因此在Rstudio中你可以选择文件–>导入数据集(import dataset)–>导入stata文件,即可完成导入工作
此外,我好像在其它地方也看见过此数据集,如果你无法下载,可以在其它地方寻找数据集(我印象里是在某个面板相关的R程序包里自带的数据集)。
很多童鞋反映数据集获取困难,我把这个数据集上传到github的一个项目里了(免费),注意,只有一个文件是数据集。如果有帮到你,请给文章点个赞哦~
2.假定γt =0,直接估计随机 “Individual effects” 模型
# R codes
rankData<-pdata.frame(Ex1_1,index=c("FN","YR")) #index里是个体和时间,转化为面板数据
random <- plm(I~ F + C,data=rankData,effect = "individual", model="random")
summary(random)
输出结果:
Oneway (individual) effect Random Effect Model
(Swamy-Arora's transformation)
Call:
plm(formula = I ~ F + C, data = rankData, effect = "individual",
model = "random")
Balanced Panel: n = 10, T = 20, N = 200
Effects:
var std.dev share
idiosyncratic 2784.46 52.77 0.282
individual 7089.80 84.20 0.718
theta: 0.8612
Residuals:
Min. 1st Qu. Median 3rd Qu. Max.
-177.6063 -19.7350 4.6851 19.5105 252.8743
Coefficients:
Estimate Std. Error z-value Pr(>|z|)
(Intercept) -57.834415 28.898935 -2.0013 0.04536 *
F 0.109781 0.010493 10.4627 < 2e-16 ***
C 0.308113 0.017180 17.9339 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Total Sum of Squares: 2381400
Residual Sum of Squares: 548900
R-Squared: 0.7695
Adj. R-Squared: 0.76716
Chisq: 657.674 on 2 DF, p-value: < 2.22e-16
即广义最小二乘法GLS,结果解读课参见上一篇文章,此处略去。
3.假定ui =0,直接估计随机“Time effects”模型;
# R codes
rankData<-pdata.frame(Ex1_1,index=c("FN","YR")) #index里是个体和时间,转化为面板数据
random2 <- plm(I~ F + C,data=rankData,effect = "time", model="random")
summary(random2)
结果:
Oneway (time) effect Random Effect Model
(Swamy-Arora's transformation)
Call:
plm(formula = I ~ F + C, data = rankData, effect = "time", model = "random")
Balanced Panel: n = 10, T = 20, N = 200
Effects:
var std.dev share
idiosyncratic 9623.4 98.1 1
time 0.0 0.0 0
theta: 0
Residuals:
Min. 1st Qu. Median 3rd Qu. Max.
-291.6757 -30.0137 5.3033 34.8293 369.4464
Coefficients:
Estimate Std. Error z-value Pr(>|z|)
(Intercept) -42.7143694 9.5116760 -4.4907 7.098e-06 ***
F 0.1155622 0.0058357 19.8026 < 2.2e-16 ***
C 0.2306785 0.0254758 9.0548 < 2.2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Total Sum of Squares: 9359900
Residual Sum of Squares: 1755900
R-Squared: 0.81241
Adj. R-Squared: 0.8105
Chisq: 853.151 on 2 DF, p-value: < 2.22e-16
下一期预告:如何做检验,来确定该使用哪一种模型。