# Simulation model, classification rule following Hand et al. (2001)
theta90 <- varset(N = 1000, sigma = 0.1, theta = 90, threshold = 0)
dataset <- as.data.frame(cbind(theta90$explanatory, theta90$intermediate))
names(dataset) <- c(colnames(theta90$explanatory), colnames(theta90$intermediate))
classi <- function(Y, threshold = 0) {
z <- (Y > threshold)
resp <- as.factor(ifelse((z[,1] + z[,2]) > 1, 1, 0))
return(resp)
}
formula <- flist(y1+y2~x1+x2)
fit <- inclass(formula, pFUN = lm, data = dataset)
predict.inclass(object = fit, cFUN = classi, newdata = dataset)
data(smoking)
# explanatory variables are: TarY, NicY, COY, Sex, Age
# intermediate variables are: TVPS, BPNL, COHB
# reponse (resp) ist defined by:
resp <- function(data){
res <- t(t(data) > c(4438, 232.5, 58))
res <- as.factor(ifelse(apply(res, 1, sum) > 2, 1, 0))
res
}
response <- resp(smoking[ ,c("TVPS", "BPNL", "COHB")])
smoking <- cbind(smoking, response)
formula <- TVPS+BPNL+COHB~TarY+NicY+COY+Sex+Age
fit <- inclass(formula, pFUN = lm, data = smoking)
predict.inclass(object = fit, cFUN = resp, newdata = smoking)
Run the code above in your browser using DataLab