coef_test reports t-tests for each coefficient estimate in a fitted linear regression model, using a sandwich estimator for the standard errors and a small sample correction for the p-value. The small-sample correction is based on a Satterthwaite approximation or a saddlepoint approximation.

## Usage

coef_test(
obj,
vcov,
test = "Satterthwaite",
coefs = "All",
p_values = TRUE,
...
)

## Arguments

obj

Fitted model for which to calculate t-tests.

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 corrections to calculate. "z" returns a z test (i.e., using a standard normal reference distribution). "naive-t" returns a t test with m - 1 degrees of freedom, where m is the number of unique clusters. "naive-tp" returns a t test with m - p degrees of freedom, where p is the number of regression coefficients in obj. "Satterthwaite" returns a Satterthwaite correction. "saddlepoint" returns a saddlepoint correction. Default is "Satterthwaite".

coefs

Character, integer, or logical vector specifying which coefficients should be tested. The default value "All" will test all estimated coefficients.

p_values

Logical indicating whether to report p-values. The default value is TRUE.

...

Further arguments passed to vcovCR, which are only needed if vcov is a character string.

## Value

A data frame containing estimated regression coefficients, standard errors, and test results. For the Satterthwaite approximation, degrees of freedom and a p-value are reported. For the saddlepoint approximation, the saddlepoint and a p-value are reported.

vcovCR

## Examples


data("ChickWeight", package = "datasets")
lm_fit <- lm(weight ~ Diet  * Time, data = ChickWeight)
diet_index <- grepl("Diet.:Time", names(coef(lm_fit)))
coef_test(lm_fit, vcov = "CR2", cluster = ChickWeight$Chick, coefs = diet_index) #> Coef. Estimate SE t-stat d.f. (Satt) p-val (Satt) Sig. #> Diet2:Time 1.77 1.49 1.19 18.8 0.2497 #> Diet3:Time 4.58 1.35 3.39 18.8 0.0031 ** #> Diet4:Time 2.87 1.01 2.85 18.3 0.0105 * V_CR2 <- vcovCR(lm_fit, cluster = ChickWeight$Chick, type = "CR2")
coef_test(lm_fit, vcov = V_CR2, coefs = diet_index)
#>       Coef. Estimate   SE t-stat d.f. (Satt) p-val (Satt) Sig.
#>  Diet2:Time     1.77 1.49   1.19        18.8       0.2497
#>  Diet3:Time     4.58 1.35   3.39        18.8       0.0031   **
#>  Diet4:Time     2.87 1.01   2.85        18.3       0.0105    *