Function is a class of functions for creating other S functions.
Function.Design
is the method for creating S functions to compute
X beta, based on a model fitted with
Design in effect.
Like
latex.Design,
Function.Design simplifies restricted cubic
spline functions and factors out terms in second-order interactions.
Function.Design
will not work for models that have third-order
interactions involving restricted cubic splines.
Function.cph
is a particular method for handling fits from
cph, for
which an intercept (the negative of the centering constant) is added to
the model.
sascode is a function that takes an S function such
as one created by
Function and does most of the editing
to turn the function definition into
a fragment of SAS code for computing X beta from the fitted model, along
with assignment statements that initialize predictors to reference values.
## S3 method for class 'Design': Function(object, intercept=NULL, digits=max(8, .Options$digits), ...) ## S3 method for class 'cph': Function(object, intercept=-object$center, ...) # Use result as fun(predictor1=value1, predictor2=value2, ...) sascode(object, file='', append=FALSE)
Design in effect
Function.cph).
The intercept is usually retrieved from the regression coefficients
automatically.
TRUE to have
sascode append code to an existing file named
file.
Function.Design from
Function.cph
Function returns a S-PLUS function that can be invoked in any
usual context. The function has one argument per predictor variable,
and the default values of the predictors are set to
adjust-to values
(see
datadist). Multiple predicted X beta values may be calculated
by specifying vectors as arguments to the created function.
All non-scalar argument values must have the same length.
Frank Harrell
Department of Biostatistics
Vanderbilt University
f.harrell@vanderbilt.edu
set.seed(1331)
x1 <- exp(rnorm(100))
x2 <- factor(sample(c('a','b'),100,rep=TRUE))
dd <- datadist(x1, x2)
options(datadist='dd')
y <- log(x1)^2+log(x1)*(x2=='b')+rnorm(100)/4
f <- ols(y ~ pol(log(x1),2)*x2)
f$coef
g <- Function(f, digits=5)
g
sascode(g)
g()
g(x1=c(2,3), x2='b') #could omit x2 since b is default category
predict(f, expand.grid(x1=c(2,3),x2='b'))
g8 <- Function(f) # default is 8 sig. digits
g8(x1=c(2,3), x2='b')
options(datadist=NULL)
## Not run:
# Make self-contained functions for computing survival probabilities
# using a log-normal regression
f <- psm(Surv(d.time, death) ~ rcs(age,4)*sex, dist='gaussian')
g <- Function(f)
surv <- Survival(f)
# Compute 2 and 5-year survival estimates for 50 year old male
surv(c(2,5), g(age=50, sex='male'))
## End(Not run)