Compute Influence and Leverage Metrics for objects of type lm
Source: R/summclust_lm.R
summclust.lm.Rd
Compute influence and leverage metrics for clustered inference
based on the Cluster Jackknife as described in MacKinnon, Nielsen & Webb
(2022) for objects of type lm
.
Usage
# S3 method for lm
summclust(obj, cluster, params, type = "CRV3", ...)
Arguments
- obj
An object of type lm
- cluster
A clustering vector
- params
A character vector of variables for which leverage statistics should be computed.
- type
"CRV3" or "CRV3J" following MacKinnon, Nielsen & Webb. CRV3 by default
- ...
other function arguments passed to 'vcov'
Value
An object of type summclust
, including
a CRV3 variance-covariance estimate as described in
MacKinnon, Nielsen & Webb (2022)
- coef_estimates
The coefficient estimates of the linear model.
- vcov
A CRV3 or CRV3J variance-covariance matrix estimate as described in MacKinnon, Nielsen & Webb (2022)
- leverage_g
A vector of leverages.
- leverage_avg
The cluster leverage.
- partial_leverage
The partial leverages.
- beta_jack
The jackknifed' leave-on-cluster-out regression coefficients.
- params
The input parameter vector 'params'.
- N_G
The number of clusters-
- call
The
summclust()
function call.- cluster
The names of the clusters.
References
MacKinnon, James G., Morten Ørregaard Nielsen, and Matthew D. Webb. "Leverage, influence, and the jackknife in clustered regression models: Reliable inference using summclust." arXiv preprint arXiv:2205.03288 (2022).
Examples
# \donttest{
if(requireNamespace("summclust") && requireNamespace("haven")){
library(summclust)
library(haven)
nlswork <- read_dta("http://www.stata-press.com/data/r9/nlswork.dta")
# drop NAs at the moment
nlswork <- nlswork[, c("ln_wage", "grade", "age", "birth_yr", "union", "race", "msp", "ind_code")]
nlswork <- na.omit(nlswork)
lm_fit <- lm(
ln_wage ~ union + race + msp + as.factor(birth_yr) + as.factor(age) + as.factor(grade),
data = nlswork)
res <- summclust(
obj = lm_fit,
cluster = ~ind_code,
params = c("msp", "union")
)
summary(res)
tidy(res)
plot(res)
}
#> Error in eval(mf, parent.frame()): object 'nlswork' not found
# }