
Function
is a class of functions for creating other S functions.
Function.rms
is the method for creating S functions to compute
X beta, based on a model fitted with rms
in effect.
Like latexrms
, Function.rms
simplifies restricted cubic
spline functions and factors out terms in second-order interactions.
Function.rms
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.
perlcode
similarly creates Perl code to evaluate a fitted
regression model.
# S3 method for rms
Function(object, intercept=NULL,
digits=max(8, .Options$digits), posterior.summary=c('mean', 'median', 'mode'), …)
# S3 method for cph
Function(object, intercept=-object$center, …)# Use result as fun(predictor1=value1, predictor2=value2, \dots)
sascode(object, file='', append=FALSE)
perlcode(object)
a fit created with rms
in effect
an intercept value to use (not allowed to be specified to Function.cph
).
The intercept is usually retrieved from the regression coefficients
automatically.
number of significant digits to use for coefficients and knot locations
if using a Bayesian model fit such as from
blrm
, specifies whether to use posterior mode/mean/median parameter estimates in generating the function
name of a file in which to write the SAS code. Default is to write to standard output.
set to TRUE
to have sascode
append code to an existing file named
file
.
arguments to pass to Function.rms
from
Function.cph
Function
returns an 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.
perlcode
returns a character string with embedded newline characters.
# NOT RUN {
suppressWarnings(RNGversion("3.5.0"))
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)
cat(perlcode(g), '\n')
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'))
# }
Run the code above in your browser using DataLab