# A GAM example using the air pollution data set from the SemiPar package.
library(refitME)
library(mgcv)
library(dplyr)
data(Milanmortdata)
dat.air <- sample_n(Milanmortdata, 100) # Takes a random sample of size 100.
Y <- dat.air[, 6] # Mortality counts.
n <- length(Y)
z1 <- (dat.air[, 1])
z2 <- (dat.air[, 4])
z3 <- (dat.air[, 5])
w1 <- log(dat.air[, 9]) # The error-contaminated predictor (total suspended particles).
dat <- data.frame(cbind(Y, w1, z1, z2, z3))
gam_naiv <- gam(Y ~ s(w1), family = "poisson", data = dat)
sigma.sq.u <- 0.0915 # Measurement error variance.
B <- 10 # Consider increasing this if you want a more accurate answer.
gam_MCEM <- refitME(gam_naiv, sigma.sq.u, B)
plot(gam_MCEM, select = 1)
detach(package:mgcv)
Run the code above in your browser using DataLab