# Figure 14.1 - Plots actual data, a logistic regression, and a # probit regression, in order to show that (a) the fits are good, and # (b) the logistic and probit models are very similar. # # Figure caption: Two curves fitted to the data in Figure 8.9. The # fitted curve from probit regression (dashed line) is shown together # with the fitted curve from logistic regression. The fits are very # close to eachother. # MPDiR loads the HSP data set. The data are from Hecht et al, and # show, in 50 trials, whether or not light flashes of a certain log10 # intensity were observed by a subject. # library(MPDiR) chosenRun <- "R1" # Use Run 1. chosenSubject <- "SS" # Choose the subject S.S. chosenData <- HSP$Run == chosenRun & HSP&Obs == chosenSubject dataForOneRun <- HSP[chosenData, ] # Pull the data for one run. lightIntensiy <- log10(dataForOneRun$Q) percentDetected <- dataForOneRun$p / 100 # Scale percentages to (0,1). # Fit logistic and probit models. modelEquation <- percentDetected ~ lightIntensity logisticModel <- glm(modelEquation, family = binomial(link = "logit")) probitModel <- glm(modelEquation, family = binomial(link = "probit")) lightValues <- data.frame( x = seq(from = 1, to = 2.5, by = 0.01)) # Plot actual points and the models' fits. plot(lightIntensity, percentDetected) xlim = c(1, 2.5), ylim = c(0, 1), xlab = "Log Intensity", ylab = "Proportion Perceived", main = "", xaxt = "n", yaxt = "n", pch = 16, cex.lab = 1.5) lines(lightValues, predict(logisticModel, newdata = lightValues), lty = 1, lwd = 2) lines(lightValues, predict(probitModel, newdata = lightValues), lty = 2, lwd = 2) axis(1, at = seq(from = 1, to = 2.5, by = 0.5), cex.axis = 1.4) axis(2, at = seq(from = 0, to = 1, by = 0.2), cex.axis = 1.4) #legend("topleft", c("Logistic", "Probit"), lty = c(1, 2), # lwd = c(2, 2), cex = 1.5) dev.print(device = postscript, "14.1.eps", horizontal = TRUE)