Pourquoi utiliser le lien logit en régression bêta?

14

Récemment, je me suis intéressé à l'implémentation d'un modèle de régression bêta, pour un résultat proportionnel. Notez que ce résultat ne rentrerait pas dans un contexte binomial, car il n'y a pas de concept significatif de «succès» discret dans ce contexte. En fait, le résultat est en fait une proportion des durées; le numérateur étant le nombre de secondes pendant lesquelles une certaine condition est active sur le nombre total de secondes pendant lesquelles la condition était éligible pour être active. Je m'excuse pour les caprices, mais je ne veux pas trop me concentrer sur ce contexte précis, car je me rends compte qu'il existe une variété de façons dont un tel processus pourrait être modélisé en plus de la régression bêta, et pour l'instant je m'intéresse plus spécifiquement à la théorie les questions qui se sont posées lors de mes tentatives de mise en œuvre d'un tel modèle (bien que je sois

Dans tous les cas, toutes les ressources que j'ai pu trouver ont indiqué que la régression bêta est généralement adaptée à l'aide d'un lien logit (ou probit / cloglog), et les paramètres interprétés comme des changements dans les cotes de journal. Cependant, je n'ai pas encore trouvé de référence qui fournit réellement une vraie justification pour laquelle on voudrait utiliser ce lien.

Le document original de Ferrari et Cribari-Neto (2004) ne fournit aucune justification; ils notent seulement que la fonction logit est "particulièrement utile", en raison de l'interprétation du rapport de cotes des paramètres exponentiels. D'autres sources font allusion à un désir de cartographier de l'intervalle (0,1) à la ligne réelle. Cependant, avons-nous nécessairement besoin d'une fonction de lien pour un tel mappage, étant donné que nous supposons déjà une distribution bêta? Quels avantages la fonction de liaison offre-t-elle au-delà des contraintes imposées en supposant la distribution bêta pour commencer?J'ai exécuté quelques simulations rapides et je n'ai pas vu de prédictions en dehors de l'intervalle (0,1) avec un lien d'identité, même lors de la simulation à partir de distributions bêta dont la masse de probabilité est en grande partie proche de 0 ou 1, mais peut-être mes simulations n'ont pas été assez généraux pour attraper certaines des pathologies.

Il me semble basé sur la façon dont les individus, dans la pratique, interprètent les estimations de paramètres à partir de modèles de régression bêta (c'est-à-dire sous forme de rapports de cotes) qu'ils font implicitement une inférence par rapport aux cotes d'un «succès»; c'est-à-dire qu'ils utilisent la régression bêta comme substitut d'un modèle binomial. Peut-être que cela est approprié dans certains contextes, étant donné la relation entre les distributions bêta et binomiales, mais il me semble que cela devrait être plus un cas spécial que le cas général. Dans cette question, une réponse est fournie pour interpréter le rapport de cotes par rapport à la proportion continue plutôt que le résultat, mais il me semble inutilement lourd d'essayer d'interpréter les choses de cette façon, plutôt que d'utiliser, disons, un journal ou lien d'identité et interprétation des% de changements ou de changements d'unités.

Alors, pourquoi utilisons-nous le lien logit pour les modèles de régression bêta? Est-ce simplement par commodité, pour le relier aux modèles binomiaux?

Ryan Simmons
la source

Réponses:

8

Justification de la fonction de lien: Une fonction de lien garantit que toutes les valeurs ajustées sont toujours en . Cela peut ne pas avoir beaucoup d'importance dans certaines applications, par exemple parce que les prédictions ou uniquement évaluées dans l'échantillon ou ne sont pas trop proches de 0 ou 1. Mais cela peut avoir de l'importance dans certaines applications et vous ne savez généralement pas à l'avance si cela importe ou ne pas. Les problèmes typiques que j'ai vus incluent: l'évaluation des prédictions de nouvelles valeurs qui sont (légèrement) en dehors de la plage de l'échantillon d'apprentissage d'origine ou la recherche de valeurs de départ appropriées. Pour ces derniers, considérons:μ = g - 1 ( x ⊤ la ß ) ( 0 , 1 ) xg(μ):(0,1)Rμ^=g1(xβ^)(0,1)x

library("betareg")
data("GasolineYield", package = "betareg")
betareg(yield ~ batch + temp, data = GasolineYield, link = make.link("identity"))
## Error in optim(par = start, fn = loglikfun, gr = if (temporary_control$use_gradient) gradfun else NULL,  : 
##   initial value in 'vmmin' is not finite

Mais, bien sûr, on peut simplement essayer les deux options et voir si des problèmes avec le lien d'identité se produisent et / ou s'il améliore l'ajustement du modèle.

Interprétation des paramètres: Je suis d'accord que l'interprétation des paramètres dans les modèles avec des fonctions de lien est plus difficile que dans les modèles avec un lien d'identité et les praticiens se trompent souvent. Cependant, j'ai également souvent vu des interprétations erronées des paramètres dans les modèles de probabilité linéaires (régressions binaires avec lien d'identité, généralement par moindres carrés). L'hypothèse selon laquelle les effets marginaux sont constants ne peut pas être vérifiée si les prévisions se rapprochent suffisamment de 0 ou 1 et qu'il faudrait être très prudent. Par exemple, pour une observation avec une augmentation de ne peut pas conduire à une diminution de de, disons,x μ 0,02μ^=0.01xμ^0.02. Mais cela est souvent traité très négligemment dans ces scénarios. Par conséquent, je dirais que pour un modèle de réponse limité, les paramètres de toute fonction de liaison doivent être interprétés avec soin et peuvent nécessiter une certaine pratique. Mon conseil habituel est donc (comme le montre l'autre discussion que vous avez liée dans votre question) d'examiner les effets des configurations de régresseurs d'intérêt. Celles-ci sont plus faciles à interpréter et souvent (mais pas toujours) assez similaires (d'un point de vue pratique) pour différentes fonctions de liaison.

Achim Zeileis
la source
10

Il est incorrect que la régression logistique ne puisse être utilisée que pour modéliser des données de résultats binaires. Le modèle de régression logistique est approprié pour toutes les données où 1) la valeur attendue du résultat suit une courbe logistique en fonction des prédicteurs 2) la variance du résultat est le résultat attendu multiplié par un moins le résultat attendu (ou une certaine proportion de celui-ci) 3) (conséquence de 2) les données varient entre 0 et 1. Ces propriétés valent certainement pour les données de Bernoulli. Mais il faut entreprendre des statistiques et des tracés exploratoires avant de discréditer immédiatement le modèle logistique en tant que moyen viable (et facile à mettre en œuvre / à expliquer) pour répondre à une question scientifique.

