Learn R Programming

rms (version 4.1-3)

Function: Compose an S Function to Compute X beta from a Fit

Description

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.

Usage

## S3 method for class 'rms':
Function(object, intercept=NULL,
 digits=max(8, .Options$digits), ...)
## S3 method for class 'cph':
Function(object, intercept=-object$center, \dots)

# Use result as fun(predictor1=value1, predictor2=value2, ...)

sascode(object, file='', append=FALSE)

perlcode(object)

Arguments

object
a fit created with rms in effect
intercept
an intercept value to use (not allowed to be specified to Function.cph). The intercept is usually retrieved from the regression coefficients automatically.
digits
number of significant digits to use for coefficients and knot locations
file
name of a file in which to write the SAS code. Default is to write to standard output.
append
set to TRUE to have sascode append code to an existing file named file.
...
arguments to pass to Function.rms from Function.cph

Value

  • 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.

See Also

latexrms, transcan, predict.rms, rms, rms.trans

Examples

Run this code
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)


# 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'))</n>
<keyword>regression</keyword>
<keyword>methods</keyword>
<keyword>interface</keyword>
<keyword>models</keyword>
<keyword>survival</keyword>
<keyword>math</keyword>
<concept>logistic regression model</concept>

Run the code above in your browser using DataLab