library(mlogit)
set.seed(5647)
n = 1000
x <- runif(n,0,pi*sqrt(12))
o <- order(x)
x <- x[o]
form <- yvar~x
nonpar <- ~x
# 2 choices
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 <- cparmlogit(yvar~x,nonpar=~x,window=.5,kern="tcub")
fit1$lnl
colMeans(fit1$xcoef)
colMeans(fit1$xcoef.se)
cor(p,fit1$pmat)
plot(x,p,xlab="x",ylab="Prob(y=1)",type="l")
lines(x,fit1$pmat[,2],col="red")
legend("topleft",c("Standard Logit","CPAR"),col=c("black","red"),lwd=1)
## Not run:
# par(ask=TRUE)
# # 3 choices
# ybase1 <- -.5*pi*sqrt(12) + x + rlogis(n)
# ybase2 <- -.5*pi*sqrt(12)/2 + x/2 + rlogis(n)
# yvar <- ifelse(ybase1>ybase2,1,2)
# yvar <- ifelse(ybase1<0&ybase2<0,0,yvar)
# table(yvar)
# mdata <- data.frame(yvar,x)
# fit <- mlogit(yvar~0 | x, data=mdata, shape="wide")
# summary(fit)
# fit1 <- cparmlogit(yvar~x,nonpar=~x,window=.5,kern="tcub")
# fit1$lnl
# colMeans(fit1$xcoef)
# colMeans(fit1$xcoef.se)
# cor(fit$probabilities,fit1$pmat)
# plot(x,fit$probabilities[,1],xlab="x",ylab="Prob(y=1)",type="l",main="Prob(y=0)")
# lines(x,fit1$pmat[,1],col="red")
# legend("topright",c("Standard Logit","CPAR"),col=c("black","red"),lwd=1)
# plot(x,fit$probabilities[,2],xlab="x",ylab="Prob(y=1)",type="l",main="Prob(y=1)")
# lines(x,fit1$pmat[,2],col="red")
# legend("topleft",c("Standard Logit","CPAR"),col=c("black","red"),lwd=1)
# plot(x,fit$probabilities[,3],xlab="x",ylab="Prob(y=1)",type="l",main="Prob(y=2)")
# lines(x,fit1$pmat[,3],col="red")
# legend("topleft",c("Standard Logit","CPAR"),col=c("black","red"),lwd=1)
#
# # 2 choices, 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 <- cparmlogit(yvar~x,nonpar=~x,window=.25,kern="tcub")
# fit1$lnl
# colMeans(fit1$xcoef)
# colMeans(fit1$xcoef.se)
# cor(p,fit1$pmat)
# plot(x,p,xlab="x",ylab="Prob(y=1)",type="l")
# lines(x,fit1$pmat[,2],col="red")
# legend("topleft",c("Standard Logit","CPAR"),col=c("black","red"),lwd=1)
# ## End(Not run)
Run the code above in your browser using DataLab