Choisissez le meilleur modèle entre logit, probit et nls

8

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 nlsfonction, 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?

Tommaso
la source
J'ai écrit sur le choix entre logit et probit ici , que vous voudrez peut-être lire (bien que, nlsdifférent et non couvert là-bas).
gung - Rétablir Monica
@gung J'ai déjà lu votre excellente explication, alors merci! Mon problème concerne surtout le nlsmodèle et la comparaison avec glm. C'est la raison pour laquelle j'ai (re) posté une question similaire :)
Tommaso
2
Je suis moins sûr du 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.
gung - Réintègre Monica
2
Bonjour @Tommaso, je ne sais pas d'où vient cette règle empirique que vous avez citée dans l'article, mais je n'ai pas vraiment cliqué sur le lien, donc je vais m'arrêter pour en juger. Je dirais que le modèle logistique est agréable parce que les coefficients ont une bonne interprétation - en tant que log odds ratios. Lorsque vous essayez de faire des décompositions de variance (par exemple, si vous avez des données en cluster et que vous essayez de quantifier le niveau de dépendance au sein des données), le modèle probit a de belles propriétés, car les corrélations sur le continu sous-jacent (normal, comme l'a souligné Gung) échelle), sont identifiés.
Macro du
3
Les logliks que vous obtenez de R ci-dessus ne sont PAS comparables entre les différents types de modèles (ils laissent de côté les constantes ne dépendant pas des paramètres!), Donc ne vous sont d'aucune utilité ici.
kjetil b halvorsen

Réponses:

2

La question de savoir quel modèle utiliser a à voir avec l'objectif de l'analyse.

Si l'objectif est de développer un classificateur pour prédire les résultats binaires, alors (comme vous pouvez le voir), ces trois modèles sont tous approximativement les mêmes et vous donnent approximativement le même classificateur. Cela en fait un point discutable, car vous ne vous souciez pas du modèle qui développe votre classificateur et vous pouvez utiliser la validation croisée ou la validation des échantillons fractionnés pour déterminer le modèle qui fonctionne le mieux dans des données similaires.

En conséquence, tous les modèles estiment différents paramètres de modèle. Les trois modèles de régression sont des cas particuliers de GLM qui utilisent une fonction de lien et une structure de variance pour déterminer la relation entre un résultat binaire et (dans ce cas) un prédicteur continu. Le NLS et le modèle de régression logistique utilisent la même fonction de lien (le logit) mais le NLS minimise l'erreur quadratique dans l'ajustement de la courbe S où, comme la régression logistique est une estimation du maximum de vraisemblance des données du modèle sous l'hypothèse du modèle linéaire pour probabilités du modèle et la distribution binaire des résultats observés. Je ne peux pas penser à une raison pour laquelle nous considérerions la NLS comme utile pour l'inférence.

La régression probit utilise une fonction de lien différente qui est la fonction de distribution normale cumulative. Ce "effile" plus rapidement qu'un logit et est souvent utilisé pour faire l'inférence sur des données binaires qui est observée comme un seuil binaire de résultats continus normalement distribués non observés.

Empiriquement, le modèle de régression logistique est utilisé beaucoup plus souvent pour l'analyse des données binaires car le coefficient du modèle (odds-ratio) est facile à interpréter, il s'agit d'une technique de maximum de vraisemblance et a de bonnes propriétés de convergence.

AdamO
la source