실제로, 그것은 당신이 얻고 싶은 것에 달려 있습니다. 예측에 대해서만 로지스틱 회귀 분석을 수행하는 경우 데이터에 적합한 감독 된 분류 방법을 사용할 수 있습니다. 다른 가능성 : 판별 분석 (패키지 MASS의 lda () 및 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')
반면에 예측에 대한 신뢰 구간 또는 추정치의 표준 오차가 필요한 경우 대부분의 분류 알고리즘이 도움이되지 않습니다. 여러 패키지를 사용할 수있는 일반화 된 첨가제 (혼합) 모델을 사용할 수 있습니다. 나는 종종 Simon Wood의 mgcv 패키지를 사용합니다. 스플라인을 사용하여 예측 변수를 모델링 할 수 있으므로 일반화 된 가산 모델은 로지스틱 회귀보다 유연성이 뛰어납니다.
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')
할 일이 훨씬 더 많습니다.
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")
...
일반화 된 부가 모델에 대해 Simon Wood 의 책을 추천합니다