Spécification d'une structure de covariance: avantages et inconvénients

15

Quels sont les avantages de spécifier une structure de covariance dans un GLM (plutôt que de traiter toutes les entrées hors diagonale de la matrice de covariance comme nulles)? En plus de refléter ce que l'on sait des données, est-ce

  1. améliorer la qualité de l'ajustement?
  2. améliorer la précision prédictive des données en suspens?
  3. permettent d'estimer l'étendue de la covariance?

Quels sont les coûts de l'imposition d'une structure de covariance? Est-ce que

  1. ajouter des complications de calcul pour les algorithmes d'estimation?
  2. augmenter le nombre de paramètres estimés, augmentant également AIC, BIC, DIC?

Est-il possible de déterminer empiriquement la bonne structure de covariance, ou est-ce quelque chose qui dépend de votre connaissance du processus de génération de données?

Des coûts / avantages que je n'ai pas mentionnés?

Jack Tanner
la source
5
Fondamentalement, vous devez spécifier une structure de covariance dans GLM. Si en "supposant qu'il n'y a pas de covariance", vous voulez dire "toutes les entrées hors diagonale dans la matrice de covariance sont nulles", alors tout ce que vous avez fait était de supposer une structure de covariance très spécifique. (Vous pourriez être encore plus précis, par exemple, en supposant que toutes les variances sont égales.) Conclusion: je ne sais pas si la question a du sens dans sa forme actuelle. (J'ai de toute façon voté, parce que je pense que j'apprendrai beaucoup quand les gourous commenceront à parler.) Ou est-ce que je vous comprends mal?
Stephan Kolassa
Faites-vous référence à la structure de covariance dans un GLM avec, disons, une distribution de mélange normale multivariée, ou à l'analyse de la structure de covariance d'une matrice de covariance, ou autre chose?
Tim
1
@StephanKolassa aimeriez-vous copier votre commentaire dans une réponse? Cela semble répondre à la question aussi bien que possible.
Corone
@Corone: bon point, merci pour le rappel. Je suis allé et j'ai posté une réponse. Peut-être que quelqu'un d'autre va sonner et donner un meilleur ...
Stephan Kolassa

Réponses:

13

Fondamentalement, vous devez spécifier une structure de covariance dans GLM. Si "en supposant qu'il n'y a pas de covariance", vous voulez dire "toutes les entrées hors diagonales dans la matrice de covariance sont nulles", alors tout ce que vous avez fait était de supposer une structure de covariance très spécifique. (Vous pourriez être encore plus précis, par exemple, en supposant que toutes les variances sont égales.)

C'est vraiment une variation sur "Je ne souscris à aucune philosophie; je suis pragmatique." - "Vous venez de décrire la philosophie à laquelle vous souscrivez."

À ce titre, je dirais que l'avantage de penser à la structure de covariance est la possibilité d'utiliser un modèle plus approprié à vos données. Tout comme vous devez inclure des relations fonctionnelles connues pour la valeur attendue (ou la moyenne) de vos observations, vous devez tenir compte de toute structure que vous connaissez dans la covariance.

Et bien sûr, le «désavantage» est que vous devez réellement penser à tout cela. Il est beaucoup plus facile d'utiliser simplement le paramètre par défaut de votre logiciel. Mais c'est un peu comme conduire toujours en première vitesse parce que votre voiture était en première vitesse lorsque vous l'avez achetée et comprendre le changement de vitesse demande des efforts. Non recommandé.

Stephan Kolassa
la source
2
+1 Je suis d'accord avec chaque mot que vous avez écrit, mais je ne pense pas que cela réponde pleinement à la question. Par exemple, la spécification d'une structure de covariance plus appropriée réduit-elle les résidus du modèle?
Jack Tanner
1
@JackTanner: merci! Et vous avez raison, je n'ai pas entièrement répondu à votre question, c'est pourquoi je n'ai initialement posté cela qu'en tant que commentaire. À vrai dire: par exemple, je ne sais pas si la spécification de la structure de covariance correcte réduira nécessairement les résidus. J'imagine que l'imposition d'une structure supplémentaire sur (la covariance des) résidus peut même l'augmenter - mais cela peut économiser sur les paramètres. Pensez à une structure AR (1) au lieu d'une matrice de covariance non structurée. Similaire pour les autres questions de votre message. Je serais certainement intéressé par le point de vue des autres à ce sujet.
Stephan Kolassa
1
+1; C'est une réponse utile, d'ailleurs, la comparaison est géniale.
russellpierce
2

