Il modo migliore per affrontare l'eteroscedasticità?


19

Ho una trama di valori residui di un modello lineare in funzione dei valori adattati in cui l'eteroscedasticità è molto chiara. Tuttavia non sono sicuro di come procedere ora perché, per quanto ho capito, questa eteroscedasticità rende il mio modello lineare non valido. (È giusto?)

  1. Usa un robusto raccordo lineare usando la rlm()funzione del MASSpacchetto perché è apparentemente robusto per l'eteroscedasticità.

  2. Poiché gli errori standard dei miei coefficienti sono errati a causa dell'eteroscedasticità, posso semplicemente regolare gli errori standard per renderli robusti all'eteroscedasticità? Utilizzando il metodo pubblicato su StackTranslate.it: Regressione con errori standard corretti da eteroschedasticità

Quale sarebbe il metodo migliore da utilizzare per affrontare il mio problema? Se uso la soluzione 2, la mia capacità di previsione del mio modello è completamente inutile?

Il test Breusch-Pagan ha confermato che la varianza non è costante.

I miei residui in funzione dei valori adattati si presentano così:

https://i.gyazo.com/9407a829a168492b31dfa3d1dd33a21d.png

(versione più grande)


Intendi "stackoverflow" anziché "stackexchange"? (sei ancora su stackexchange qui.) Se era così, in genere è meglio migrare la domanda piuttosto che pubblicare una seconda copia (la guida chiede di non pubblicare la stessa Q più volte ma scegli un posto migliore).
Glen_b

La variazione nella diffusione non è così tanto che l'impatto sarà grave (cioè, mentre distorcerà i tuoi errori standard e quindi l'inferenza sull'impatto, probabilmente non farà una grande differenza). Sarei propenso a considerare se la diffusione fosse correlata alla media, e forse guarderei un GLM o possibilmente una trasformazione (sembra sicuramente collegata all'adattamento). Qual è la variabile y?
Glen_b

2
Un'altra possibilità è quella di modellare l'eteroscedasticità, ad esempio, utilizzando glse una delle strutture di varianza dal pacchetto nlme.
Roland,

Risposte:


18

È una buona domanda, ma penso che sia la domanda sbagliata. La tua figura chiarisce che hai un problema più fondamentale dell'eteroscedasticità, vale a dire che il tuo modello ha una non linearità di cui non hai tenuto conto. Molti dei potenziali problemi che un modello può avere (non linearità, interazioni, valori anomali, eteroscedasticità, non normalità) possono mascherarsi a vicenda. Non penso che ci sia una regola dura e veloce, ma in generale suggerirei di affrontare i problemi nell'ordine

outliers > nonlinearity > heteroscedasticity > non-normality

(ad esempio, non preoccuparti della non linearità prima di verificare se ci sono strane osservazioni che distorcono la situazione; non preoccuparti della normalità prima di preoccuparti dell'eteroscedasticità).

In questo caso particolare, vorrei inserire un modello quadratico y ~ poly(x,2)(o poly(x,2,raw=TRUE)o y ~ x + I(x^2)e vedere se risolve il problema.


La trama è piccola e gli assi non sono etichettati. Non so se si tratta di una trama residua vs adattata. Ho assunto che l'OP includesse un termine al quadrato, ad es. Altrimenti, hai chiaramente ragione.
gung - Ripristina Monica

1
nel mio browser posso vedere che l'intervallo dell'asse y va da -4 a 3, il che sembra suggerire un residuo rispetto a un diagramma adattato / escludere un diagramma di posizione in scala ...
Ben Bolker

1
Ciao Ben, adoro quello che fai. Puoi ampliare l'idea che i "valori anomali" siano il problema maggiore? Includete singoli punti ad alta leva come "valori anomali" anche se hanno un piccolo residuo? Mi occupo sempre di osservazioni di valore estremo nella mia linea di lavoro (statistiche ambientali) e trovo che alcune persone (in particolare l'EPA) tendano a far esplodere gli outlier fuori misura (scusate ogni gioco di parole non intenzionale) e sono molto entusiaste per escluderli. Tendo ad adottare un atteggiamento tollerante nei confronti degli outlier se non riesco a trovare una buona prova del fatto che siano chiaramente il risultato di un errore nei dati (raccolta, immissione).
Dalton Hance,

1
@DaltonHance: probabilmente siamo praticamente nella stessa pagina. Il mio punto è solo che se hai valori anomali (per qualsiasi definizione) e non vengono presi in considerazione da qualsiasi modello / approccio statistico che stai utilizzando (modelli di miscele, statistiche affidabili, distribuzioni dalla coda grassa, ecc.), Allora tenderà a rovinare tutto il resto della diagnostica - farà apparire i residui non lineari / eteroscedastici / non normali. Sono certamente d'accordo sul fatto che non dovresti semplicemente buttarli fuori senza pensarci / riflessi.
Ben Bolker,

8

Elencherò una serie di metodi per trattare l'eteroscedasticità (con Resempi) qui: Alternative all'ANOVA a senso unico per i dati eteroschedastici . Molti di questi consigli sarebbero meno ideali perché hai una singola variabile continua, piuttosto che una variabile categoriale a più livelli, ma potrebbe essere comunque piacevole leggere come una panoramica.

Per la tua situazione, i minimi quadrati ponderati (forse combinati con una forte regressione se sospetti che possano esserci dei valori anomali) sarebbero una scelta ragionevole. Anche l'uso degli errori del panino Huber-White sarebbe positivo.

Ecco alcune risposte a domande specifiche:

  1. La regressione robusta è un'opzione praticabile, ma sarebbe meglio se abbinata a pesi secondo me. Se non sei preoccupato che l'eteroscedasticità sia dovuta a valori anomali, puoi semplicemente usare la regressione lineare regolare con i pesi. Tieni presente che la varianza può essere molto sensibile ai valori anomali e che i tuoi risultati possono essere sensibili a pesi inappropriati, quindi ciò che potrebbe essere più importante dell'utilizzo di una regressione solida per il modello finale sarebbe utilizzare una solida misura di dispersione per stimare i pesi. Nel thread collegato, utilizzo 1 / IQR, ad esempio.
  2. Gli errori standard sono errati a causa dell'eteroscedasticità. È possibile regolare gli errori standard con lo stimatore sandwich Huber-White. Questo è ciò che sta facendo @GavinSimpson nel thread SO collegato.

XX


1
l'uso della regressione robusta dal pacchetto lmrob inferirebbe automaticamente alcuni pesi, perché non usarli invece nel numero 1?
tool.ish,

1

Carica sandwich packagee calcola la matrice var-cov della tua regressione con var_cov<-vcovHC(regression_result, type = "HC4")(leggi il manuale di sandwich). Ora con l' lmtest packageuso della coeftestfunzione:

coeftest(regression_result, df = Inf, var_cov)

0

Come si presenta la distribuzione dei tuoi dati? Sembra una curva a campana? Dall'argomento, può essere normalmente distribuito? La durata di una telefonata potrebbe non essere negativa, ad esempio. Quindi in quel caso specifico di chiamate una distribuzione gamma lo descrive bene. E con gamma puoi usare un modello lineare generalizzato (glm in R)

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.