Estou analisando um determinado conjunto de dados e preciso entender como escolher o melhor modelo que se ajusta aos meus dados. Estou usando R.
Um exemplo de dados que tenho é o seguinte:
corr <- c(0, 0, 10, 50, 70, 100, 100, 100, 90, 100, 100)
Esses números correspondem à porcentagem de respostas corretas, sob 11 condições diferentes ( cnt
):
cnt <- c(0, 82, 163, 242, 318, 390, 458, 521, 578, 628, 673)
Primeiramente, tentei ajustar um modelo probit e um modelo logit. Só agora encontrei na literatura outra equação para ajustar dados semelhantes aos meus, então tentei ajustar meus dados, usando a nls
função, de acordo com essa equação (mas não concordo com isso, e o autor não explica por que ele usou essa equação).
Aqui está o código para os três modelos que recebo:
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))
Agora plotei dados e as três 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))
Agora, gostaria de saber: qual é o melhor modelo para meus dados?
- probit
- logit
- nls
O logLik para os três modelos são:
> 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)
O logLik é suficiente para escolher o melhor modelo? (Seria o modelo de logit, certo?) Ou há algo mais que eu precise calcular?
nls
modelo e à comparação com glm
. Esta é a razão pela qual eu (re) postou uma pergunta semelhante :)
nls
, vamos ver o que as pessoas dizem. Em relação aos GLiM, eu diria que você deve usar o logit se achar que suas covariáveis se conectam diretamente à resposta, e probit se achar que é mediado por uma variável latente normalmente distribuída.
nls
seja diferente e não seja abordado aqui).