avas

0th

Percentile

Additivity and variance stabilization for regression

Estimate transformations of x and y such that the regression of y on x is approximately linear with constant variance

Keywords
models
Usage
avas(x, y, wt = rep(1, nrow(x)), cat = NULL, mon = NULL, lin = NULL, circ = NULL, delrsq = 0.01, yspan = 0)
Arguments
x
a matrix containing the independent variables.
y
a vector containing the response variable.
wt
an optional vector of weights.
cat
an optional integer vector specifying which variables assume categorical values. Positive values in cat refer to columns of the x matrix and zero to the response variable. Variables must be numeric, so a character variable should first be transformed with as.numeric() and then specified as categorical.
mon
an optional integer vector specifying which variables are to be transformed by monotone transformations. Positive values in mon refer to columns of the x matrix and zero to the response variable.
lin
an optional integer vector specifying which variables are to be transformed by linear transformations. Positive values in lin refer to columns of the x matrix and zero to the response variable.
circ
an integer vector specifying which variables assume circular (periodic) values. Positive values in circ refer to columns of the x matrix and zero to the response variable.
delrsq
termination threshold. Iteration stops when R-squared changes by less than delrsq in 3 consecutive iterations (default 0.01).
yspan
Optional window size parameter for smoothing the variance. Range is $[0,1]$. Default is 0 (cross validated choice). .5 is a reasonable alternative to try.
Value

A structure with the following components:
x
the input x matrix.
y
the input y vector.
tx
the transformed x values.
ty
the transformed y values.
rsq
the multiple R-squared value for the transformed values.
l
the codes for cat, mon, ...
m
not used in this version of avas
yspan
span used for smoothing the variance
iters
iteration number and rsq for that iteration
niters
number of iterations used

References

Rob Tibshirani (1987), ``Estimating optimal transformations for regression''. Journal of the American Statistical Association 83, 394ff.

Aliases
  • avas
  • avas.formula
Examples
TWOPI <- 8*atan(1)
x <- runif(200,0,TWOPI)
y <- exp(sin(x)+rnorm(200)/2)
a <- avas(x,y)
par(mfrow=c(3,1))
plot(a$y,a$ty)  # view the response transformation
plot(a$x,a$tx)  # view the carrier transformation
plot(a$tx,a$ty) # examine the linearity of the fitted model

# From D. Wang and M. Murphy (2005), Identifying nonlinear relationships
# regression using the ACE algorithm.  Journal of Applied Statistics,
# 32, 243-258, adapted for avas.
X1 <- runif(100)*2-1
X2 <- runif(100)*2-1
X3 <- runif(100)*2-1
X4 <- runif(100)*2-1

# Original equation of Y:
Y <- log(4 + sin(3*X1) + abs(X2) + X3^2 + X4 + .1*rnorm(100))

# Transformed version so that Y, after transformation, is a
# linear function of transforms of the X variables:
# exp(Y) = 4 + sin(3*X1) + abs(X2) + X3^2 + X4

a1 <- avas(cbind(X1,X2,X3,X4),Y)

par(mfrow=c(2,1))

# For each variable, show its transform as a function of
# the original variable and the of the transform that created it,
# showing that the transform is recovered.
plot(X1,a1$tx[,1])
plot(sin(3*X1),a1$tx[,1])

plot(X2,a1$tx[,2])
plot(abs(X2),a1$tx[,2])

plot(X3,a1$tx[,3])
plot(X3^2,a1$tx[,3])

plot(X4,a1$tx[,4])
plot(X4,a1$tx[,4])

plot(Y,a1$ty)
plot(exp(Y),a1$ty)
Documentation reproduced from package acepack, version 1.3-3.3, License: MIT + file LICENSE

Community examples

Looks like there are no examples yet.