Specificare una struttura di covarianza: pro e contro


15

Quali sono i vantaggi di specificare una struttura di covarianza in un GLM (piuttosto che trattare tutte le voci fuori diagonale nella matrice di covarianza come zero)? Oltre a riflettere ciò che si sa dei dati, lo fa

  1. migliorare la bontà di adattamento?
  2. migliorare la precisione predittiva dei dati dati?
  3. ci permettono di stimare l'entità della covarianza?

Quali sono i costi dell'imposizione di una struttura di covarianza? Lo fa

  1. aggiungere complicazioni computazionali per gli algoritmi di stima?
  2. aumentare il numero di parametri stimati, aumentando anche AIC, BIC, DIC?

È possibile determinare empiricamente la giusta struttura di covarianza o è qualcosa che dipende dalla tua conoscenza del processo di generazione dei dati?

Eventuali costi / benefici che non ho menzionato?


5
Fondamentalmente, è necessario specificare una struttura di covarianza in GLM. Se "assumendo nessuna covarianza", intendi "tutte le voci fuori diagonale nella matrice di covarianza sono zero", allora tutto ciò che hai fatto è stato assumere una struttura di covarianza molto specifica. (Potresti essere ancora più specifico, ad esempio, supponendo che tutte le varianze siano uguali.) In conclusione: non sono sicuro che la domanda abbia senso nella sua forma attuale. (Ho votato comunque, perché penso che imparerò molto quando i guru iniziano a parlare.) O ti fraintendo?
Stephan Kolassa,

Ti riferisci alla struttura della covarianza in un GLM con una distribuzione di miscelazione normale multivariata, per esempio, o all'analisi della struttura della covarianza di una matrice di covarianza o qualcos'altro?
Tim

1
@StephanKolassa Vuoi copiare il tuo commento in una risposta? Sembra rispondere alla domanda tanto bene quanto sta per arrivare.
Corone,

@Corone: buon punto, grazie per il promemoria. Sono andato e ho pubblicato una risposta. Forse qualcun altro interverrà e ne darà uno migliore ...
Stephan Kolassa,

Risposte:


13

Fondamentalmente, è necessario specificare una struttura di covarianza in GLM. Se "assumendo nessuna covarianza", intendi "tutte le voci fuori diagonale nella matrice di covarianza sono zero", allora tutto ciò che hai fatto è stato assumere una struttura di covarianza molto specifica. (Potresti essere ancora più specifico, ad esempio, supponendo che tutte le varianze siano uguali.)

Questa è davvero una variante di "Non sottoscrivo nessuna filosofia; sono un pragmatico". - "Hai appena descritto la filosofia a cui ti iscrivi."

In quanto tale, direi che il vantaggio di pensare alla struttura della covarianza è la possibilità di utilizzare un modello più appropriato per i tuoi dati. Proprio come dovresti includere relazioni funzionali note per il valore atteso (o la media) delle tue osservazioni, dovresti tenere conto di qualsiasi struttura tu conosca nella covarianza.

E, naturalmente, lo "svantaggio" è che devi effettivamente pensare a tutto questo. Molto più semplice utilizzare le impostazioni predefinite del software. Ma è un po 'come guidare sempre nella prima marcia perché la tua auto era in prima marcia quando l'hai comprata e capire che il cambio richiede sforzo. Non consigliato.


2
+1 Sono d'accordo con ogni parola che hai scritto, ma non credo che questo risolva completamente la domanda. Ad esempio, specificare una struttura di covarianza più adeguata riduce i residui del modello?
Jack Tanner,

1
@JackTanner: grazie! E hai ragione nel dire che non ho risposto completamente alla tua domanda, motivo per cui inizialmente l'ho pubblicato solo come commento. A dire il vero: per esempio, non so se specificare la corretta struttura della covarianza ridurrà necessariamente i residui. Immagino che imporre una struttura aggiuntiva sui (la covarianza dei) residui possa persino aumentarlo - ma potrebbe risparmiare sui parametri. Pensa a una struttura AR (1) anziché a una matrice di covarianza non strutturata. Simile per le altre domande nel tuo post. Sarei sicuramente interessato alle opinioni degli altri su questo.
Stephan Kolassa,

