2017-05-16 2 views
0

midsクラスオブジェクトを使用してクラスターロバスト標準エラーを計算したいと思います。これは、元のデータの列に欠損値が複数代入されることによって発生します。下の最小の例。マウスRパッケージを使用した多重代入後のクラスターロバスト標準エラー

library(mice) 
y <- c(1,0,0,1,1,1,1,0) 
x <- c(26, 34, 55, 15, 31 ,47, 97, 12) 
z <- c(2, NA, 0, NA, 3 ,7,7, 5) 
mydata <- as.data.frame(cbind(y,x,z)) 


tempData <- mice(mydata,m=5,maxit=5,meth='pmm',seed=500) 

class(tempData) 
# [1] "mids" 

modelFit <- with(tempData,lm(y ~ x + z))  
summary(modelFit) 

この時点では、クラスタを堅牢な標準エラーにしたいと考えています。残念ながら、miceadds :: lm.clusterは "mids"クラスオブジェクトを許可しません。

答えて

1

miceadds)は、通常のデータフレーム用です。帰属データを乗算するアプリケーションの例は、documentationに記載されています。

あなたの質問に適応したバージョンを以下に示します。私は最初の変数をクラスターインジケーターとして使用しました。

library(mice) 
library(miceadds) 

id <- c(1,0,0,1,1,1,1,0) 
y <- c(26,34,55,15,31,47,97,12) 
x <- c(2,NA,0,NA,3,7,7,5) 

dat <- data.frame(id,y,x) 

imp <- mice(dat, m=5, maxit=5, method='pmm', seed=500) 
implist <- lapply(1:5, function(i) complete(imp,i)) 

mod <- lapply(implist, function(i){ 
    lm.cluster(i, formula=y~x, cluster=i$id) 
}) 
# extract parameters and covariance matrices 
betas <- lapply(mod, coef) 
vars <- lapply(mod, vcov) 
# pool 
summary(pool_mi(qhat=betas, u=vars)) 
関連する問題