Voici une autre réponse incomplète qui ne concerne même pas directement le GLM ... Dans mon expérience très limitée de la modélisation d'équations structurelles (SEM), j'ai repris quelques idées qui, je l'espère, pourraient ajouter quelque chose à la discussion. Veuillez garder à l'esprit tout au long que je parle d'une expérience (limitée) avec SEM, pas GLM en soi , et je suis assez ignorant de savoir si et où cette distinction pourrait devenir importante. Je suis plus un utilisateur de statistiques qu'un statisticien, donc je ne suis pas sûr non plus que ces idées s'appliqueront à toutes ou même à la plupart des données; J'ai seulement constaté qu'ils s'appliquaient à la plupart des miens.

Tout d'abord, je ferais écho à l'accent de @ StephanKolassa sur l'importance de modéliser ce que vous savez déjà. Vous reconnaissez cela comme un côté, mais je pense que les avantages que vous demandez sont les avantages de la modélisation de ce que vous savez. En tant que tels, ils reflètent de manière significative que votre modèle résultant possède les informations sur la structure de covariance que vous avez ajoutées.

En SEM , j'ai trouvé (par une expérience limitée, pas par des études théoriques):

Avantages

  1. La modélisation de la structure de covariance améliore la qualité de l'ajustement (GoF) si la covariance est beaucoup plus forte que son erreur standard (c'est-à-dire si la voie symétrique est significative). Cela signifie que vous n'améliorerez généralement pas le GoF en modélisant des corrélations proches de zéro, et la multicolinéarité peut causer des problèmes au GoF car elle gonfle les erreurs standard.

  2. Je n'ai pas encore essayé de contenir des données à prédire, mais mon intuition est que la fixation des covariances à zéro dans votre modèle est analogue à la prévision d'un DV en combinant un ensemble d'équations de régression linéaire séparées, à un seul IV. Contrairement à cette approche, la régression multiple tient compte de la covariance dans les IV lors de la production d'un modèle d'équations pour prédire la DV. Cela améliore certainement l'interprétabilité en séparant les effets directs des effets indirects qui se produisent entièrement dans l'ensemble des IV inclus. Honnêtement, je ne sais pas si cela améliore nécessairement la prédiction du DV. Étant un utilisateur de statistiques et non un statisticien, j'ai rassemblé la fonction de test de simulation suivante pour donner une réponse incomplète (apparemment, "Oui, la précision prédictive s'améliore lorsque le modèle intègre la covariance IV") dans ce cas, espérons-le, analogue ...

    simtestit=function(Sample.Size=100,Iterations=1000,IV.r=.3,DV.x.r=.4,DV.z.r=.4) {
    require(psych); output=matrix(NA,nrow=Iterations,ncol=6); for(i in 1:Iterations) {
    x=rnorm(Sample.Size); z=rnorm(Sample.Size)+x*IV.r
    y=rnorm(Sample.Size)+x*DV.x.r+z*DV.z.r
    y.predicted=x*lm(y~x+z)$coefficients[2]+z*lm(y~x+z)$coefficients[3]
    bizarro.y.predicted=x*lm(y~x)$coefficients[2]+z*lm(y~z)$coefficients[2]
    output[i,]=c(cor(y.predicted,y)^2,cor(bizarro.y.predicted,y)^2,
    cor(y.predicted,y)^2>cor(bizarro.y.predicted,y)^2,cor(x,z),cor(x,y),cor(y,z))}
    list(output=output,percent.of.predictions.improved=100*sum(output[,3])/Iterations,
    mean.improvement=fisherz2r(mean(fisherz(output[,1])-fisherz(output[,2]))))}
    
    # Wrapping the function in str( ) gives you the gist without filling your whole screen
    str(simtestit())
    

    N= IterationsnSample.Sizez = x +y = x + z +yxz

    1y.predicted

    2bizarro.y.predicted

    outputIterationsR2121>2rxyzoutputsimtestit()str( )R21rpsych

    R2R2IV.r) est plus grand. Puisque vous êtes probablement plus familier avec votre fonction GLM que moi (ce qui n'est pas du tout), vous pouvez probablement changer cette fonction ou utiliser l'idée de base pour comparer les prédictions GLM à travers le nombre d'IV que vous souhaitez sans trop de problèmes. En supposant que cela se produirait (ou se produise) de la même manière, il semblerait que la réponse de base à votre deuxième question soit probablement oui, mais combien dépend de la force de la covariation des IV. Les différences d'erreur d'échantillonnage entre les données retenues et les données utilisées pour ajuster le modèle pourraient compenser l'amélioration de sa précision prédictive dans ce dernier ensemble de données, car encore une fois, l'amélioration semble faible à moins que les corrélations IV ne soient fortes (au moins, dans le cas au maximum de base avec seulement deux IV).

  3. Spécifier un chemin libre pour la covariance entre les IV dans le modèle signifie demander à la fonction d'ajustement du modèle d'estimer le coefficient de cette voie, qui représente l'étendue de la covariance entre les IV. Si votre fonction GLM vous permet de spécifier un modèle dans lequel la covariance entre les IV est estimée librement plutôt que fixée à zéro, alors votre problème est, espérons-le, une question simple de comprendre comment le faire et comment obtenir votre fonction en sortie cette estimation. Si votre fonction estime les covariances IV par défaut, votre problème se simplifie davantage pour cette dernière question (comme c'est le cas avec lm( )).

