Note that the S datasets are called `ABM` internally so
as to not cause confusion with the variable `abm`.

These are data on 581 patients
having either acute viral (abm=0) or acute bacterial (abm=1)
meningitis, from a study done at Duke University Medical
Center that was published in Spanos A, Harrell FE, Durack
DT (1989): Differential diagnosis of acute meningitis: An
analysis of the predictive value of initial observations.
*JAMA* 262: 2700-2707. Note that this is the
complete dataset, not the subset of observations having
complete data on key variables that was used to fit the
multivariable model in the article. Expressions for
computing key derived variables are stored as an
attribute named `derived`
on the data frame, and a vector of names of variables
used in the final model in the article are contained in
an attribute named `main.analysis.variables`.
To create the derived variables do something such as:

attach(ABM) eval(attr(ABM,'derived'))

To just list the formulas for derived variables type

attr(ABM, 'derived').

If you want to use CSF/blood glucose ratio as a variable, you will need to create this derived variable before fitting models as this variable is derived from more than one input variable (this will also allow multiple imputation on this derived variable). For derived variables involving only a single input variable, it is best to derive them during the model fit. Here is an example

# Function to compute no. months from peak of summer dsummer <- function(x) pmin(abs(x-8), abs(x+12-8)) # Function to compute cube root cr <- function(x) x^(1/3) f <- lrm(abm ~ dsummer(month) + rcs(cr(wbc), 4) + rcs(log(gl+1), 5))

Sometimes it is a good idea to create multiple imputations using only
basic variables. Then derived variables need to be recomputed for
each imputation. This can be done using the `Hmisc
fit.mult.impute` function's `derived` parameter. If you
are using only the pre-defined derived variables you can specify
`derived=attr(ABM, 'derived')` to `fit.mult.impute`.
Note that if a variable is derived from a single variable through
the use of a function such as the `dsummer` function above,
that derived variable does
not need to be defined to `derived=` in the call to
`fit.mult.impute`. But if you compute a **variable** named
`dsummer` as is done in `attr(ABM,'derived')` you do
need to specify the expression in `fit.mult.impute(..., derived=...) .
`

`In the modeling that was done in the article, the gram smear
result was not used in deriving the model, but if the gram smear
was known and positive ( gram > 0),
the predicted Prob(abm) was overridden to 1.0.`

Frank E Harrell Jr Last modified: Fri Dec 27 17:16:55 EST 2002