Sebenarnya, itu tergantung pada apa yang ingin Anda peroleh. Jika Anda melakukan regresi logistik hanya untuk prediksi, Anda dapat menggunakan metode klasifikasi terawasi yang cocok untuk data Anda. Kemungkinan lain: analisis diskriminan (lda () dan qda () dari paket MASS)
r <- lda(y~x) # use qda() for quadratic discriminant analysis
xx <- seq(min(x), max(x), length=100)
pred <- predict(r, data.frame(x=xx), type='response')
yy <- pred$posterior[,2]
color <- c("red","blue")
plot(y~x,pch=19,col=color[pred$class])
abline(lm(y~x),col='red',lty=2)
lines(xx,yy, col='blue', lwd=5, lty=2)
title(main='lda implementation')
Di sisi lain, jika Anda memerlukan interval kepercayaan di sekitar prediksi Anda atau kesalahan standar pada perkiraan Anda, sebagian besar algoritma klasifikasi tidak akan membantu Anda. Anda bisa menggunakan model aditif umum (campuran), yang tersedia sejumlah paket. Saya sering menggunakan paket mgcv dari Simon Wood. Model aditif umum memungkinkan lebih banyak fleksibilitas daripada regresi logistik, karena Anda dapat menggunakan splines untuk memodelkan prediktor Anda.
set.seed(55)
require(mgcv)
n <- 100
x1 <- c(rnorm(n), 1+rnorm(n))
x2 <- sqrt(c(rnorm(n,4),rnorm(n,6)))
y <- c(rep(0,n), rep(1,n))
r <- gam(y~s(x1)+s(x2),family=binomial)
xx <- seq(min(x1), max(x1), length=100)
xxx <- seq(min(x2), max(x2), length=100)
yy <- predict(r, data.frame(x1=xx,x2=xxx), type='response')
color=c("red","blue")
clustering <- ifelse(r$fitted.values < 0.5,1,2)
plot(y~x1,pch=19,col=color[clustering])
abline(lm(y~x1),col='red',lty=2)
lines(xx,yy, col='blue', lwd=5, lty=2)
title(main='gam implementation')
Ada banyak lagi yang harus dilakukan:
op <- par(mfrow=c(2,1))
plot(r,all.terms=T)
par(op)
summary(r)
anova(r)
r2 <- gam(y~s(x1),family=binomial)
anova(r,r2,test="Chisq")
...
Saya akan merekomendasikan buku Simon Wood tentang Generalized Additive Models