set.seed(5647)
n = 1000
x <- runif(n,0,pi*sqrt(12))
o <- order(x)
x <- x[o]
form <- yvar~x
nonpar <- ~x
par(ask=TRUE)
# Linear
ybase <- x + rlogis(n)
yvar <- ybase>.5*pi*sqrt(12)
table(yvar)
fit <- glm(yvar~x,family=binomial(link="logit"))
summary(fit)
p <- fitted(fit)
fit1 <- cparlogit(yvar~x,nonpar=~x,kern="rect")
colMeans(fit1$xcoef)
colMeans(fit1$xcoef.se)
cor(p,fit1$p)
ymin = min(p,fit1$p)
ymax = max(p,fit1$p)
plot(x,p,xlab="x",ylab="Prob(y=1)",type="l",ylim=c(ymin,ymax))
lines(x,fit1$p,col="red")
legend("topleft",c("Standard Logit","CPAR"),col=c("black","red"),lwd=1)
# Quadratic
x2 <- x^2
ybase <- x - .1*(x^2) + rlogis(n)
yvar <- ybase>median(ybase)
table(yvar)
fit <- glm(yvar~x+x2,family=binomial(link="logit"))
summary(fit)
p <- fitted(fit)
fit1 <- cparlogit(yvar~x,nonpar=~x,window=.30,kern="rect")
colMeans(fit1$xcoef)
colMeans(fit1$xcoef.se)
cor(p,fit1$p)
ymin = min(p,fit1$p)
ymax = max(p,fit1$p)
plot(x,p,xlab="x",ylab="Prob(y=1)",type="l",ylim=c(ymin,ymax))
lines(x,fit1$p,col="red")
legend("bottom",c("Standard Logit","CPAR"),col=c("black","red"),lwd=1)
Run the code above in your browser using DataLab