hdeffsev: Hauck-Donner Effects: Severity Measures

Description Usage Arguments Details Value Note Author(s) See Also Examples

View source: R/hdeff.R

Description

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

Usage

1
2
3
hdeffsev(x, y, dy, ddy, allofit = FALSE, tol0 = 0.1,
         severity.table = c("None", "Faint", "Weak", "Moderate",
                            "Strong", "Extreme", "Undetermined"))

Arguments

x, y

Numeric vectors; x are the estimates, and y are the 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 7 values. The last value is used for initialization. Usually users should not assign anything to arguments severity.table or tol0.

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

This function is 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 derivative is 0, and beyond that the HDE is really manifest because the derivative is negative.

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

For "faint" and "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 HDE.

For "moderate", "strong" and "extreme" the Wald statistic is decreasing as the estimate gets away from 0, 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 returns a labelled vector with elements selected from severity.table. If allofit = TRUE then Yee (2018) gives details about the other list components: 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

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

See hdeff; Yee (2018) gives details on VGLM HDE detection, severity measures, two tipping points (1/4 and 3/5), parameter space partitioning into several regions, and a bound for the HDE for 1-parameter binary regression, etc.

Author(s)

Thomas W. Yee.

See Also

seglines, hdeff.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
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 Jan. 16, 2021, 5:21 p.m.