The functions emmeans
, ref_grid
, and related ones
automatically detect response transformations that are recognized by
examining the model formula. These are log
, log2
, log10
,
log1p
,
sqrt
, logit
, probit
, cauchit
, cloglog
; as
well as (for a response variable y
) asin(sqrt(y))
,
asinh(sqrt(y))
, and sqrt(y) + sqrt(y+1)
. In addition, any
constant multiple of these (e.g., 2*sqrt(y)
) is auto-detected and
appropriately scaled (see also the tran.mult
argument in
update.emmGrid
).
A few additional character strings may be supplied as the tran
argument in update.emmGrid
: "identity"
,
"1/mu^2"
, "inverse"
, "reciprocal"
, "log10"
, "log2"
, "asin.sqrt"
,
and "asinh.sqrt"
.
More general transformations may be provided as a list of functions and
supplied as the tran
argument as documented in
update.emmGrid
. The make.tran
function returns a
suitable list of functions for several popular transformations. Besides being
usable with update
, the user may use this list as an enclosing
environment in fitting the model itself, in which case the transformation is
auto-detected when the special name linkfun
(the transformation
itself) is used as the response transformation in the call. See the examples
below.
Most of the transformations available in "make.tran" require a parameter,
specified in param
; in the following discussion, we use \(p\) to
denote this parameter, and \(y\) to denote the response variable.
The type
argument specifies the following transformations:
"genlog"
Generalized logarithmic transformation: \(log(y +
p)\), where \(y > -p\)
"power"
Power transformation: \(y^p\), where \(y > 0\).
When \(p = 0\), "log"
is used instead
"boxcox"
The Box-Cox transformation (unscaled by the geometric
mean): \((y^p - 1) / p\), where \(y > 0\). When \(p = 0\), \(log(y)\)
is used.
"sympower"
A symmetrized power transformation on the whole real
line:
\(abs(y)^p * sign(y)\). There are no restrictions on \(y\), but we
require \(p > 0\) in order for the transformation to be monotone and
continuous.
"asin.sqrt"
Arcsin-square-root transformation:
\(sin^(-1)(y/p)^{1/2)}\). Typically, the parameter \(p\) is equal to 1 for
a fraction, or 100 for a percentage.
"bcnPower"
Box-Cox with negatives allowed, as described for the
bcnPower
function in the car package. It is defined as the Box-Cox
transformation \((z^p - 1) / p\) of the variable \(z = y + (y^2+g^2)^(1/2)\).
This requires param
to have two elements:
the power \(p\) and the offset \(g > 0\).
"scale"
This one is a little different than the others, in that
param
is ignored; instead, param
is determined by calling
scale(y, ...)
. The user should give as y
the response variable in the
model to be fitted to its scaled version.
The user may include a second element in param
to specify an
alternative origin (other than zero) for the "power"
, "boxcox"
,
or "sympower"
transformations. For example, type = "power",
param = c(1.5, 4) specifies the transformation \((y - 4)^1.5\).
In the "genpower"
transformation, a second param
element may be
used to specify a base other than the default natural logarithm. For example,
type = "genlog", param = c(.5, 10) specifies the \(log10(y + .5)\)
transformation. In the "bcnPower"
transformation, the second element
is required and must be positive.
For purposes of back-transformation, the sqrt(y) + sqrt(y+1)
transformation is treated exactly the same way as 2*sqrt(y), because
both are regarded as estimates of \(2\sqrt\mu\).