Devo usar um deslocamento para o meu Poisson GLM?

11

Estou realizando pesquisas para analisar as diferenças na densidade e na riqueza de espécies de peixes ao usar dois métodos diferentes de censo visual subaquático. Meus dados eram originalmente dados de contagem, mas normalmente isso é alterado para densidade de peixes, mas eu ainda decidi usar um Poisson GLM, o que espero estar certo.

model1 <- glm(g_den ~ method + site + depth, poisson)

Minhas três variáveis ​​preditoras são método, site e profundidade que eu ordenei como fatores quando as inseri.

Minhas variáveis ​​de resposta são riqueza de espécies de garoupa, densidade de garoupa e o mesmo para outros grupos de peixes. Estou ciente de que a densidade não é um número inteiro e são dados numéricos, por exemplo, 1.34849. No entanto, agora estou recebendo este erro:

In dpois(y, mu, log = TRUE) : non-integer x = 0.037500

Estive lendo e muitas pessoas sugerem o uso de um deslocamento, isso é a coisa mais recomendável a se fazer?

Vivienne
fonte
1
Não se trata realmente de como usar R. Esta é uma questão estatística básica disfarçada de questão R. Deve estar no tópico aqui.
gung - Restabelece Monica

Respostas:

11

Existem várias questões aqui:

  1. Você precisa usar as contagens observadas como sua variável de resposta. Você não deve usar as densidades ( g_den).
  2. Se as contagens observadas forem de áreas diferentes, é necessário tomar o log dessas áreas como uma nova variável:

    larea = log(area)
  3. Você pode controlar as diferentes áreas para as observações de duas maneiras diferentes:

    • Usando lareacomo um deslocamento. Isso tornará sua resposta realmente uma taxa (mesmo que o que está listado no lado esquerdo do seu modelo seja uma contagem ).
    • Usando lareacomo covariável. Isso controlará as diferentes áreas, mas não tornará sua resposta equivalente a uma taxa. Essa é uma abordagem mais flexível que permitirá avaliar se os aumentos lareatêm um efeito crescente ou decrescente na contagem (ou seja, se a inclinação é menor ou maior que 1).

Há mais informações sobre esses problemas nos seguintes tópicos do CV:

Repor a Monica
fonte
6

Parece que você dividiu a contagem de peixes pelo volume (ou talvez área) da água pesquisada. Nesse caso, um deslocamento é realmente apropriado, você deve usar o log do que quer que seja dividido. Possivelmente

model1 <- glm(g_den ~ method + site + depth + offset(log(area)), poisson)

(editado a partir da versão incorreta anterior, sem o log)

O motivo da mensagem de erro é que a distribuição de poisson é normalmente com valor inteiro, mas a resposta não era um número inteiro. Isso muda quando um deslocamento está presente; (resposta / deslocamento) deve ser um número inteiro (o que é claro, supondo que as contagens originais fossem números inteiros).

JDL
fonte
2
Você menciona que deve usar a transformação de log da área (como o modelo de Poisson usa o link de log) em sua resposta, mas seu código não faz a transformação. Eu não acho que offsetaplica a transformação por padrão, mas já faz um tempo desde que eu usei offset.
Iacobus
3
Observe que offset() não aplica a transformação por padrão; apenas força o coeficiente a ser 1. Veja, por exemplo, aqui .
gung - Restabelece Monica
1
Obrigado pelos comentários. Então, devo alterar meus dados novamente para contagens, em vez de densidades, e incluir a área como uma variável separada? Também fui aconselhado em outro fórum a fazer um modelo gaussiano gama ou inverso e alterar meus valores zero para 0,00001 se eu mantivesse os dados como densidades, você acha que isso também seria apropriado?
Vivienne
4
@JDL Não é correto manter a densidade não inteira como resposta, uma vez que o log (área) seja incluído como um deslocamento. A função de link do log e o deslocamento do log (área) equivalem à suposição razoável a priori de que , ou seja, proporcionalidade direta ao número esperado de peixes e ao tamanho de cada área. Isso implica que a densidade esperada é independente do log ( área). E(count)=exp(βTx)area=exp(βTx+log(area))E(count/area)=E(count)/area=exp(βTx)
Jarle Tufto 01/09/16
5
Você não pode usar as densidades como resposta. Você deve usar as contagens originais como sua resposta. A inclusão do deslocamento tornará automaticamente a resposta da contagem equivalente às densidades da maneira correta.
gung - Restabelece Monica
5

Para modelar usando o Poisson, é necessário ter valores inteiros para sua variável de resposta. Você então tem duas opções

  • Use a área ou outro denominador adequado como deslocamento. Geralmente, isso precisa ser registrado primeiro
  • Inclua área ou etc como uma variável preditora. Novamente, isso geralmente seria incluído como um log porque você está modelando as contagens de log.

Se você usar a abordagem de deslocamento, estará dizendo que, se eu duplicar a área, esperaria obter o dobro da contagem. Se você usa a abordagem preditora, diz que sabe que, se multiplicar a área, multiplica as contagens, mas não necessariamente pelo mesmo fator.

É a sua chamada.

mdewey
fonte