## Not run:
# n <- 350 # define sample size
# set.seed(17) # so can reproduce the results
# age <- rnorm(n, 50, 10)
# blood.pressure <- rnorm(n, 120, 15)
# cholesterol <- rnorm(n, 200, 25)
# sex <- factor(sample(c('female','male'), n,TRUE))
# label(age) <- 'Age' # label is in Hmisc
# label(cholesterol) <- 'Total Cholesterol'
# label(blood.pressure) <- 'Systolic Blood Pressure'
# label(sex) <- 'Sex'
# units(cholesterol) <- 'mg/dl' # uses units.default in Hmisc
# units(blood.pressure) <- 'mmHg'
#
# # Specify population model for log odds that Y=1
# L <- .4*(sex=='male') + .045*(age-50) +
# (log(cholesterol - 10)-5.2)*(-2*(sex=='female') + 2*(sex=='male')) +
# .01 * (blood.pressure - 120)
# # Simulate binary y to have Prob(y=1) = 1/[1+exp(-L)]
# y <- ifelse(runif(n) < plogis(L), 1, 0)
#
# ddist <- datadist(age, blood.pressure, cholesterol, sex)
# options(datadist='ddist')
#
# fit <- lrm(y ~ blood.pressure + sex * (age + rcs(cholesterol,4)),
# x=TRUE, y=TRUE)
#
# p <- plotp(Predict(fit))
# p$Continuous
# p$Categorical
# # When using Rmarkdown html notebook, best to use
# # prList(p) to render the two objects
# plotp(Predict(fit), rdata=llist(blood.pressure, age))$Continuous
# # spike histogram plot for two of the predictors
#
# p <- Predict(fit, name=c('age','cholesterol')) # Make 2 plots
# plotp(p)
#
# p <- Predict(fit, age, sex)
# plotp(p, rdata=llist(age,sex))
# # rdata= allows rug plots (1-dimensional scatterplots)
# # on each sex's curve, with sex-
# # specific density of age
# # If data were in data frame could have used that
# p <- Predict(fit, age=seq(20,80,length=100), sex='male', fun=plogis)
# # works if datadist not used
# plotp(p, ylab='P')
# # plot predicted probability in place of log odds
#
# # Compute predictions for three predictors, with superpositioning or
# # conditioning on sex, combined into one graph
#
# p1 <- Predict(fit, age, sex)
# p2 <- Predict(fit, cholesterol, sex)
# p3 <- Predict(fit, blood.pressure, sex)
# p <- rbind(age=p1, cholesterol=p2, blood.pressure=p3)
# plotp(p, ncols=2, rdata=llist(age, cholesterol, sex))
# ## End(Not run)
Run the code above in your browser using DataLab