2017-02-27 24 views
0

我目前正在尝试写一篇论文,其中需要对包含在多重估算数据集中的关键治疗前协变量进行匹配,然后对此数据运行线性回归。我已经能够编写代码来获得zelig对我从amelia获得的乘法归算数据运行线性回归。然而,当我尝试使用cem来匹配关键的治疗前协变量时,我无法获得zelig来运行该模型。下面是输出ROM我的控制台:Amelia + CEM + Zelig错误

> # Run Amelia, 5 imputations!  
> complete <- amelia(clean, m = 5, ts = "wave", cs = "country", idvars = c("idnum", "strata", "weight"))  
-- Imputation 1 -- 

    1 2 3 4 5 6 7 8 9 10 11 12 

-- Imputation 2 -- 

    1 2 3 4 5 6 7 8 9 10 11 

-- Imputation 3 -- 

    1 2 3 4 5 6 7 8 9 10 11 12 

-- Imputation 4 -- 

    1 2 3 4 5 6 7 8 9 10 11 12 

-- Imputation 5 -- 

    1 2 3 4 5 6 7 8 9 10 11 12 

> 
> # Estimate naive and controlled linear models with MI data sets using Zelig 
> 
> lm.out.naive <- zelig(dv ~ treat*year + treat + year, data = complete, model = "ls") 

> lm.out.control <- zelig(dv~ treat*year + treat + year + age + gender + ideo + married, data = complete, model = "ls") 

> # Estimate CEM linear model 
> 
> # First, generate matched data set 
>  imputed <- complete$imputations[1:15] 
>  matched <- cem("treat", drop = c("pais", "wave", "year", "idnum", "strata"), 
+       datalist = imputed, data = clean) 
> 
> # Then, run regression 
>  lm.out.match <- zelig(dv ~ treat*year + treat + year + age + gender + ideo + married, data = matched, model = "ls") 

Error in resolve_vars(new_groups, tbl_vars(.data)) : 
    unknown variable to group by : by 

我不理解什么最后的错误意味着,为什么我不能运行在匹配的数据使用多重插补后设定的回归。任何有关这个问题的见解将不胜感激!

回答

0

我最近遇到这个错误使用zelig的logit在一个乘法估算的数据帧上。我的解决方案是正确指定data =参数。你可以试试这个:

lm.out.match <- zelig(dv ~ treat*year + treat + year + 
age + gender + ideo + married, data = mi(matched$imputations), model = "ls") 

我记得一个老版本的zelig并不需要这种格式,而是似乎在处理“阿米莉亚”类对象原样。

相关问题