Dati di conteggio della modellazione in cui la variabile offset è 0 per alcune osservazioni


9

Sto cercando di aiutare uno studente di un collega. Lo studente ha osservato e contato il comportamento degli uccelli (numero di chiamate) in una configurazione sperimentale. Non è stato possibile determinare il numero di chiamate attribuibili a uno specifico uccello osservato durante ciascun esperimento, ma è stato possibile contare il numero di uccelli che hanno contribuito al numero di chiamate registrate. Quindi il mio suggerimento iniziale era di includere il numero di volatili come termine di scostamento in un modello GLM di Poisson, quindi corrisponderemmo al numero previsto di chiamate per volatile .

Il problema è che in molte occasioni di osservazione non sono stati osservati uccelli (e quindi nessuna chiamata). Il software (R in questo caso) si lamenta perché (R si lamenta di contenere dati ma questo è puramente il risultato dell'essere ).log(0)=infy-Infoffset(log(nbirds))-Inf

In realtà sospetto che abbiamo bisogno di un modello di ostacolo (o simile) in cui abbiamo un modello binomiale separato per "chiamate osservate?" (o no) e un modello di conteggio troncato per il numero di chiamate (per uccello) in situazioni in cui c'erano chiamate, in cui includiamo il termine di offset solo nella parte di conteggio del modello.

Avendo provato questo usando il pacchetto pscl in R, ma sto ancora ottenendo lo stesso errore:

mod1 <- hurdle(NumberCallsCOPO ~ Condition * MoonVis +
               offset(log(NumberCOPO)) | 1, data = Data,
               dist = "poisson")

perché lo stesso codice R ( glm.fitutilizzato internamente hurdle()per adattarsi alla parte del modello di conteggio) sta verificando -Infanche se non penso che influirebbe sul modello adatto a tali osservazioni. (È un presupposto corretto?)

Posso fare in modo che il modello si adatti aggiungendo un piccolo numero a NumberCOPO(diciamo 0.0001) ma questo è un fondente al massimo.

L'aggiunta di questa piccola correzione di continuità sarebbe OK in pratica? In caso contrario, quali altri approcci dovremmo prendere in considerazione quando gestiamo i dati in cui potremmo voler utilizzare un offset in un modello di Poisson in cui la variabile offset può assumere il valore 0? Tutti gli esempi che ho incontrato sono per situazioni in cui uno 0 non sarebbe possibile per la variabile offset.


2
In questo caso, sembra che il tuo modello stia cercando di adattarsi a una tautologia: se vengono osservati 0 uccelli, sentirai anche 0 richiami di uccelli. Non sono convinto che il montaggio di un modello su righe con offset 0 sia appropriato in questo caso.
Sycorax dice di reintegrare Monica il

Grazie, come ho detto di seguito, anche questa è la mia reazione intestinale. Ho ampliato un po 'la mia risposta alla risposta di Barry (Spacedman) qui sotto.
Gavin Simpson,

2
Concordo con i commenti che implicano che il modello di tasso di Poisson (cioè con il termine di compensazione) non è appropriato per quei casi (e hai ragione a dire che forse un modello separato, come il binomio, dovrebbe essere applicato per incorporare quei casi) . La tariffa non può essere basata sul denominatore zero.
ttnphns,

Risposte:


5

Quindi la risposta che vuoi modellare è "Numero di chiamate per uccello" e le linee problematiche sono dove non hai osservato alcun uccello? Lascia cadere quelle righe. Non aggiungono informazioni alla cosa che stai cercando di modellare.


Anche questa è la mia reazione viscerale; probabilmente ripensandoci, ma posso immaginare una situazione in cui gli uccelli hanno osservato ma non hanno fatto chiamate. Da qui il modello di ostacolo, ma internamente sta ancora usando ciò glm.fitche genera un dondolio anche se quei valori non contano nella parte di conteggio del modello. Suppongo che avrei potuto fare il modello ostacolo a mano, ma io non voglio fare questo, basta consigliare lo studente.
Gavin Simpson,

3
Se hai molte chiamate zero effettuate da uccelli osservati diversi da zero, potresti voler fare un modello di poisson gonfiato a zero (o simile), ma è molto diverso da zero uccelli osservati quando sei interessato al numero di chiamate per uccello .
Spacedman,

In questo caso non penso che ne abbiamo molti; buttare via i dati di 0 osservati e adattarsi con un binomio negativo sembra essere un primo passo ragionevole.
Gavin Simpson,

2

In un GLM di Poisson, un offset è semplicemente un ridimensionamento moltiplicativo sulla velocità di Poisson che viene modellata - e un Poisson con una velocità di zero non è utile o addirittura significativo ...

Ecco perché Spacedman è corretto!


0

Prova a farlo (ostacolo) "a mano (per scopi" didattici / ginnici "): dividi in parte binomiale e parte di cout e goditi il ​​logit di adattamento e la regressione di cout separatamente! O usa i modelli Hurdle standart (+ test Vuong) Poisson / negBin / Gamma ..., GAM. A me non serve il var "offset", mi pare. ;-)

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.