x <- runif(100,-15,15) xbeta <- 1+0.8*x p <- f(xbeta) y <- rep(0,100) for (i in 1:100) y[i] <- sample(c(0,1),1,prob=c(1-p[i],p[i])) train <- data.frame(y=y,x=x) model0 <- lm(y~.,data=train) plot(x,y,ylim=c(-1,2)) abline(a=model0$coef[1],b=model0$coef[2],lwd=4,col="blue") model1 <- glm(as.factor(y)~.,data=train,family=binomial(link="logit")) model1 plogit <- function(x){ xbeta <- model1$coef[1]+model1$coef[2]*x exp(xbeta)/(1+exp(xbeta))} curve(plogit,-15,15,add=TRUE,col="green",lwd=4) model2 <- glm(as.factor(y)~.,data=train,family=binomial(link="probit")) pprobit <- function(x){ xbeta <- model2$coef[1]+model2$coef[2]*x pnorm(xbeta) } curve(pprobit,-15,15,add=TRUE,col="sienna4",lwd=4) poracle <- function(x){ xbeta <- 1+0.8*x exp(xbeta)/(1+exp(xbeta)) } curve(poracle,-15,15,add=TRUE,col="red",lwd=4)