1
+1; È una risposta utile, inoltre, la similitudine è fantastica.
Russellpierce,

2

Ecco un'altra risposta incompleta che non riguarda nemmeno GLM ... Nella mia esperienza molto limitata con la modellazione di equazioni strutturali (SEM), ho raccolto un paio di idee che spero possano aggiungere qualcosa alla discussione. Per favore, tieni presente che parlo per esperienza (limitata) con SEM, non per GLM in , e sono abbastanza ignaro del fatto che e dove questa distinzione possa diventare importante. Sono più un utente di statistiche che uno statistico, quindi non sono sicuro che queste idee si applicheranno a tutti o anche alla maggior parte dei dati; Ho solo scoperto che si sono applicati alla maggior parte dei miei.

Innanzitutto, vorrei sottolineare l'enfasi di @ StephanKolassa sull'importanza di modellare ciò che già sapete. Lo riconosci a parte, ma penso che i vantaggi che stai chiedendo siano benefici della modellazione di ciò che sai. Pertanto, riflettono in modo significativo che il modello risultante possiede le informazioni sulla struttura di covarianza che hai aggiunto.

In SEM , ho trovato (attraverso l'esperienza limitata, non attraverso lo studio teorico):

Benefici

  1. La modellazione della struttura della covarianza migliora la bontà di adattamento (GoF) se la covarianza è molto più forte del suo errore standard (ovvero, se il percorso simmetrico è significativo). Ciò significa che di solito non migliorerai la GoF modellando correlazioni vicine allo zero e la multicollinearità può causare problemi alla GoF perché gonfia gli errori standard.

  2. Non ho ancora provato a trattenere i dati per prevedere, ma la mia intuizione è che fissare le covarianze a zero nel tuo modello è analogo alla previsione di un DV combinando un insieme di equazioni di regressione lineare separate, a singolo IV, separate. A differenza di questo approccio, la regressione multipla tiene conto della covarianza nei IV quando si produce un modello di equazioni per predire il DV. Ciò certamente migliora l'interpretabilità separando gli effetti diretti dagli effetti indiretti che si verificano interamente all'interno dell'insieme incluso di IV. Onestamente, non sono sicuro se questo migliora necessariamente la previsione del DV. Essendo un utente di statistiche e non uno statistico, ho messo insieme la seguente funzione di test di simulazione per dare una risposta incompleta (apparentemente, "Sì, l'accuratezza predittiva migliora quando il modello incorpora la covarianza IV") in questo caso si spera analogo ...

    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())
    

    Questa funzione genera campioni casuali ( , = ) da tre variabili normalmente distribuite: rumore casuale e rumore casuale. L'utente può influenzare in qualche modo le loro correlazioni sovrascrivendo i valori predefiniti per gli ultimi tre argomenti, ma il rumore casuale influenza anche le correlazioni del campione, quindi questo simula il modo in cui l'errore di campionamento influenza le stime dei parametri di correlazione reali. La funzione calcola previsioni basate su coefficienti di regressione per e derivati ​​da:N= IterationsnSample.Sizez = x +y = x + z +yxz

    ( ) regressione multipla ( ) e ...1y.predicted

    ( ) due regressioni lineari bivariate separate ( ).2bizarro.y.predicted

    La outputmatrice contiene Iterationsrighe e sei colonne: s di e , un test vero-falso per stabilire seR2121>2rxyzoutputsimtestit()str( )R21rpsych

    R2R2IV.r) è più grande. Dato che probabilmente hai più familiarità con la tua funzione GLM di me (che non lo è affatto), potresti probabilmente cambiare questa funzione o usare l'idea di base per confrontare le previsioni GLM attraverso tutti i IV che desideri senza troppi problemi. Supponendo che sarebbe (o lo farà) allo stesso modo, sembrerebbe che la risposta di base alla tua seconda domanda sia probabilmente sì, ma quanto dipende da quanto fortemente la covaria IV. Le differenze nell'errore di campionamento tra i dati trattati e i dati utilizzati per adattarsi al modello potrebbero sopraffare il miglioramento della sua precisione predittiva all'interno di quest'ultimo set di dati, perché, di nuovo, il miglioramento sembra essere piccolo a meno che le correlazioni IV non siano forti (almeno, in il caso massimo di base con solo due IV).

  3. Specificare un percorso libero per la covarianza tra IV nel modello significa chiedere alla funzione di adattamento del modello di stimare il coefficiente di questo percorso, che rappresenta l'estensione della covarianza tra IV. Se la tua funzione GLM ti consente di specificare un modello in cui la covarianza tra gli IV è stimata liberamente anziché fissata a zero, allora il tuo problema è una speranza si spera di capire come fare questo e come ottenere l'output della tua funzione quella stima. Se la tua funzione stima le covarianze IV per impostazione predefinita, il tuo problema si semplifica ulteriormente solo a quest'ultima questione (come nel caso lm( )).

