Modello misto con 1 osservazione per livello


12

Sto adattando un modello di effetti casuali glmerad alcuni dati aziendali. L'obiettivo è analizzare le prestazioni delle vendite per distributore, tenendo conto delle variazioni regionali. Ho le seguenti variabili:

  • distcode: ID distributore, con circa 800 livelli
  • region: ID geografico di livello superiore (nord, sud, est, ovest)
  • zone: geografia di medio livello nidificata all'interno region, circa 30 livelli in totale
  • territory: geografia di basso livello nidificata all'interno zone, circa 150 livelli

Ogni distributore opera in un solo territorio. La parte difficile è che si tratta di dati riepilogati, con un punto dati per distributore. Quindi ho 800 punti dati e sto cercando di adattare (almeno) 800 parametri anche se in modo regolare.

Ho montato un modello come segue:

glmer(ninv ~ 1 + (1|region/zone/territory) + (1|distcode), family=poisson)

Questo funziona senza problemi, anche se stampa una nota:

Il numero di livelli di un fattore di raggruppamento per gli effetti casuali è uguale a n, il numero di osservazioni

È una cosa sensata da fare? Ottengo stime limitate di tutti i coefficienti e anche l'AIC non è irragionevole. Se provo un GLMM poisson con il collegamento di identità, l'AIC è molto peggio, quindi il collegamento di registro è almeno un buon punto di partenza.

Se tracciamo i valori adattati rispetto alla risposta, ottengo ciò che è essenzialmente un adattamento perfetto, il che immagino sia perché ho un punto dati per distributore. È ragionevole o sto facendo qualcosa di completamente stupido?

Questo utilizza i dati per un mese. Posso ottenere dati per più mesi e ottenere qualche replica in quel modo, ma dovrei aggiungere nuovi termini per la variazione da mese a mese e possibili interazioni, giusto?


ETA: Ho eseguito di nuovo il modello sopra, ma senza familyargomenti (quindi solo un LMM gaussiano piuttosto che un GLMM). Ora lmermi ha dato il seguente errore:

Errore in (funzione (fr, FL, start, REML, verbose): il numero di livelli di un fattore di raggruppamento per gli effetti casuali deve essere inferiore al numero di osservazioni

Quindi immagino che non stia facendo qualcosa di sensato, poiché cambiare la famiglia non dovrebbe avere alcun effetto. Ma la domanda ora è: perché ha funzionato in primo luogo?

Risposte:


4

Non sarei molto d'accordo con la pratica di adattare un modello misto in cui hai lo stesso numero di gruppi delle osservazioni su basi concettuali, non ci sono "gruppi", e anche su basi computazionali, poiché il tuo modello dovrebbe avere problemi identificabili, nel caso di almeno un MMM. (Lavoro esclusivamente con LMM, potrebbe anche essere un po 'di parte. :))

yN(Xβ,ZDZT+σ2I)Dσ2

(Non capisco cosa intendi per AIC "ragionevole". L'AIC dovrebbe essere calcolabile nel senso che, nonostante un eccesso di adattamento dei tuoi dati, stai ancora "elaborando qualcosa".)

glmeryXβXβ>0glmer

La parte concettuale: penso che sia un po 'più "soggettiva" ma anche un po' più semplice. Si utilizza Mixed Eff. modelli perché in sostanza hai riconosciuto la presenza di una struttura correlata al gruppo nel tuo errore. Ora se hai tanti gruppi quanti punti dati, non c'è struttura da vedere. Eventuali deviazioni nella struttura dell'errore LM che potrebbero essere attribuite a un "raggruppamento" sono ora attribuite al punto di osservazione specifico (e come tale si finisce con un modello sovradimensionato).

In generale, i gruppi di osservazione singola tendono ad essere un po 'disordinati; per citare D.Bates dalla mailing list di r-sig-mixed-models:

Penso che scoprirai che c'è poca differenza nel modello che si adatta se includi o escludi i gruppi di osservazione singola. Provalo e vedi.


1
è giusto che questo non sembri avere molto senso in un'impostazione lineare, ma può essere molto utile nella regressione di Poisson. Vedrò se riesco a rintracciare un link a qualcosa che Ben Bolker ha detto sull'argomento (è uno degli sviluppatori di lme4, insieme a Doug Bates).
David J. Harris,

Sì, come ho detto probabilmente sto pensando in parte all'LMM e stavo commentando la "parte concettuale". Ho spiegato perché questo funziona comunque nel caso glmer(nonostante non ne sia troppo soddisfatto).
usεr11852,

8

Un livello per osservazione può essere molto utile se hai dati di conteggio eccessivamente dispersi come variabile di risposta. Equivale a dire che ti aspetti che i tuoi dati di conteggio provengano da una distribuzione Poisson-lognormale, cioè che il parametro lambda della tua distribuzione Poisson non sia completamente determinato dalle variabili predittive nel tuo modello e che le possibilità siano distribuite in modo lognormale.

Ben Bolker, uno degli sviluppatori di lme4, ha fatto due esempi di tutorial con questo. Il primo, con dati sintetici, fornisce ulteriori dettagli. Puoi trovare un pdf qui . Ha anche analizzato un'analisi esplorativa dei dati con dati reali che coinvolgono gufi (pdf e codice R disponibili da qui ).


1
+1. Sono d'accordo con quello che dici. Come ho detto nel mio post originale: "l' eccessiva dispersione (...) è come" aggirare "il problema di avere tanti gruppi quante osservazioni. " Grazie per aver chiarito meglio glmerin modo concettuale.
usεr11852,

1
Grazie per i collegamenti! Dopo aver letto quelli e aver visto più da vicino i valori adattati dal mio modello, ho un'idea migliore di ciò che sta accadendo. In realtà non penso che ciò che Ben stia facendo sia appropriato per la mia analisi. Sta usando una variabile a livello di osservazione per consentire un'eccessiva dispersione, quindi è come un effetto fastidioso. Per la mia analisi, distributorè un effetto di interesse: voglio vedere come i distributori si comportano l'uno rispetto all'altro quando consentono altre variabili. Quindi è più paragonabile a un modello misto lineare convenzionale, in cui il sovradimensionamento è una vera preoccupazione.
Hong Ooi,
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.