Estoy analizando un determinado conjunto de datos y necesito entender cómo elegir el mejor modelo que se ajuste a mis datos. Estoy usando R.
Un ejemplo de datos que tengo es el siguiente:
corr <- c(0, 0, 10, 50, 70, 100, 100, 100, 90, 100, 100)
Estos números corresponden al porcentaje de respuestas correctas, bajo 11 condiciones diferentes ( cnt
):
cnt <- c(0, 82, 163, 242, 318, 390, 458, 521, 578, 628, 673)
En primer lugar, intenté adaptar un modelo probit y un modelo logit. Justo ahora encontré en la literatura otra ecuación para ajustar datos similares a los míos, así que intenté ajustar mis datos, usando la nls
función, de acuerdo con esa ecuación (pero no estoy de acuerdo con eso, y el autor no explica por qué él usó esa ecuación).
Aquí está el código para los tres modelos que obtengo:
resp.mat <- as.matrix(cbind(corr/10, (100-corr)/10))
ddprob.glm1 <- glm(resp.mat ~ cnt, family = binomial(link = "logit"))
ddprob.glm2 <- glm(resp.mat ~ cnt, family = binomial(link = "probit"))
ddprob.nls <- nls(corr ~ 100 / (1 + exp(k*(AMP-cnt))), start=list(k=0.01, AMP=5))
Ahora tracé datos y las tres curvas ajustadas:
pcnt <- seq(min(cnt), max(cnt), len = max(cnt)-min(cnt))
pred.glm1 <- predict(ddprob.glm1, data.frame(cnt = pcnt), type = "response", se.fit=T)
pred.glm2 <- predict(ddprob.glm2, data.frame(cnt = pcnt), type = "response", se.fit=T)
pred.nls <- predict(ddprob.nls, data.frame(cnt = pcnt), type = "response", se.fit=T)
plot(cnt, corr, xlim=c(0,673), ylim = c(0, 100), cex=1.5)
lines(pcnt, pred.nls, lwd = 2, lty=1, col="red", xlim=c(0,673))
lines(pcnt, pred.glm2$fit*100, lwd = 2, lty=1, col="black", xlim=c(0,673)) #$
lines(pcnt, pred.glm1$fit*100, lwd = 2, lty=1, col="green", xlim=c(0,673))
Ahora, me gustaría saber: ¿cuál es el mejor modelo para mis datos?
- probit
- logit
- nls
Los logLik para los tres modelos son:
> logLik(ddprob.nls)
'log Lik.' -33.15399 (df=3)
> logLik(ddprob.glm1)
'log Lik.' -9.193351 (df=2)
> logLik(ddprob.glm2)
'log Lik.' -10.32332 (df=2)
¿LogLik es suficiente para elegir el mejor modelo? (Sería el modelo logit, ¿verdad?) ¿O hay algo más que deba calcular?
nls
modelo y la comparación con glm
. Esta es la razón por la que (re) publiqué una pregunta similar :)
nls
, veremos qué dice la gente. Con respecto a los GLiM, diría que debe usar logit si cree que sus covariables se conectan directamente a la respuesta, y probit si cree que está mediada por una variable latente normalmente distribuida.
nls
es diferente y no está cubierto allí).