Title: | Datasets from Hosmer, Lemeshow and Sturdivant, "Applied Logistic Regression" (3rd Ed., 2013) |
Version: | 0.9 |
Description: | An unofficial companion to "Applied Logistic Regression" by D.W. Hosmer, S. Lemeshow and R.X. Sturdivant (3rd ed., 2013) containing the dataset used in the book. |
URL: | https://github.com/lbraglia/aplore3 |
BugReports: | https://github.com/lbraglia/aplore3/issues |
Depends: | R (≥ 3.1.1) |
License: | GPL-3 |
LazyData: | true |
VignetteBuilder: | knitr |
Suggests: | knitr, MASS, vcdExtra, nnet, survival, pROC |
RoxygenNote: | 5.0.1 |
NeedsCompilation: | no |
Packaged: | 2016-10-20 07:47:27 UTC; l |
Author: | Luca Braglia [aut, cre] |
Maintainer: | Luca Braglia <lbraglia@gmail.com> |
Repository: | CRAN |
Date/Publication: | 2016-10-20 09:50:53 |
Datasets from Hosmer, Lemeshow and Sturdivant, "Applied Logistic Regression" (3rd ed., 2013)
Description
This package is an unofficial companion to the textbook "Applied Logistic Regression" by D.W. Hosmer, S. Lemeshow and R.X. Sturdivant (3rd ed., 2013).
Details
It includes all the datasets used in the book, both for easy reproducibility and algorithms benchmarking purposes.
Some analysis proposed in the text are reproduced in the examples, in order to provide data testing and code demos at the same time.
The vignette includes all the examples (with graphics too); therefore is organized per-dataset.
Datasets and variables have lower-case name with respect to the original sources. Categorical data were packaged as factor.
Regarding data coding, help pages list the internal/factor representation of the data (eg 1: No, 2: Yes), not the original one (eg 0: No, 1: Yes). This is intended to allow easier/safer recoding based on as.integer, especially for multinomial variables.
Source
Hosmer, D.W., Lemeshow, S. and Sturdivant, R.X. (2013) Applied Logistic Regression, 3rd ed., New York: Wiley
APS data
Description
aps dataset.
Usage
aps
Format
A data.frame with 508 rows and 11 variables:
- id
Identification Code (1 - 508)
- place
Placement (1: Outpatient, 2: Day Treatment, 3: Intermediate Residential, 4: Residential)
- place3
Placement Combined (1: Outpatient or Day Treatment, 2: Intermediate Residential, 3: Residential )
- age
Age at Admission (Years)
- race
Race (1: White, 2: Non-white)
- gender
Gender (1: Female, 2: Male)
- neuro
Neuropsychiatric Disturbance (1: None, 2: Mild, 3: Moderate, 4: Severe)
- emot
Emotional Disturbance (1: Not Severe, 2: Severe)
- danger
Danger to Others (1: Unlikely, 2: Possible, 3: Probable, 4: Likely)
- elope
Elopement Risk (1: No Risk, 2: At Risk)
- los
Length of Hospitalization (Days)
- behav
Behavioral Symptoms Score (0 - 9)
- custd
State Custody (1: No, 2: Yes)
- viol
History of Violence (1: No, 2: Yes)
Source
Hosmer, D.W., Lemeshow, S. and Sturdivant, R.X. (2013) Applied Logistic Regression, 3rd ed., New York: Wiley
Examples
head(aps, n = 10)
summary(aps)
## Table 8.2 p. 274
library(nnet)
modt8.2 <- multinom(place3 ~ viol, data = aps)
summary(modt8.2)
exp(coef(modt8.2)[, "violYes"])
t(exp(confint(modt8.2)["violYes", ,]))
## To test differences between b_2 and b_1 we need the estimated variance
## covariance matrix for the fitted model (Table 8.3 p. 274).
vcov(modt8.2) # 'raw'
## To have exactly the same output as the text we need to rearrange just a
## minimum
VarCovM <- vcov(modt8.2)[c(2, 1, 4, 3), c(2, 1, 4, 3)]
VarCovM[upper.tri(VarCovM)] <- NA
VarCovM
## Testing against null model.
modt8.2Null <- multinom(place3 ~ 1, data = aps)
anova(modt8.2, modt8.2Null, test = "Chisq")
BURN1000 data
Description
burn1000 dataset.
Usage
burn1000
Format
A data.frame with 1000 rows and 9 variables:
- id
Identification code (1 - 1000)
- facility
Burn facility (1 - 40)
- death
Hospital discharge status (1: Alive, 2: Dead)
- age
Age at admission (Years)
- gender
Gender (1: Female, 2: Male)
- race
Race (1: Non-White, 2: White)
- tbsa
Total burn surface area (0 - 100%)
- inh_inj
Burn involved inhalation injury (1: No, 2: Yes)
- flame
Flame involved in burn injury (1: No, 2: Yes)
Source
Hosmer, D.W., Lemeshow, S. and Sturdivant, R.X. (2013) Applied Logistic Regression, 3rd ed., New York: Wiley
Examples
head(burn1000, n = 10)
summary(burn1000)
## Table 3.15 p. 80
summary(mod3.15 <- glm(death ~ tbsa + inh_inj + age + gender + flame + race,
family = binomial, data = burn1000 ))
BURN13M data
Description
burn13m dataset.
Usage
burn13m
Format
A data.frame with 388 rows and 11 variables: the covariate are
the same as those from burn1000
with the addition of
- pair
Pair Identification Code (1-119)
- pairid
Subject Identification Code within pair (1-4)
Source
Hosmer, D.W., Lemeshow, S. and Sturdivant, R.X. (2013) Applied Logistic Regression, 3rd ed., New York: Wiley
Examples
head(burn13m, n = 10)
summary(burn13m)
BURN_EVAL_1 data
Description
burn_eval_1 dataset.
Usage
burn_eval_1
Format
A data.frame with 500 rows and 9 variables: the covariate are
the same as those from burn1000
.
Source
Hosmer, D.W., Lemeshow, S. and Sturdivant, R.X. (2013) Applied Logistic Regression, 3rd ed., New York: Wiley
Examples
head(burn_eval_1, n = 10)
summary(burn_eval_1)
BURN_EVAL_2 data
Description
burn_eval_2 dataset.
Usage
burn_eval_2
Format
A data.frame with 500 rows and 9 variables: the covariate are
the same as those from burn1000
.
Source
Hosmer, D.W., Lemeshow, S. and Sturdivant, R.X. (2013) Applied Logistic Regression, 3rd ed., New York: Wiley
Examples
head(burn_eval_2, n = 10)
summary(burn_eval_2)
CHDAGE data
Description
chdage dataset.
Usage
chdage
Format
A data.frame with 100 rows and 4 variables:
- id
Identification code (1 - 100)
- age
Age (Years)
- agegrp
Age group (1: 20-39, 2: 30-34, 3: 35-39, 4: 40-44, 5: 45-49, 6: 50-54, 7: 55-59, 8: 60-69)
- chd
Presence of CHD (1: No, 2: Yes)
Source
Hosmer, D.W., Lemeshow, S. and Sturdivant, R.X. (2013) Applied Logistic Regression, 3rd ed., New York: Wiley
Examples
head(chdage, n = 10)
summary(chdage)
## Figure 1.1 p. 5
plot(as.integer(chd)-1 ~ age,
pch = 20,
main = "Figure 1.1 p. 5",
ylab = "Coronary heart disease",
xlab = "Age (years)",
data = chdage)
## Table 1.2
with(chdage, addmargins(table(agegrp)))
with(chdage, addmargins(table(agegrp, chd)))
(Means <- with(chdage, tapply(as.integer(chd)-1, list(agegrp), mean)))
## Figure 1.2 p. 6
midPoints <- c(24.5, seq(32, 57, 5), 64.5)
plot(midPoints, Means, pch = 20,
ylab = "Coronary heart disease (mean)",
xlab = "Age (years)", ylim = 0:1,
main = "Figure 1.2 p. 6")
lines(midPoints, Means)
## Table 1.3
summary( mod1.3 <- glm( chd ~ age, family = binomial, data = chdage ))
## Table 1.4
vcov(mod1.3)
## Computing OddsRatio and confidence intervals for age ...
exp(coef(mod1.3))[-1]
exp(confint(mod1.3))[-1, ]
GLOW11M data
Description
glow11m dataset.
Usage
glow11m
Format
A data.frame with 238 rows and 16 variables: the covariate are
the same as those from glow500
with the addition of
- pair
Pair Identification Code (1-119)
Source
Hosmer, D.W., Lemeshow, S. and Sturdivant, R.X. (2013) Applied Logistic Regression, 3rd ed., New York: Wiley
Examples
head(glow11m, n = 10)
summary(glow11m)
## Table 7.2 p. 252
library(survival)
mod7.2 <- clogit(as.numeric(fracture) ~ height + weight + bmi +
priorfrac + premeno + momfrac + armassist + raterisk +
strata(pair), data = glow11m)
summary(mod7.2)
GLOW500 data
Description
glow500 dataset.
Usage
glow500
Format
A data.frame with 500 rows and 15 variables:
- sub_id
Identification Code (1 - n)
- site_id
Study Site (1 - 6)
- phy_id
Physician ID code (128 unique codes)
- priorfrac
History of Prior Fracture (1: No, 2: Yes)
- age
Age at Enrollment (Years)
- weight
Weight at enrollment (Kilograms)
- height
Height at enrollment (Centimeters)
- bmi
Body Mass Index (Kg/m^2)
- premeno
Menopause before age 45 (1: No, 2: Yes)
- momfrac
Mother had hip fracture (1: No, 2: Yes)
- armassist
Arms are needed to stand from a chair (1: No, 2: Yes)
- smoke
Former or current smoker (1: No, 2: Yes)
- raterisk
Self-reported risk of fracture (1: Less than others of the same age, 2: Same as others of the same age, 3: Greater than others of the same age)
- fracscore
Fracture Risk Score (Composite Risk Score)
- fracture
Any fracture in first year (1: No, 2: Yes)
Source
Hosmer, D.W., Lemeshow, S. and Sturdivant, R.X. (2013) Applied Logistic Regression, 3rd ed., New York: Wiley
Examples
head(glow500, n = 10)
summary(glow500)
## Table 2.2 p. 39
summary(mod2.2 <- glm(fracture ~ age + weight + priorfrac +
premeno + raterisk,
family = binomial,
data = glow500))
## Table 2.3 p. 40
summary(mod2.3 <- update(mod2.2, . ~ . - weight - premeno))
## Table 2.4 p. 44
vcov(mod2.3)
## Table 3.6 p. 58
contrasts(glow500$raterisk)
## Contrasts: Table 3.8 and 3.9 p. 60
contrasts(glow500$raterisk) <- matrix(c(-1,-1,1,0,0,1), byrow= TRUE, ncol = 2)
summary(mod3.9 <- glm(fracture ~ raterisk, family = binomial,
data = glow500))
# cleaning modified dataset ...
rm(glow500)
## Table 5.1 pg 160 - Hosmer-Lemeshow test (with vcdExtra package)
mod4.16 <- glm(fracture ~ age * priorfrac + height + momfrac * armassist +
I(as.integer(raterisk) == 3) ,
family = binomial,
data = glow500)
library(vcdExtra)
summary(HLtest(mod4.16))
## Table 5.3 p. 171 - Classification table
glow500$pred4.16 <- predict(mod4.16, type = "response")
with(glow500, addmargins(table( pred4.16 > 0.5, fracture)))
## Sensitivy, specificity, ROC (using pROC)
library(pROC)
## Figure 5.3 p. 177 - ROC curve (using pROC package)
print(roc4.16 <- roc(fracture ~ pred4.16, data = glow500))
plot(roc4.16, main = "Figure 5.3 p. 177")
## Table 5.8 p. 175
vars <- c("thresholds","sensitivities","specificities")
tab5.8 <- data.frame(roc4.16[vars])
## Now, for printing/comparison purposes, steps below in order to find
## threshold values most similar to those in the table
findIndex <- function(x, y) which.min( (x-y)^2 )
cutPoints <- seq(0.05, 0.75, by = 0.05)
tableIndex <- mapply(findIndex, y = cutPoints,
MoreArgs = list(x = roc4.16$thresholds))
## And finally, let's print a reasonable approximation of table 5.8
writeLines("\nTable 5.8 p. 175\n")
tab5.8[tableIndex, ]
## Figure 5.1 p. 175
plot(specificities ~ thresholds, xlim = c(0, 1), type = "l",
xlab = "Probabilty cutoff", ylab = "Sensitivity/specificity",
ylim = c(0, 1), data = tab5.8, main = "Figure 5.1 p. 175")
with(tab5.8, lines(thresholds, sensitivities, col = "red"))
legend(x = 0.75, y = 0.55, legend = c("Sensitivity", "Specificity"),
lty = 1, col = c("red","black"))
abline(h = c(0, 1), col = "grey80", lty = "dotted")
GLOW_BONEMED data
Description
glow_bonemed dataset.
Usage
glow_bonemed
Format
A data.frame with 500 rows and 18 variables: the covariate are
the same as those from glow500
with the addition of
- bonemed
Bone medications at enrollment (1: No, 2: Yes)
- bonemed_fu
Bone medications at follow-up (1: No, 2: Yes)
- bonetreat
Bone medications both at enrollment and follow-up (1: No, 2: Yes)
Source
Hosmer, D.W., Lemeshow, S. and Sturdivant, R.X. (2013) Applied Logistic Regression, 3rd ed., New York: Wiley
Examples
head(glow_bonemed, n = 10)
summary(glow_bonemed)
GLOW_MIS_COMP data
Description
glow_mis_comp dataset.
Usage
glow_mis_comp
Format
A data.frame with 500 rows and 10 variables: the covariate are
the same as those from glow500
, without bmi
,
premeno
, armassist
, smoke
and fracscore
.
Source
Hosmer, D.W., Lemeshow, S. and Sturdivant, R.X. (2013) Applied Logistic Regression, 3rd ed., New York: Wiley
Examples
head(glow_mis_comp, n = 10)
summary(glow_mis_comp)
GLOW_MIS_WMISSING data
Description
glow_mis_wmissing dataset.
Usage
glow_mis_wmissing
Format
A data.frame with 500 rows and 10 variables: the covariate are
the same as those from glow500
, without bmi
,
premeno
, armassist
, smoke
and fracscore
.
Source
Hosmer, D.W., Lemeshow, S. and Sturdivant, R.X. (2013) Applied Logistic Regression, 3rd ed., New York: Wiley
Examples
head(glow_mis_wmissing, n = 10)
summary(glow_mis_wmissing)
GLOW_RAND data
Description
glow_rand dataset.
Usage
glow_rand
Format
A data.frame with 500 rows and 15 variables: the covariate are
the same as those from glow500
.
Source
Hosmer, D.W., Lemeshow, S. and Sturdivant, R.X. (2013) Applied Logistic Regression, 3rd ed., New York: Wiley
Examples
head(glow_rand, n = 10)
summary(glow_rand)
ICU data
Description
icu dataset.
Usage
icu
Format
A data.frame with 200 rows and 21 variables:
- id
Identification code (ID Number)
- sta
Vital Status at hospital discharge (1: Lived, 2: Died)
- age
Age (Years)
- gender
Gender (1: Male, 2: Female)
- race
Race (1: White, 2: Black, 3: Other)
- ser
Service at ICU admission (1: Medical, 2: Surgical)
- can
Cancer part of present problem (1: No, 2: Yes)
- crn
History of chronic renal failure (1: No, 2: Yes)
- inf
Infection probable at ICU admission (1: No, 2: Yes)
- cpr
CPR prior to ICU admission (1: No, 2: Yes)
- sys
Systolic blood pressure at ICU admission (mm Hg)
- hra
Heart rate at ICU admission (Beats/min)
- pre
Previous admission to an ICU within 6 months (1: No, 2: Yes)
- type
Type of admission (1: Elective, 2: Emergency)
- fra
Long bone, multiple, neck, single area, or hip fracture (1: No, 2: Yes)
- po2
PO2 from initial blood gases (1: > 60, 2: <= 60)
- ph
PH from initial blood gases (1: >= 7.25, 2: < 7.25)
- pco
PCO2 from initial blood gases (1: <= 45, 2: > 45)
- bic
Bicarbonate from initial blood gases (1: >= 18, 2: < 18)
- cre
Creatinine from initial blood gases (1: <= 2.0, 2: > 2.0)
- loc
Level of consciousness at ICU admission (1: No coma or deep stupor, 2: Deep stupor, 3: Coma)
Source
Hosmer, D.W., Lemeshow, S. and Sturdivant, R.X. (2013) Applied Logistic Regression, 3rd ed., New York: Wiley
Examples
head(icu, n = 10)
summary(icu)
LOWBWT data
Description
lowbwt dataset.
Usage
lowbwt
Format
A data.frame with 189 rows and 11 variables:
- id
Identification Code
- low
Low birth weight (1: >= 2500, 2: < 2500 g)
- age
Age of mother (Years)
- lwt
Weight of mother at last menstrual period (Pounds)
- race
Race (1: White, 2: Black, 3: Other)
- smoke
Smoking status during pregnancy (1: No, 2: Yes)
- ptl
History of premature labor (1: None, 2: One, 3: Two, etc)
- ht
History of hypertension (1: No, 2: Yes)
- ui
Presence of Uterine irritability (1: No, 2: Yes)
- ftv
Number of physician visits during the first trimester (1: None, 2: One, 3: Two, etc)
- bwt
Recorded birth weight (Grams)
Source
Hosmer, D.W., Lemeshow, S. and Sturdivant, R.X. (2013) Applied Logistic Regression, 3rd ed., New York: Wiley
Examples
head(lowbwt, n = 10)
summary(lowbwt)
MYOPIA data
Description
myopia dataset.
Usage
myopia
Format
A data.frame with 618 rows and 18 variables:
- id
Subject identifier (1-1503)
- studyyear
Year subject entered the study (Year)
- myopic
Myopia within the first five years of follow up (1: No, 2: Yes)
- age
Age at first visit (Years)
- gender
Gender (1: Male, 2: Female)
- spheq
Spherical Equivalent Refraction (diopter)
- al
Axial Length (mm)
- acd
Anterior Chamber Depth (mm)
- lt
Lens Thickness (mm)
- vcd
Vitreous Chamber Depth (mm)
- sporthr
How many hours per week outside of school the child spent engaging in sports/outdoor activities (Hours per week)
- readhr
How many hours per week outside of school the child spent reading for pleasure (Hours per week)
- comphr
How many hours per week outside of school the child spent playing video/computer games or working on the computer (Hours per week)
- studyhr
How many hours per week outside of school the child spent reading or studying for school assignments (Hours per week)
- tvhr
How many hours per week outside of school the child spent watching television (Hours per week)
- diopterhr
Composite of near-work activities (Hours per week)
- mommy
Was the subject's mother myopic? (1: No, 2: Yes)
- dadmy
Was the subject's father myopic? (1: No, 2: Yes)
Source
Hosmer, D.W., Lemeshow, S. and Sturdivant, R.X. (2013) Applied Logistic Regression, 3rd ed., New York: Wiley
Examples
head(myopia, n = 10)
summary(myopia)
NHANES data
Description
nhanes dataset.
Usage
nhanes
Format
A data.frame with 6482 rows and 21 variables:
- id
Identification Code (1 - 6482)
- gender
Gender (1: Male, 2: Female)
- age
Age at Screening (Years)
- marstat
Marital Status (1: Married, 2: Widowed, 3: Divorced, 4: Separated, 5: Never Married, 6: Living Together)
- samplewt
Statistical Weight (4084.478 - 153810.3)
- psu
Pseudo-PSU (1, 2)
- strata
Pseudo-Stratum (1 - 15)
- tchol
Total Cholesterol (mg/dL)
- hdl
HDL-Cholesterol (mg/dL)
- sysbp
Systolic Blood Pressure (mm Hg)
- dbp
Diastolic Blood Pressure (mm Hg)
- wt
Weight (kg)
- ht
Standing Height (cm)
- bmi
Body mass Index (Kg/m^2)
- vigwrk
Vigorous Work Activity (1: Yes, 2: No)
- modwrk
Moderate Work Activity (1: Yes, 2: No)
- wlkbik
Walk or Bicycle (1: Yes, 2: No)
- vigrecexr
Vigorous Recreational Activities (1: Yes, 2: No)
- modrecexr
Moderate Recreational Activities (1: Yes, 2: No)
- sedmin
Minutes of Sedentary Activity per Week (1: Yes, 2: No)
- obese
BMI>35 (1: No, 2: Yes)
Source
Hosmer, D.W., Lemeshow, S. and Sturdivant, R.X. (2013) Applied Logistic Regression, 3rd ed., New York: Wiley
Examples
head(nhanes, n = 10)
summary(nhanes)
POLYPHARM data
Description
polypharm dataset.
Usage
polypharm
Format
A data.frame with 3500 rows and 14 variables:
- id
Subject ID (1 - 500)
- polypharmacy
Outcome; taking drugs from more than three different classes (1: No, 2: Yes)
- mhv4
Number of outpatient Mental Health Visits (1: none, 2: one to five, 3: six to fourteen, 4: greater than 14)
- inptmhv3
Number of inpatient Mental Health Visits (1: none, 2: one, 3: more than one)
- year
Year (2002 to 2008)
- group
Group (1: Covered Families and Children - CFC, 2: Aged, Blind or Disabled - ABD, 3: Foster Care - FOS)
- urban
Location (1: Urban, 2: Rural)
- comorbid
Comorbidity (1: No, 2: Yes)
- anyprim
Any primary diagnosis (bipolar, depression, etc.) (1: No, 2: Yes)
- numprim
Number of primary diagnosis (1: none, 2: one, 3: more than one)
- gender
Gender (1: Female, 2: Male)
- race
Race (1: White, 2: Black, 3: Other)
- ethnic
Ethnic category (1: Non-Hispanic, 2: Hispanic)
- age
Age (Years and months, two decimal places)
Source
Hosmer, D.W., Lemeshow, S. and Sturdivant, R.X. (2013) Applied Logistic Regression, 3rd ed., New York: Wiley
Examples
head(polypharm, n = 10)
summary(polypharm)
SCALE_EXAMPLE data
Description
scale_example dataset.
Usage
scale_example
Format
A data.frame with 500 rows and 2 variables:
- y
a dicotomic variable (say 1: No, 2: Yes)
- x
a numeric variable
Source
Hosmer, D.W., Lemeshow, S. and Sturdivant, R.X. (2013) Applied Logistic Regression, 3rd ed., New York: Wiley
Examples
head(scale_example, n = 10)
summary(scale_example)