library(spdep)
data(cookdata)
cookdata <- cookdata[cookdata$CHICAGO==1,]
cookdata$DCBD2 <- cookdata$DCBD^2
# Monte Carlo
set.seed(484909)
n = length(cookdata$DCBD)
o <- order(cookdata$DCBD)
cookdata$ybase <- 2*cookdata$DCBD -.15*cookdata$DCBD2
cookdata$yvar <- cookdata$ybase + 2*rnorm(n)
fit <- lm(yvar~DCBD+DCBD2,data=cookdata)
summary(fit)
cookdata$yvar <- cookdata$yvar>5.6
table(cookdata$yvar)
fit1 <- glm(yvar~DCBD+DCBD2,family=binomial(link="probit"),data=cookdata)
summary(fit1)
fit2 <- glm(yvar~DCBD,family=binomial(link="probit"),data=cookdata)
summary(fit2)
nlfit1 <- cparprobit(yvar~DCBD,nonpar=~DCBD, window=.5, kern="rect", data=cookdata)
nlfit1$lnl
nlfit2 <- cparprobit(yvar~DCBD+DCBD2,nonpar=~DCBD, window=.5, kern="rect", data=cookdata)
nlfit2$lnl
plot(cookdata$DCBD[o],fitted(fit1)[o],xlab="Distance from CBD",ylab="p",type="l")
lines(cookdata$DCBD[o],fitted(fit2)[o],col="red")
lines(cookdata$DCBD[o],nlfit1$p[o],col="blue")
lines(cookdata$DCBD[o],nlfit2$p[o],col="green")
legend("topright",c("True Model","Linear","CPAR-linear","CPAR-True"),
col=c("black","red","blue","green"),lwd=1)
Run the code above in your browser using DataLab