Frais

  1. Oui, estimer librement la covariance entre les IV signifie que l'algorithme d'ajustement du modèle doit faire un certain travail pour estimer le coefficient de cette voie. Ne pas spécifier cette voie dans le modèle signifie généralement fixer le coefficient à zéro, ce qui signifie que l'algorithme d'ajustement du modèle n'a pas besoin d'estimer le coefficient. L'estimation de paramètres de covariance supplémentaires signifie que le modèle global aura besoin de plus de temps pour s'adapter. Dans les modèles qui prennent déjà beaucoup de temps à estimer, le temps supplémentaire peut être substantiel, surtout si vous avez beaucoup de IV.

  2. Oui, une structure de covariance librement estimée implique des estimations de paramètres. Les populations ont des paramètres de covariance, donc si vous estimez des covariances de population, vous estimez des paramètres. Cependant, si votre modèle s'adapte beaucoup mieux parce que vous choisissez d'estimer une corrélation non triviale plutôt que de la fixer à zéro, vous pouvez probablement vous attendre à ce que les critères d'information Akaike et bayésien s'améliorent, tout comme les autres critères qui intègrent le GoF. Je ne connais pas le critère d'information sur la déviance (le DIC auquel vous faites référence, non?), Mais à en juger par sa page Wikipedia , il semble également incorporer le GoF et une pénalité pour la complexité du modèle.

    Par conséquent, le GoF devrait simplement devoir s'améliorer proportionnellement plus que la complexité du modèle augmente pour améliorer le DIC. Si cela ne se produit pas globalement, des critères comme ceux-ci qui pénalisent la complexité du modèle vont empirer lorsque vous estimez plus de covariances IV. Cela pourrait être un problème si, par exemple, vos IV ne sont pas corrélés, mais la structure de covariance est librement estimée de toute façon parce que vous pensez que les IV peuvent être en corrélation, ou parce que c'est le paramètre par défaut de votre fonction. Si vous avez des raisons théoriques antérieures de supposer qu'une corrélation est nulle et que vous ne voulez pas que votre modèle teste cette hypothèse, c'est un cas où vous pourriez être justifié de fixer le chemin à zéro. Si votre théorie antérieure est approximativement juste,

Je ne sais pas avec quelle fonction vous travaillez, mais encore une fois, je suis sûr que je ne la connais pas, donc je suis sûr que cette réponse pourrait être améliorée, en particulier ma réponse à la deuxième question sur les avantages (d'une part, une mathématique une preuve de ce à quoi je réponds par simulation sur la régression multiple est probablement disponible quelque part). Je ne suis même pas familier avec GLM en général (en supposant que vous voulez dire une modélisation linéaire généralisée et non générale, comme le suggère la balise), j'espère donc que quelqu'un commentera ou modifiera cette réponse si les distinctions de SEM invalident mes réponses à vos questions du tout.

Néanmoins, il semble que nous attendions depuis dix mois que les gourous prennent la parole, donc si cela ne les amène pas à le faire, cela devra simplement se faire tout seul, je suppose. Faites-moi savoir si vous avez une fonction GLM particulière à l'esprit que vous souhaitez que je joue avec R cependant. Je pourrai peut-être trouver une réponse plus directe à la troisième question pour votre application si vous pouvez spécifier une fonction GLM d'intérêt pour R. Je ne suis pas non plus un expert des tests de simulation, mais je pense que vos quatre autres questions pourraient être testées par simulation. (plus directement) aussi.

Nick Stauner
la source
2
+1 Une réponse réfléchie impressionnante. Bienvenue sur CV, Nick!
whuber