【发布时间】:2017-05-12 16:25:12
【问题描述】:
我正在尝试使用miceadds 包中的lm.cluster 函数来为多重插补数据集获取稳健的聚类标准误差。
我能够运行它的标准版本,但是当我尝试添加子集或权重时出现以下错误:
Error in eval(substitute(subset), data, env) :
..1 used in an incorrect context, no ... to look in
没有子集或权重的示例:
require("mice")
require("miceadds")
data(data.ma01)
# imputation of the dataset: use six imputations
dat <- data.ma01[ , - c(1:2) ]
imp <- mice::mice( dat , maxit=3 , m=6 )
datlist <- miceadds::mids2datlist( imp )
# linear regression with cluster robust standard errors
mod <- lapply(datlist, FUN = function(data){miceadds::lm.cluster( data=data ,
formula=read ~ paredu+ female , cluster = data.ma01$idschool )} )
# extract parameters and covariance matrix
betas <- lapply( mod , FUN = function(rr){ coef(rr) } )
vars <- lapply( mod , FUN = function(rr){ vcov(rr) } )
# conduct statistical inference
summary(pool_mi( qhat = betas, u = vars ))
与子集中断的示例:
mod <- lapply(datlist, FUN = function(data){miceadds::lm.cluster( data=data ,
formula=read ~ paredu+ female , cluster = data.ma01$idschool, subset=
(data.ma01$urban==1))} )
Error during wrapup: ..1 used in an incorrect context, no ... to look in
用权重打断的例子:
mod <- lapply(datlist, FUN = function(data){miceadds::lm.cluster( data=data ,
formula=read ~ paredu+ female , cluster = data.ma01$idschool,
weights=data.ma01$studwgt)} )
Error during wrapup: ..1 used in an incorrect context, no ... to look in
通过搜索,我认为我在通过 lm 或 glm 包装器传递这些命令时遇到了与其他人类似的问题(例如:Passing Argument to lm in R within Function 或 R : Pass argument to glm inside an R function 或 Passing the weights argument to a regression function inside an R function)
但是,我不确定如何解决估算数据集和现有 lm.cluster 命令的问题。
谢谢
【问题讨论】:
标签: r regression r-mice