Nothing
#' srr_stats (tests)
#' @srrstats {RE2.1} Ensures that models throw meaningful error messages when input parameters or data are invalid.
#' @srrstats {RE3.2} Compares model outputs (coefficients and fixed effects) against established benchmarks like base R's `glm`.
#' @srrstats {RE3.3} Confirms consistency of fixed effects and structural parameters between `feglm` and equivalent base models.
#' @srrstats {RE5.1} Validates appropriate error handling for omitted arguments, such as missing formula or data.
#' @srrstats {RE5.2} Confirms that incorrect control settings result in appropriate error messages.
#' @srrstats {RE5.3} Verifies that the function stops execution when given unsupported model families or inappropriate responses.
#' @srrstats {RE5.4} Ensures that the model gracefully handles invalid starting values for beta, eta, or theta.
#' @srrstats {RE6.0} Implements robust testing for invalid combinations of fixed effects or missing parameters in APEs and GLMs.
#' @srrstats {RE7.1} Validates consistency in output types and structures across all supported families and link functions.
#' @srrstats {RE7.2} Confirms that confidence intervals and standard errors are computed correctly for coefficients.
#' @noRd
NULL
test_that("feglm is similar to glm", {
# Gaussian ----
# see test-felm.R
# Poisson
# see fepoisson
# Binomial ----
mod <- feglm(
am ~ wt + mpg | cyl,
mtcars,
family = binomial()
)
mod_base <- glm(
am ~ wt + mpg + as.factor(cyl),
mtcars,
family = binomial()
)
expect_equal(unname(round(coef(mod) - coef(mod_base)[2:3], 3)), rep(0, 2))
fe <- unname(drop(fixed_effects(mod)$cyl))
fe_base <- coef(mod_base)[c(1, 4, 5)]
fe_base <- unname(fe_base + c(0, rep(fe_base[1], 2)))
expect_equal(round(fe - fe_base, 2), rep(0, 3))
# Gamma ----
mod <- feglm(
mpg ~ wt + am | cyl,
mtcars,
family = Gamma()
)
mod_base <- glm(
mpg ~ wt + am + as.factor(cyl),
mtcars,
family = Gamma()
)
expect_equal(unname(round(coef(mod) - coef(mod_base)[2:3], 3)), rep(0, 2))
fe <- unname(drop(fixed_effects(mod)$cyl))
fe_base <- coef(mod_base)[c(1, 4, 5)]
fe_base <- unname(fe_base + c(0, rep(fe_base[1], 2)))
expect_equal(round(fe - fe_base, 2), rep(0, 3))
# Inverse Gaussian ----
mod <- feglm(
mpg ~ wt + am | cyl,
mtcars,
family = inverse.gaussian()
)
mod_base <- glm(
mpg ~ wt + am + as.factor(cyl),
mtcars,
family = inverse.gaussian()
)
expect_equal(unname(round(coef(mod) - coef(mod_base)[2:3], 3)), rep(0, 2))
fe <- unname(drop(fixed_effects(mod)$cyl))
fe_base <- coef(mod_base)[c(1, 4, 5)]
fe_base <- unname(fe_base + c(0, rep(fe_base[1], 2)))
expect_equal(round(fe - fe_base, 2), rep(0, 3))
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.