Un modèle de régression logistique est un cas particulier du modèle linéaire généralisé (GLM), ce qui signifie que des estimations et des inférences de paramètres cohérentes sont fournies par le modèle. Des modèles logistiques sont utilisés pour modéliser les proportions, les variables ordinales, les taux, les scores aux examens, les rangs et toutes sortes de résultats non binaires à plusieurs endroits de la littérature.

Désolé que cette réponse ne dirige pas votre question plus tard, mais énoncer le raisonnement précédent soulève une idée fausse qui mérite d'être abordée.

De nombreux utilisateurs de R ont suggéré que "l'avertissement" qui vient de l'adaptation d'une réponse continue avec des modèles logistiques devrait être supprimé. Une voie "au milieu de la route" est de changer family=binomialpour family=quasibinomial. Un exemple de simulation de ces données, d'ajustement d'un modèle et d'obtention d'une inférence correcte est illustré ici:

set.seed(123)
## logistic non-binary response
x <- rep(c(-2, 0, 2), each=50)
n <- length(x)
b0 <- 0
b1 <- 0.3
yhat <- plogis(b0 + b1*x)

do.one <- function(){
  e <- rnorm(n, 0, yhat*(1-yhat))
  y <- yhat + e

  yfixed <- pmin(y, 1)
  yfixed <- pmax(yfixed, 0)

  est <- glm(yfixed ~ x, family=quasibinomial())
  ci <- confint.default(est, level = 0.9)
  cov0 <- b0 > ci[1,1] & b0 < ci[1,2]
  cov1 <- b1 > ci[2,1] & b1 < ci[2,2]
  c(cov0, cov1)
}

reg <- replicate(10000, do.one())
rowMeans(reg)

Fournit une couverture précise à 90% des CI

AdamO
la source
1
J'apprécie la clarification donnée concernant le modèle de régression logistique. Vous avez raison, il s'agit d'un modèle plus général qu'on ne le suppose souvent. J'hésite cependant à accepter cela comme une réponse, car il semble que cela ne développe pas assez le raisonnement. Il me semble que vous dites que mes préoccupations concernant le lien logit dans un modèle bêta ne sont pas fondées, car un lien logit fonctionne très bien sur les données non binaires. Ce qui est une position raisonnable, mais je pense que ce n'est pas tout à fait l'essentiel de ma question sur pourquoi nous utilisons le logit dans un modèle bêta et comment l'interpréter.
Ryan Simmons
1
@RyanSimmons Merci pour la rétroaction. Je suis d'accord avec votre raisonnement ici. Je pense que toute "opportunité d'apprendre" mérite une réponse et donc une question peut avoir de nombreuses réponses possibles avec différents degrés de "justesse". Je n'ai pas abordé votre question, qui est une bonne question, de sorte que la réponse "plus juste" peut apparaître encore. Je suis curieux de cela moi-même, alors j'essaie de lire un peu plus sur le sujet.
AdamO