Ho alcune domande in merito alle specifiche e all'interpretazione dei GLMM. 3 domande sono sicuramente statistiche e 2 sono più specifiche su R. Sto pubblicando qui perché alla fine penso che il problema sia l'interpretazione dei risultati GLMM.
Attualmente sto provando a montare un GLMM. Sto usando i dati del censimento degli Stati Uniti dal database del tratto longitudinale . Le mie osservazioni sono tratti di censimento. La mia variabile dipendente è il numero di unità abitative vacanti e sono interessato alla relazione tra le posizioni vacanti e le variabili socio-economiche. L'esempio qui è semplice, usando solo due effetti fissi: percentuale di popolazione non bianca (razza) e reddito familiare medio (classe), oltre alla loro interazione. Vorrei includere due effetti casuali nidificati: tratti entro decenni e decenni, ovvero (decennio / tratto). Sto considerando questi casuali nel tentativo di controllare l'autocorrelazione spaziale (cioè tra i tratti) e temporale (cioè tra i decenni). Tuttavia, sono interessato al decennio anche come effetto fisso, quindi lo includo anche come fattore fisso.
Dato che la mia variabile indipendente è una variabile di conteggio di numeri interi non negativi, ho cercato di adattare i GLMM binomiali negativi e negativi. Sto usando il registro delle unità abitative totali come offset. Ciò significa che i coefficienti vengono interpretati come l'effetto sul tasso di posti vacanti, non sul numero totale di case libere.
Attualmente ho risultati per un Poisson e un GLMM binomiale negativo stimati usando glmer e glmer.nb di lme4 . L'interpretazione dei coefficienti ha senso per me in base alla mia conoscenza dei dati e dell'area di studio.
Se vuoi i dati e gli script sono sul mio Github . Lo script include più delle indagini descrittive che ho fatto prima di costruire i modelli.
Ecco i miei risultati:
Modello di Poisson
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
Family: poisson ( log )
Formula: R_VAC ~ decade + P_NONWHT + a_hinc + P_NONWHT * a_hinc + offset(HU_ln) + (1 | decade/TRTID10)
Data: scaled.mydata
AIC BIC logLik deviance df.resid
34520.1 34580.6 -17250.1 34500.1 3132
Scaled residuals:
Min 1Q Median 3Q Max
-2.24211 -0.10799 -0.00722 0.06898 0.68129
Random effects:
Groups Name Variance Std.Dev.
TRTID10:decade (Intercept) 0.4635 0.6808
decade (Intercept) 0.0000 0.0000
Number of obs: 3142, groups: TRTID10:decade, 3142; decade, 5
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.612242 0.028904 -124.98 < 2e-16 ***
decade1980 0.302868 0.040351 7.51 6.1e-14 ***
decade1990 1.088176 0.039931 27.25 < 2e-16 ***
decade2000 1.036382 0.039846 26.01 < 2e-16 ***
decade2010 1.345184 0.039485 34.07 < 2e-16 ***
P_NONWHT 0.175207 0.012982 13.50 < 2e-16 ***
a_hinc -0.235266 0.013291 -17.70 < 2e-16 ***
P_NONWHT:a_hinc 0.093417 0.009876 9.46 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr) dc1980 dc1990 dc2000 dc2010 P_NONWHT a_hinc
decade1980 -0.693
decade1990 -0.727 0.501
decade2000 -0.728 0.502 0.530
decade2010 -0.714 0.511 0.517 0.518
P_NONWHT 0.016 0.007 -0.016 -0.015 0.006
a_hinc -0.023 -0.011 0.023 0.022 -0.009 0.221
P_NONWHT:_h 0.155 0.035 -0.134 -0.129 0.003 0.155 -0.233
convergence code: 0
Model failed to converge with max|grad| = 0.00181132 (tol = 0.001, component 1)
Modello binomiale negativo
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
Family: Negative Binomial(25181.5) ( log )
Formula: R_VAC ~ decade + P_NONWHT + a_hinc + P_NONWHT * a_hinc + offset(HU_ln) + (1 | decade/TRTID10)
Data: scaled.mydata
AIC BIC logLik deviance df.resid
34522.1 34588.7 -17250.1 34500.1 3131
Scaled residuals:
Min 1Q Median 3Q Max
-2.24213 -0.10816 -0.00724 0.06928 0.68145
Random effects:
Groups Name Variance Std.Dev.
TRTID10:decade (Intercept) 4.635e-01 6.808e-01
decade (Intercept) 1.532e-11 3.914e-06
Number of obs: 3142, groups: TRTID10:decade, 3142; decade, 5
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.612279 0.028946 -124.79 < 2e-16 ***
decade1980 0.302897 0.040392 7.50 6.43e-14 ***
decade1990 1.088211 0.039963 27.23 < 2e-16 ***
decade2000 1.036437 0.039884 25.99 < 2e-16 ***
decade2010 1.345227 0.039518 34.04 < 2e-16 ***
P_NONWHT 0.175216 0.012985 13.49 < 2e-16 ***
a_hinc -0.235274 0.013298 -17.69 < 2e-16 ***
P_NONWHT:a_hinc 0.093417 0.009879 9.46 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr) dc1980 dc1990 dc2000 dc2010 P_NONWHT a_hinc
decade1980 -0.693
decade1990 -0.728 0.501
decade2000 -0.728 0.502 0.530
decade2010 -0.715 0.512 0.517 0.518
P_NONWHT 0.016 0.007 -0.016 -0.015 0.006
a_hinc -0.023 -0.011 0.023 0.022 -0.009 0.221
P_NONWHT:_h 0.154 0.035 -0.134 -0.129 0.003 0.155 -0.233
Prove DHARMa di Poisson
One-sample Kolmogorov-Smirnov test
data: simulationOutput$scaledResiduals
D = 0.044451, p-value = 8.104e-06
alternative hypothesis: two-sided
DHARMa zero-inflation test via comparison to expected zeros with simulation under H0 = fitted model
data: simulationOutput
ratioObsExp = 1.3666, p-value = 0.159
alternative hypothesis: more
Test DHARMa binomiali negativi
One-sample Kolmogorov-Smirnov test
data: simulationOutput$scaledResiduals
D = 0.04263, p-value = 2.195e-05
alternative hypothesis: two-sided
DHARMa zero-inflation test via comparison to expected zeros with simulation under H0 = fitted model
data: simulationOutput2
ratioObsExp = 1.376, p-value = 0.174
alternative hypothesis: more
Diagrammi DHARMa
poisson
Binomio negativo
Domande statistiche
Dal momento che sto ancora cercando di capire i GLMM, mi sento insicuro riguardo alle specifiche e all'interpretazione. Ho alcune domande:
Sembra che i miei dati non supportino l'uso di un modello di Poisson e quindi sto meglio con un binomio negativo. Tuttavia, ricevo costantemente avvisi che i miei modelli binomiali negativi raggiungono il loro limite di iterazione, anche quando aumento il limite massimo. "In theta.ml (Y, mu, pesi = oggetto @ resp $ pesi, limite = limite,: limite di iterazione raggiunto." Ciò accade usando diverse specifiche (ovvero modelli minimi e massimi per effetti sia fissi che casuali). Ho anche provato a rimuovere i valori anomali nella mia persona a carico (lordo, lo so!), Poiché l'1% superiore dei valori è molto anomalo (intervallo inferiore del 99% da 0-1012, primo 1% da 1013-5213). non ha alcun effetto sulle iterazioni e anche un effetto minimo sui coefficienti. Non includo questi dettagli qui. Anche i coefficienti tra Poisson e binomio negativo sono abbastanza simili. Questa mancanza di convergenza è un problema? Il modello binomiale negativo è adatto? Ho anche eseguito il modello binomiale negativo utilizzandoAllFit e non tutti gli ottimizzatori generano questo avviso (bobyqa, Nelder Mead e nlminbw no).
La varianza per il mio decennio di effetto fisso è costantemente molto bassa o 0. Capisco che questo potrebbe significare che il modello è troppo adatto. Prendere un decennio dagli effetti fissi aumenta la varianza degli effetti casuali del decennio a 0,2620 e non ha molto effetto sui coefficienti degli effetti fissi. C'è qualcosa di sbagliato nel lasciarlo dentro? Sto bene interpretandolo come semplicemente non necessario per spiegare tra la varianza dell'osservazione.
Questi risultati indicano che dovrei provare modelli a gonfiaggio zero? DHARMa sembra suggerire che l'inflazione zero potrebbe non essere il problema. Se pensi che dovrei provare comunque, vedi sotto.
Domande R
Sarei disposto a provare modelli a zero inflazionato, ma non sono sicuro di quale pacchetto limita gli effetti casuali nidificati per Poisson a zero inflazionato e GLMM binomiali negativi. Userei glmmADMB per confrontare l'AIC con i modelli a zero inflazione, ma è limitato a un singolo effetto casuale, quindi non funziona per questo modello. Potrei provare MCMCglmm, ma non conosco le statistiche bayesiane quindi anche questo non è attraente. Altre opzioni?
Posso visualizzare i coefficienti esponenziali nel riepilogo (modello) o devo farlo al di fuori del riepilogo come ho fatto qui?
bobyqa
ottimizzatore e che non ha prodotto alcun avviso. Qual è il problema allora? Basta usare bobyqa
.
bobyqa
converge meglio dell'ottimizzatore predefinito (e penso di aver letto da qualche parte che diventerà predefinito nelle versioni future di lme4
). Non penso che devi preoccuparti della non convergenza con l'ottimizzatore predefinito se converge con bobyqa
.
decade
sia fisso che casuale non ha senso. O impostalo come fisso e includilo solo(1 | decade:TRTID10)
come casuale (il che equivale a(1 | TRTID10)
supporre che il tuoTRTID10
non abbia gli stessi livelli per decenni diversi) o rimuovilo dagli effetti fissi. Con solo 4 livelli potresti essere meglio di averlo riparato: la consueta raccomandazione è di adattare effetti casuali se uno ha 5 livelli o più.