Wald_test
reports Wald-type tests of linear contrasts from a fitted
linear regression model, using a sandwich estimator for the
variance-covariance matrix and a small sample correction for the p-value.
Several different small-sample corrections are available.
Arguments
- obj
Fitted model for which to calculate Wald tests.
- constraints
List of one or more constraints to test. See details and examples.
- vcov
Variance covariance matrix estimated using
vcovCR
or a character string specifying which small-sample adjustment should be used to calculate the variance-covariance.- test
Character vector specifying which small-sample correction(s) to calculate. The following corrections are available:
"chi-sq"
,"Naive-F"
,"Naive-Fp"
,"HTA"
,"HTB"
,"HTZ"
,"EDF"
,"EDT"
. Default is"HTZ"
.- tidy
Logical value controlling whether to tidy the test results. If
constraints
is a list with multiple constraints, the result will be coerced into a data frame whentidy = TRUE
.- ...
Further arguments passed to
vcovCR
, which are only needed ifvcov
is a character string.
Details
Constraints can be specified directly as q X p matrices or
indirectly through constrain_equal
,
constrain_zero
, or constrain_pairwise
Examples
if (requireNamespace("carData", quietly = TRUE)) withAutoprint({
data(Duncan, package = "carData")
Duncan$cluster <- sample(LETTERS[1:8], size = nrow(Duncan), replace = TRUE)
Duncan_fit <- lm(prestige ~ 0 + type + income + type:income + type:education, data=Duncan)
# Note that type:income terms are interactions because main effect of income is included
# but type:education terms are separate slopes for each unique level of type
# Test equality of intercepts
Wald_test(Duncan_fit,
constraints = constrain_equal(1:3),
vcov = "CR2", cluster = Duncan$cluster)
# Test equality of type-by-education slopes
Wald_test(Duncan_fit,
constraints = constrain_equal(":education", reg_ex = TRUE),
vcov = "CR2", cluster = Duncan$cluster)
# Pairwise comparisons of type-by-education slopes
Wald_test(Duncan_fit,
constraints = constrain_pairwise(":education", reg_ex = TRUE),
vcov = "CR2", cluster = Duncan$cluster)
# Test type-by-income interactions
Wald_test(Duncan_fit,
constraints = constrain_zero(":income", reg_ex = TRUE),
vcov = "CR2", cluster = Duncan$cluster)
# Pairwise comparisons of type-by-income interactions
Wald_test(Duncan_fit,
constraints = constrain_pairwise(":income", reg_ex = TRUE, with_zero = TRUE),
vcov = "CR2", cluster = Duncan$cluster)
})
#> > data(Duncan, package = "carData")
#> > Duncan$cluster <- sample(LETTERS[1:8], size = nrow(Duncan), replace = TRUE)
#> > Duncan_fit <- lm(prestige ~ 0 + type + income + type:income + type:education,
#> + data = Duncan)
#> > Wald_test(Duncan_fit, constraints = constrain_equal(1:3), vcov = "CR2",
#> + cluster = Duncan$cluster)
#> test Fstat df_num df_denom p_val sig
#> HTZ 0.677 2 1.44 0.621
#> > Wald_test(Duncan_fit, constraints = constrain_equal(":education", reg_ex = TRUE),
#> + vcov = "CR2", cluster = Duncan$cluster)
#> test Fstat df_num df_denom p_val sig
#> HTZ 0.0642 2 2.9 0.939
#> > Wald_test(Duncan_fit, constraints = constrain_pairwise(":education", reg_ex = TRUE),
#> + vcov = "CR2", cluster = Duncan$cluster)
#> $`typeprof:education - typebc:education`
#> test Fstat df_num df_denom p_val sig
#> HTZ 0.00147 1 4.84 0.971
#>
#> $`typewc:education - typebc:education`
#> test Fstat df_num df_denom p_val sig
#> HTZ 0.0766 1 4.59 0.794
#>
#> $`typewc:education - typeprof:education`
#> test Fstat df_num df_denom p_val sig
#> HTZ 0.0937 1 2.42 0.784
#>
#> > Wald_test(Duncan_fit, constraints = constrain_zero(":income", reg_ex = TRUE),
#> + vcov = "CR2", cluster = Duncan$cluster)
#> test Fstat df_num df_denom p_val sig
#> HTZ 0.858 2 2.48 0.521
#> > Wald_test(Duncan_fit, constraints = constrain_pairwise(":income", reg_ex = TRUE,
#> + with_zero = TRUE), vcov = "CR2", cluster = Duncan$cluster)
#> $`typeprof:income`
#> test Fstat df_num df_denom p_val sig
#> HTZ 0.776 1 3.73 0.432
#>
#> $`typewc:income`
#> test Fstat df_num df_denom p_val sig
#> HTZ 2.27 1 2.54 0.244
#>
#> $`typewc:income - typeprof:income`
#> test Fstat df_num df_denom p_val sig
#> HTZ 0.000483 1 2.75 0.984
#>