Learn R Programming

clusterSEs (version 2.2)

cluster.wild.ivreg: Wild Cluster Bootstrapped p-Values For For Regression With Instrumental Variables

Description

This software estimates p-values using wild cluster bootstrapped t-statistics for instrumental variables regression models (Cameron, Gelbach, and Miller 2008). Residuals are repeatedly re-sampled by cluster to form a pseudo-dependent variable, a model is estimated for each re-sampled data set, and inference is based on the sampling distribution of the pivotal (t) statistic. Users may choose whether to impose the null hypothesis for independent variables; the null is never imposed for the intercept or any model that includes factor variables. Confidence intervals are only reported when the null hypothesis is not imposed.

Usage

cluster.wild.ivreg(mod, dat, cluster, ci.level = 0.95, impose.null = TRUE,
  boot.reps = 1000, report = TRUE, prog.bar = TRUE)

Arguments

mod
A linear (identity link) model estimated using ivreg.
dat
The data set used to estimate mod.
cluster
A formula of the clustering variable.
ci.level
What confidence level should CIs reflect? (Note: only reported when impose.null == FALSE).
impose.null
Should we impose the null Ho?
boot.reps
The number of bootstrap samples to draw.
report
Should a table of results be printed to the console?
prog.bar
Show a progress bar of the bootstrap (= TRUE) or not (= FALSE).

Value

  • A list with the elements
  • p.valuesA matrix of the estimated p-values.
  • ciA matrix of confidence intervals (if null not imposed).

References

Cameron, A. Colin, Jonah B. Gelbach, and Douglas L. Miller. 2008. "Bootstrap-Based Improvements for Inference with Clustered Errors." The Review of Economics and Statistics 90(3): 414-427.

Examples

Run this code
# example one: predict cigarette consumption
data("CigarettesSW", package = "AER") 
CigarettesSW$rprice <- with(CigarettesSW, price/cpi)
CigarettesSW$rincome <- with(CigarettesSW, income/population/cpi)
CigarettesSW$tdiff <- with(CigarettesSW, (taxs - tax)/cpi)
fm <- ivreg(log(packs) ~ log(rprice) + log(rincome) | 
    log(rincome) + tdiff + I(tax/cpi), data = CigarettesSW)

# compute cluster-adjusted p-values
cluster.wd.c <- cluster.wild.ivreg(fm, dat=CigarettesSW, cluster = ~state, report = T)



# example two: pooled IV analysis of employment
require(plm)
require(AER)
data(EmplUK)
EmplUK$lag.wage <- lag(EmplUK$wage)
emp.iv <- ivreg(emp ~ wage + log(capital+1) | output + lag.wage + log(capital+1), data = EmplUK)

# compute cluster-adjusted p-values
cluster.wd.e <- cluster.wild.ivreg(mod=emp.iv, dat=EmplUK, cluster = ~firm)

Run the code above in your browser using DataLab