Cluster Robust Standard Errors for Linear Models and General Linear Models
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 class 'lm.cluster' summary(object,...) ## S3 method for class 'glm.cluster' summary(object,...) ## S3 method for class 'lm.cluster' coef(object,...) ## S3 method for class 'glm.cluster' coef(object,...) ## S3 method for class 'lm.cluster' vcov(object,...) ## S3 method for class '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
lm_res |
Value of |
glm_res |
Value of |
vcov |
Covariance matrix of parameter estimates |
############################################################################# # 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) ## Not run: ############################################################################# # 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) ## End(Not run)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.