【问题标题】:estimate a repeated measures random effects model with a nested structure using `plm()`使用“plm()”估计具有嵌套结构的重复测量随机效应模型
【发布时间】:2018-08-26 01:20:24
【问题描述】:

是否可以使用 包中的plm() 估计具有嵌套结构的重复测量随机效应模型

我知道 包中的lmer() 是可能的。然而,lmer() 依赖于可能性框架,我很想用plm() 来做。

这是我的最小工作示例,灵感来自this question。首先是一些必需的包和数据,

# install.packages(c("plm", "lme4", "texreg", "mlmRev"), dependencies = TRUE)
data(egsingle, package = "mlmRev")

数据集egsingle 是一个不平衡的面板,由 1721 名学童组成,分在 60 所学校,跨越五个时间点。详情见?mlmRev::egsingle

一些轻量级的数据管理

dta <- egsingle
dta$Female <- with(dta, ifelse(female == 'Female', 1, 0))

还有相关数据的sn-p

dta[118:127,c('schoolid','childid','math','year','size','Female')]
#>     schoolid   childid   math year size Female
#> 118     2040 289970511 -1.830 -1.5  502      1
#> 119     2040 289970511 -1.185 -0.5  502      1
#> 120     2040 289970511  0.852  0.5  502      1
#> 121     2040 289970511  0.573  1.5  502      1
#> 122     2040 289970511  1.736  2.5  502      1
#> 123     2040 292772811 -3.144 -1.5  502      0
#> 124     2040 292772811 -2.097 -0.5  502      0
#> 125     2040 292772811 -0.316  0.5  502      0
#> 126     2040 293550291 -2.097 -1.5  502      0
#> 127     2040 293550291 -1.314 -0.5  502      0

现在,我严重依赖Robert Long's answer,这就是我使用 包中的lmer() 估计具有嵌套结构的重复测量随机效应模型的方法,

dta$year <- as.factor(dta$year)
require(lme4)
Model.1 <- lmer(math ~ Female + size + year + (1 | schoolid /childid), dta)
# summary(Model.1)

我在 man 页面中查看了plm(),它有一个索引命令index,但它只需要一个索引和时间,即@ 987654340@,忽略schoolid,模型看起来像这样,

dta$year <- as.numeric(dta$year) 
library(plm)
Model.2 <- plm(math~Female+size+year, dta, index = c("childid", "year"), model="random")
# summary(Model.2)

总结问题

我怎样才能,甚至有可能,使用 包中的plm() 指定具有嵌套结构的重复测量随机效应模型,例如Model.1

以下是两种模型的实际估计结果,

# require(texreg)
names(Model.2$coefficients) <- names(coefficients(Model.1)$schoolid) #ugly!
texreg::screenreg(list(Model.1, Model.2), digits = 3)  # pretty! 
#> ==============================================================
#>                                    Model 1        Model 2     
#> --------------------------------------------------------------
#> (Intercept)                           -2.693 ***    -2.671 ***
#>                                       (0.152)       (0.085)   
#> Female                                 0.008        -0.025    
#>                                       (0.042)       (0.046)   
#> size                                  -0.000        -0.000 ***
#>                                       (0.000)       (0.000)   
#> year-1.5                               0.866 ***     0.878 ***
#>                                       (0.059)       (0.059)   
#> year-0.5                               1.870 ***     1.882 ***
#>                                       (0.058)       (0.059)   
#> year0.5                                2.562 ***     2.575 ***
#>                                       (0.059)       (0.059)   
#> year1.5                                3.133 ***     3.149 ***
#>                                       (0.059)       (0.060)   
#> year2.5                                3.939 ***     3.956 ***
#>                                       (0.060)       (0.060)   
#> --------------------------------------------------------------
#> AIC                                16590.715                  
#> BIC                                16666.461                  
#> Log Likelihood                     -8284.357                  
#> Num. obs.                           7230          7230        
#> Num. groups: childid:schoolid       1721                      
#> Num. groups: schoolid                 60                      
#> Var: childid:schoolid (Intercept)      0.672                  
#> Var: schoolid (Intercept)              0.180                  
#> Var: Residual                          0.334                  
#> R^2                                                  0.004    
#> Adj. R^2                                             0.003    
#> ==============================================================
#> *** p < 0.001, ** p < 0.01, * p < 0.05    

