2017-02-27 26 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並不需要這種格式,而是似乎在處理「阿米莉亞」類對象原樣。