lm.cluster.Rd
Computes cluster robust standard errors for linear models
(stats::lm
) and general linear models
(stats::glm
) using the
multiwayvcov::vcovCL
function in the sandwich package.
lm.cluster(data, formula, cluster, weights=NULL, subset=NULL ) glm.cluster(data, formula, cluster, weights=NULL, subset=NULL, family="gaussian" ) # S3 method for lm.cluster summary(object,...) # S3 method for glm.cluster summary(object,...) # S3 method for lm.cluster coef(object,...) # S3 method for glm.cluster coef(object,...) # S3 method for lm.cluster vcov(object,...) # S3 method for glm.cluster vcov(object,...)
data | Data frame |
---|---|
formula | An R formula |
cluster | Variable name for cluster variable contained in |
subset | Optional vector specifying a subset of observations to be used. |
weights | Optional vector of weights to be used. |
family | Description of the error distribution and link function to be used in
the model, see |
... | Further arguments to be passed to |
object | Object of class |
List with following entries
Value of stats::lm
Value of stats::glm
Covariance matrix of parameter estimates
if (FALSE) { ############################################################################# # EXAMPLE 1: Cluster robust standard errors data.ma01 ############################################################################# data(data.ma01) dat <- data.ma01 #*** Model 1: Linear regression mod1 <- miceadds::lm.cluster( data=dat, formula=read ~ hisei + female, cluster="idschool" ) coef(mod1) vcov(mod1) summary(mod1) # estimate Model 1, but cluster is provided as a vector mod1b <- miceadds::lm.cluster( data=dat, formula=read ~ hisei + female, cluster=dat$idschool) summary(mod1b) #*** Model 2: Logistic regression dat$highmath <- 1 * ( dat$math > 600 ) # create dummy variable mod2 <- miceadds::glm.cluster( data=dat, formula=highmath ~ hisei + female, cluster="idschool", family="binomial") coef(mod2) vcov(mod2) summary(mod2) ############################################################################# # EXAMPLE 2: Cluster robust standard errors for multiply imputed datasets ############################################################################# library(mitools) data(data.ma05) dat <- data.ma05 # imputation of the dataset: use six imputations resp <- dat[, - c(1:2) ] imp <- mice::mice( resp, method="norm", 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=denote ~ migrant+ misei, cluster=dat$idclass ) } ) # 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( miceadds::pool_mi( qhat=betas, u=vars ) ) #------ compute global F-test for hypothesis that all predictors have zero coefficient values library(mitml) Nimp <- 6 # number of imputations np <- length(betas[[1]]) # number of parameters beta_names <- names(betas[[1]]) # define vector of parameters for which constraints should be tested constraints <- beta_names[-1] # create input for mitml::testConstraints function qhat <- matrix( unlist(betas), ncol=Nimp) rownames(qhat) <- beta_names uhat <- array( unlist(vars), dim=c(np,np,Nimp)) dimnames(uhat) <- list( beta_names, beta_names, NULL ) # compute global F-test Ftest <- mitml::testConstraints( qhat=betas, uhat=vars, constraints=constraints ) print(Ftest) }