Exercise 8.1 introduces a data set on birth weight of babies. Another variable we consider is parity, which is 0 if the child is the first born, and 1 otherwise. The summary table below shows the results of a linear regression model for predicting the average birth weight of babies, measured in ounces, from parity.
baby weight = 120.07 - 1.93(parity)
When parity is 1 (the child is not the first born) then we estimate that baby weight will decrease by 1.93 ounces.
The p-value is .1052. Using the standard p-value of .05 to determine significance, there is no significant relationship between average birth weight and parity.
Researchers interested in the relationship between absenteeism from school and certain demographic characteristics of children collected data from 146 randomly sam- pled students in rural New South Wales, Australia, in a particular school year. Below are three observations from this data set.
The summary table below shows the results of a linear regression model for predicting the average number of days absent based on ethnic background (eth: 0 - aboriginal, 1 - not aboriginal), sex (sex: 0 - female, 1 - male), and learner status (lrn: 0 - average learner, 1 - slow learner).18
absenteeism_pred = 18.93 - 9.11(eth) + 3.10(sex) + 2.15(lrn)
eth: Non-aboriginal students tend to show up to class 9.11 days less than their aboriginal counterparts. sex: Males tend to show show up to class 3.1 days more than their female counterparts lrn: Slow learners tend to show show up to class 3.1 days more than their average learner counterparts
absenteeism_pred = 18.93 - 9.11(eth) + 3.10(sex) + 2.15(lrn)
absenteeism_pred = 18.93 - 9.11*(0) + 3.10*(1) + 2.15*(1)
absenteeism_pred## [1] 24.18
absenteeism_act = 2
absenteeism_pred-absenteeism_act## [1] 22.18
n <- 146
k <- 3
variance_res <- 240.57
variance_out <- 264.17
r2 <- 1-(variance_res/variance_out)
r2## [1] 0.08933641
r2_adj <- 1-((variance_res/(n-k-1))/(variance_out/(n-1)))
r2_adj## [1] 0.07009704
Exercise 8.4 considers a model that predicts the number of days absent using three predictors: ethnic background (eth), gender (sex), and learner status (lrn). The table below shows the adjusted R-squared for the model as well as adjusted R-squared values for all models we evaluate in the first step of the backwards elimination process.
Which, if any, variable should be removed from the model first?
Backward elimination starts with the model that includes all potential predictor variables. Variables are eliminated one-at-a-time from the model until we cannot improve the adjusted R2. The strategy within each elimination step is to eliminate the variable that leads to the largest improvement in adjusted R2. “No ethnicity” can be removed first because this model has a negative r2.
On January 28, 1986, a routine launch was anticipated for the Challenger space shuttle. Seventy-three seconds into the flight, disaster happened: the shuttle broke apart, killing all seven crew members on board. An investigation into the cause of the disaster focused on a critical seal called an O-ring, and it is believed that damage to these O-rings during a shuttle launch may be related to the ambient temperature during the launch. The table below summarizes observational data on O-rings for 23 shuttle missions, where the mission order is based on the temperature at the time of the launch. Temp gives the temperature in Fahrenheit, Damaged represents the number of damaged O-rings, and Undamaged represents the number of O-rings that were not damaged.
It appears as though O-rings are more likely to become damaged during Shuttle Missions when the temperature is lower. 66 degrees appears to be a change point.
Although it is a logistic regression model, the summary table can be analyzed in the same way. We can estimate the number of damaged O-rings, with 11.66 as the y-intercept and number of O-rings damaged to decrease by -0.2162 as temperature increases. This is statistically significant because of z-value is -4.07 and the p-value is less than 0.05.
log(pi/1-pi) = y-intercept + b1(temperature) log(pi/1-pi) = 11.6630 - .2172(temperature)
Yes, temperature is a signifiant variable for determining the number of damaged O-rings and the success of shuttle missions.
Exercise 8.16 introduced us to O-rings that were identified as a plausible explanation for the breakup of the Challenger space shuttle 73 seconds into takeoff in 1986. The investigation found that the ambient temperature at the time of the shuttle launch was closely related to the damage of O-rings, which are a critical component of the shuttle. See this earlier exercise if you would like to browse the original data.
where pˆ is the model-estimated probability that an O-ring will become damaged. Use the model to calculate the probability that an O-ring will become damaged at each of the following ambient temperatures: 51, 53, and 55 degrees Fahrenheit. The model-estimated probabilities for several additional ambient temperatures are provided below, where subscripts indicate the temperature:
temps <- c(51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71)
log_model <- function(temps) {
for (temp in temps){
p <- 11.6630-(.2172*(temp))
prob <- exp(p)/(1 + exp(p))
state <- paste("O-ring failure probability for ", temp, " degrees is ", prob)
print (state)
}
}
log_model(temps)## [1] "O-ring failure probability for 51 degrees is 0.642400891474979"
## [1] "O-ring failure probability for 53 degrees is 0.53777786565937"
## [1] "O-ring failure probability for 55 degrees is 0.429718440063591"
## [1] "O-ring failure probability for 57 degrees is 0.327965777393171"
## [1] "O-ring failure probability for 59 degrees is 0.24016045929506"
## [1] "O-ring failure probability for 61 degrees is 0.169919202187003"
## [1] "O-ring failure probability for 63 degrees is 0.117056963847313"
## [1] "O-ring failure probability for 65 degrees is 0.0790736768698401"
## [1] "O-ring failure probability for 67 degrees is 0.0526800533193034"
## [1] "O-ring failure probability for 69 degrees is 0.0347636732534501"
## [1] "O-ring failure probability for 71 degrees is 0.0227940030276081"
library(ggplot2)
temps <- c(51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71)
values <- NULL
log_model_plot <- function(temps) {
for (temp in temps){
p <- 11.6630-(.2172*(temp))
prob <- exp(p)/(1 + exp(p))
value <- data.frame(temp, prob)
values <- rbind(values, value)
}
f <- ggplot(values, aes(temp, prob))
f + geom_smooth() + geom_point()
}
log_model_plot(temps)## `geom_smooth()` using method = 'loess'
There are two key conditions for fitting a logistic regression model: 1. Each predictor xi is linearly related to logit(pi) if all other predictors are held constant. 2. Each outcome Yi is independent of the other outcomes.
The first condition of the logistic regression model is not easily checked without a fairly sizable amount of data, and this model has very few points to check this accurately. We can however, assume independence.