hdeffsev: Hauck-Donner Effect: Severity Measures

View source: R/hdeff.R

hdeffsevR Documentation

Hauck-Donner Effect: Severity Measures

Description

Computes the severity of the Hauck-Donner effect for each regression coefficient of a VGLM regression.

Usage

hdeffsev(x, y, dy, ddy, allofit = FALSE, eta0 = 0, COPS0 = eta0,
         severity.table = c("None", "Faint", "Weak",
             "Moderate", "Strong", "Extreme", "Undetermined"))
hdeffsev2(x, y, dy, ddy, allofit = FALSE, ndepends = FALSE,
          eta0 = 0,
          severity.table = c("None", "Faint", "Weak",
              "Moderate", "Strong", "Extreme",
              "Undetermined")[if (ndepends) TRUE else
              c(1, 4, 6, 7)], tol0 = 0.1)

Arguments

x, y

Numeric vectors; x are the estimates (sorted), and y are the signed Wald statistics.

dy, ddy

Numeric vectors; the first and second derivatives of the Wald statistics. They can be computed by hdeff.

allofit

Logical. If TRUE then other quantities are returned in a list. The default is a vector with elements selected from the argument severity.table.

severity.table

Character vector with 6 values plus the last value for initialization. Usually users should not assign anything to this argument.

eta0

Numeric. The hypothesized value. The default is appropriate for most symmetric binomialff links, and also for poissonff regression with the natural parameter.

ndepends

Logical. Use boundaries that depend on the sample size n? For hdeffsev2 the default is to use boundaries that do not depend on n, and consequently there are fewer severity measures. These do not use the normal or tangent lines; instead they are based only on the signs of dy and ddy.

COPS0

Numeric. See Yee (2023).

tol0

Numeric. Any estimate whose absolute value is less than tol0 is assigned the first value of the argument severity.table, i.e., none. This is to handle a singularity at the origin: the estimates might be extremely close to 0.

Details

Note: The function hdeffsev has a bug or two in it but they should be fixed later this year (2024).

Function hdeffsev is currently rough-and-ready. It is possible to use the first two derivatives obtained from hdeff to categorize the severity of the the Hauck-Donner effect (HDE). It is effectively assumed that, starting at the origin and going right, the curve is made up of a convex segment followed by a concave segment and then the convex segment. Midway in the concave segment the first derivative is 0, and beyond that the HDE is really manifest because the derivative remains negative.

For "None" the estimate lies on the convex part of the curve near the origin, hence there is very little HDE at all.

For "Weak" the estimate lies on the concave part of the curve but the Wald statistic is still increasing as estimate gets away from 0, hence it is only a mild form of the HDE.

For "Moderate", "Strong" and "Extreme" the Wald statistic is decreasing as the estimate gets away from eta0, hence it really does exhibit the HDE. It is recommended that lrt.stat be used to compute LRT p-values, as they do not suffer from the HDE.

Value

By default this function (hdeffsev) returns a labelled vector with elements selected from severity.table. If allofit = TRUE then Yee (2022) gives details about some of the other list components, e.g., a quantity called zeta is the normal line projected onto the x-axis, and its first derivative gives additional information about the position of the estimate along the curve.

Note

These functions are likely to change in the short future because it is experimental and far from complete. Improvements are intended.

The severity measures ideally should be based on tangent lines rather than normal lines so that the boundaries are independent of the sample size n. Hence such boundaries differ a little from Yee (2022) which had a mixture of such.

The functions were written specifically for binomialff, but they should work for some other family functions.

Currently, in order for "Strong" to be assigned correctly, at least one such value is needed on the LHS and/or RHS each. From those, two other boundary points are obtained so that it creates two intervals.

Author(s)

Thomas W. Yee.

References

Yee, T. W. (2022). On the Hauck-Donner effect in Wald tests: Detection, tipping points and parameter space characterization, Journal of the American Statistical Association, 117, 1763–1774. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1080/01621459.2021.1886936")}.

Yee, T. W. (2023). Some new results concerning the Wald tests and the parameter space. In review.

See Also

seglines, hdeff.

Examples

deg <- 4  # myfun is a function that approximates the HDE
myfun <- function(x, deriv = 0) switch(as.character(deriv),
  '0' = x^deg * exp(-x),
  '1' = (deg * x^(deg-1) - x^deg) * exp(-x),
  '2' = (deg*(deg-1)*x^(deg-2) - 2*deg*x^(deg-1) + x^deg)*exp(-x))

xgrid <- seq(0, 10, length = 101)
ansm <- hdeffsev(xgrid, myfun(xgrid), myfun(xgrid, deriv = 1),
                 myfun(xgrid, deriv = 2), allofit = TRUE)
digg <- 4
cbind(severity = ansm$sev, 
      fun      = round(myfun(xgrid), digg),
      deriv1   = round(myfun(xgrid, deriv = 1), digg),
      deriv2   = round(myfun(xgrid, deriv = 2), digg),
      zderiv1  = round(1 + (myfun(xgrid, deriv = 1))^2 +
                       myfun(xgrid, deriv = 2) * myfun(xgrid), digg))

VGAM documentation built on Sept. 18, 2024, 9:09 a.m.