【问题讨论】:

  • plm 实现了一个嵌套模型,如 Baltagi/Song/Jung (2001)。

标签: plm lme4 lme4 plm r lme4 hierarchical-clustering plm longitudinal


【解决方案1】:

基于Helix123's comment,我在plm() 中使用Wallace 和Hussain 的 包为具有嵌套结构的重复测量随机效应模型编写了以下模型规范(@987654323 @) 方法,即random.method = "walhus",用于估计方差分量,

p_dta <- pdata.frame(dta, index = c("childid", "year", "schoolid"))        
Model.3 <- plm(math ~ Female + size + year, data = p_dta, model = "random",
               effect = "nested", random.method = "walhus")

正如我所料,在下面的Model.3 中看到的结果与Model.1 中的估计值几乎相同。只有截距略有不同(见下面的输出)。

我根据?plm 中提供的 Baltagi、Song 和 Jung (2001) 的示例编写了上述内容。在 Baltagi、Song 和 Jung (2001) 示例中,首先使用 Swamy 和 Arora (1972) 估计方差分量,即 random.method = "swar",然后使用 Wallace 和 Hussain 的 (1969) 估计方差分量。只有 Nerlove (1971) 转换不会使用 Song 和 Jung (2001) 数据收敛。而只有 Wallace 和 Hussain 的 (1969) 方法可以使用 egsingle 数据集进行收敛。

我们将不胜感激。我会继续努力。

names(Model.3$coefficients) <- names(coefficients(Model.1)$schoolid) 
texreg::screenreg(list(Model.1, Model.3), digits = 3,
                  custom.model.names = c('Model 1', 'Model 3')) 
#> ==============================================================
#>                                    Model 1        Model 3     
#> --------------------------------------------------------------
#> (Intercept)                           -2.693 ***    -2.697 ***
#>                                       (0.152)       (0.152)   
#> Female                                 0.008         0.008    
#>                                       (0.042)       (0.042)   
#> size                                  -0.000        -0.000    
#>                                       (0.000)       (0.000)   
#> year-1.5                               0.866 ***     0.866 ***
#>                                       (0.059)       (0.059)   
#> year-0.5                               1.870 ***     1.870 ***
#>                                       (0.058)       (0.058)   
#> year0.5                                2.562 ***     2.562 ***
#>                                       (0.059)       (0.059)   
#> year1.5                                3.133 ***     3.133 ***
#>                                       (0.059)       (0.059)   
#> year2.5                                3.939 ***     3.939 ***
#>                                       (0.060)       (0.060)   
#> --------------------------------------------------------------
#> AIC                                16590.715                  
#> BIC                                16666.461                  
#> Log Likelihood                     -8284.357                  
#> Num. obs.                           7230          7230        
#> Num. groups: childid:schoolid       1721                      
#> Num. groups: schoolid                 60                      
#> Var: childid:schoolid (Intercept)      0.672                  
#> Var: schoolid (Intercept)              0.180                  
#> Var: Residual                          0.334                  
#> R^2                                                  0.000    
#> Adj. R^2                                            -0.001    
#> ==============================================================
#> *** p < 0.001, ** p < 0.01, * p < 0.05#> 

【讨论】:

  • 在具有封闭形式解决方案的模型中(Baltagi 等人在论文中称它们为 ANOVA 类型方法),我们不使用术语“收敛”。 “不收敛”是指估计错误,可能是方差分量的负估计? Nerlove 的方法仅适用于平衡面板(根据原始 Nerlove 论文)和 Baltagi 等人的经验示例。是一个不平衡的面板。
猜你喜欢
  • 1970-01-01
  • 2020-07-29
  • 1970-01-01
  • 2021-04-04
  • 2021-11-04
  • 1970-01-01
  • 2020-08-24
  • 2014-04-14
  • 1970-01-01
相关资源
最近更新 更多