J'analyse un certain ensemble de données et j'ai besoin de comprendre comment choisir le meilleur modèle qui correspond à mes données. J'utilise R.
Un exemple de données dont je dispose est le suivant:
corr <- c(0, 0, 10, 50, 70, 100, 100, 100, 90, 100, 100)
Ces chiffres correspondent au pourcentage de bonnes réponses, sous 11 conditions différentes ( cnt
):
cnt <- c(0, 82, 163, 242, 318, 390, 458, 521, 578, 628, 673)
Tout d'abord, j'ai essayé d'adapter un modèle probit et un modèle logit. Tout à l'heure, j'ai trouvé dans la littérature une autre équation pour ajuster des données similaires à la mienne, alors j'ai essayé d'ajuster mes données, en utilisant la nls
fonction, selon cette équation (mais je ne suis pas d'accord avec cela, et l'auteur n'explique pas pourquoi il utilisé cette équation).
Voici le code des trois modèles que j'obtiens:
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))
Maintenant, j'ai tracé des données et les trois courbes ajustées:
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))
Maintenant, je voudrais savoir: quel est le meilleur modèle pour mes données?
- probit
- logit
- nls
Les logLik pour les trois modèles sont:
> 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)
Le logLik est-il suffisant pour choisir le meilleur modèle? (Ce serait le modèle logit, non?) Ou y a-t-il autre chose que je dois calculer?
nls
modèle et la comparaison avec glm
. C'est la raison pour laquelle j'ai (re) posté une question similaire :)
nls
, nous verrons ce que les gens disent. En ce qui concerne les GLiM, je dirais que vous devriez utiliser le logit si vous pensez que vos covariables se connectent directement à la réponse, et probit si vous pensez qu'elle est médiée par une variable latente normalement distribuée.
nls
différent et non couvert là-bas).