2017-05-16 20 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

에있는 lm.cluster 함수는 일반 데이터 프레임 용입니다. 귀속 된 데이터를 곱하는 애플리케이션의 예가 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))