Costi

  1. Sì, stimare liberamente la covarianza tra IV significa che l'algoritmo di adattamento del modello deve fare un lavoro per stimare il coefficiente di quel percorso. Non specificare che il percorso nel modello di solito significa fissare il coefficiente a zero, il che significa che l'algoritmo di adattamento del modello non ha bisogno di stimare il coefficiente. Stimare i parametri di covarianza aggiuntivi significa che il modello complessivo richiederà più tempo per adattarsi. Nei modelli che richiedono già molto tempo per essere stimati, il tempo extra può essere notevole, soprattutto se si hanno molti IV.

  2. Sì, una struttura di covarianza liberamente stimata implica stime di parametri. Le popolazioni hanno parametri di covarianza, quindi se stai valutando le covarianze di popolazione, stai valutando i parametri. Tuttavia, se il tuo modello si adatta molto meglio perché stai scegliendo di stimare una correlazione non banale anziché fissarla a zero, probabilmente puoi aspettarti che i criteri di informazione Akaike e Bayesiana migliorino, proprio come altri criteri che incorporano GoF. Non ho familiarità con il criterio di informazioni sulla devianza (il DIC a cui ti riferisci, vero?), Ma a giudicare dalla sua pagina Wikipedia , sembra anche incorporare GoF e una penalità per la complessità del modello.

    Pertanto, il GoF dovrebbe semplicemente migliorare in modo proporzionale più degli aumenti della complessità del modello per migliorare il DIC. Se ciò non accade nel complesso, i criteri come questi che penalizzano la complessità del modello peggioreranno man mano che si stimano più covarianze IV. Questo potrebbe essere un problema se, ad esempio, i tuoi IV non sono correlati, ma la struttura della covarianza viene comunque stimata liberamente perché pensi che i IV potrebbero essere correlati o perché questa è l'impostazione predefinita della tua funzione. Se hai precedenti ragioni teoriche per supporre che una correlazione sia zero e non vuoi che il tuo modello verifichi questo presupposto, questo è un caso in cui potresti essere giustificato nel fissare il percorso a zero. Se la tua teoria precedente ha approssimativamente ragione,

Non so con quale funzione stai lavorando, ma ancora una volta, sono sicuro di non avere familiarità con esso, quindi sono sicuro che questa risposta potrebbe essere migliorata, in particolare la mia risposta alla seconda domanda di beneficio (per prima cosa, una matematica la prova di ciò a cui sto rispondendo tramite simulazione sulla regressione multipla è probabilmente disponibile da qualche parte là fuori). Non ho nemmeno familiarità con GLM in generale (supponendo che tu voglia dire modellazione lineare generalizzata , non generale, come suggerisce il tag), quindi spero che qualcuno commenterà o modificherà questa risposta se le distinzioni da SEM invalidano le mie risposte alle tue domande affatto.

Tuttavia, sembra che stiamo aspettando da dieci mesi che i guru parlino, quindi se questo non li induce a farlo, dovremo farlo da soli, suppongo. Fammi sapere se hai in mente una particolare funzione GLM che vorresti che io rovinassi in R. Potrei essere in grado di capire come rispondere n. 3 più direttamente alla tua applicazione se puoi specificare una funzione GLM di interesse per R. Non sono neanche un esperto con i test di simulazione, ma penso che le tue altre quattro domande possano essere testate sim (più direttamente) anche.


2
+1 Un'impressionante risposta premurosa. Benvenuto in CV, Nick!
whuber
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.