Aslında, bu ne elde etmek istediğine bağlı. Yalnızca tahminler için lojistik regresyon gerçekleştirirseniz, verilerinize uygun herhangi bir denetimli sınıflandırma yöntemini kullanabilirsiniz. Başka bir olasılık: MASS paketinden diskriminant analizi (lda () ve qda ())
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')
Öte yandan, tahminlerinizle ilgili güven aralıklarına veya tahminlerinizdeki standart hatalara ihtiyacınız varsa, çoğu sınıflandırma algoritması size yardımcı olmayacaktır. Çok sayıda paketin mevcut olduğu genelleştirilmiş katkı (karma) modelleri kullanabilirsiniz. Sık sık Simon Wood'un mgcv paketini kullanırım. Genelleştirilmiş katkı modelleri, tahminlerinizi modellemek için spline kullanabildiğiniz için lojistik regresyondan daha fazla esneklik sağlar.
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')
Yapacak daha çok şey var:
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")
...
Genelleştirilmiş Katkı Modelleri hakkında Simon Wood kitabını tavsiye ederim