Como implementar um modelo misto usando a função betareg em R?

12

Eu tenho um conjunto de dados composto de proporções que medem o "nível de atividade" de girinos individuais, tornando os valores vinculados entre 0 e 1. Esses dados foram coletados contando o número de vezes que o indivíduo se moveu dentro de um determinado intervalo de tempo (1 para movimento, 0 para nenhum movimento) e, em seguida, calcula a média para criar um valor por indivíduo. Meu principal efeito fixo seria "nível de densidade".

A questão que estou enfrentando é que tenho uma variável fator, "lagoa" que gostaria de incluir como efeito aleatório - não me importo com diferenças entre lagoas, mas gostaria de explicá-las estatisticamente. Um ponto importante sobre as lagoas é que eu tenho apenas três delas e entendo que é ideal ter mais níveis de fator (5+) ao lidar com efeitos aleatórios.

Se for possível, gostaria de alguns conselhos sobre como implementar um modelo misto usando betareg()ou betamix()em R. Li os arquivos de ajuda do R, mas geralmente os acho difíceis de entender (o que cada parâmetro de argumento realmente significa no contexto dos meus próprios dados E o que os valores de saída significam em termos ecológicos) e, portanto, tenho a tendência de trabalhar melhor com exemplos.

Em uma nota relacionada, fiquei pensando se, em vez disso, posso usar um glm()sob uma família binomial e um link de logit para realizar a contabilização de efeitos aleatórios com esse tipo de dados.

Kat Y
fonte
Não, você não pode incluir termos de erro em glm (). Que tal o logit transformar sua resposta e considerar um modelo linear misto?
utobi
@utobi Obrigado, vou tentar isso. Então, você não tem preocupações de ter um efeito aleatório com apenas três níveis?
Kat Y
Não sei o significado da sua variável "lago", mas se você repetir medidas, efeitos aleatórios são quase uma obrigação. Caso você não tenha medidas repetidas, aqui aleatório x fixo é um debate aberto. Três níveis de efeitos aleatórios podem estar ok, em princípio sua variação é estimada. Eu sugiro que você verifique a literatura em seu campo. Um bom livro que discute efeitos aleatórios versus efeitos fixos é stat.columbia.edu/~gelman/arm .
utobi
1
@utobi obrigado por seus conselhos. Foi útil. Vou olhar para esse livro! Acabei fazendo transformações de logit e usei lmer ().
Kat Y
Confira esta resposta stats.stackexchange.com/questions/167340/…
Diogo B Provete 25/04/17

Respostas:

11

Os recursos atuais de betaregnão incluem efeitos aleatórios / mistos. Em betareg()só podem incluir efeito fixo, por exemplo, para o seu variável lagoa de três níveis. A betamix()função implementa uma regressão beta de mistura finita , não uma regressão beta de efeitos mistos .

No seu caso, primeiro tentaria ver qual o efeito de um fator de lagoa fixo. Isso "custa" dois graus de liberdade, enquanto um efeito aleatório seria um pouco mais barato com apenas um grau adicional de liberdade. Mas ficaria surpreso se as duas abordagens levassem a insights qualitativos muito diferentes.

Finalmente, embora glm()não suporte a regressão beta, mas no mgcvpacote há a betar()família que pode ser usada com a gam()função.

Achim Zeileis
fonte
Obrigdo por sua contribuição. Você esclareceu alguns aspectos das funções betareg. Nesse ponto, segui o conselho de @utobi e fiz transformações de logit para poder usar lmer (). Vou olhar para gam () desde o meu próximo conjunto de dados também está vinculado entre 0 e 1, e eu não posso normalizar a distribuição através de transformações :)
Kat Y
1
Eu esperaria que as abordagens retornassem resultados semelhantes, mas também algumas diferenças das quais você pode aprender alguma coisa. Então, eu recomendaria tentar todos os três, ou seja, betaregcom efeitos fixos, transformados em logit lmercom efeitos aleatórios e gamcom betar. (E também: Se a resposta foi útil, considere upvoting ou aceitá-lo.)
Achim Zeileis
15

O pacote glmmTMB pode ser útil para qualquer pessoa com uma pergunta semelhante. Por exemplo, se você quisesse incluir o pond da pergunta acima como um efeito aleatório, o código a seguir faria o seguinte:

glmmTMB(y ~ 1 + (1|pond), df, family=list(family="beta",link="logit"))
Kori K
fonte
Bem-vindo ao CV. Obrigado pela sua contribuição. Este é mais um comentário do que uma resposta. Você pode estender sua resposta, por favor?
Ferdi 02/10
Desculpe pelo atraso, não vi o comentário imediatamente. Espero que ajude.
precisa
3

Isso começou como um comentário, mas demorou muito. Eu não acho que um modelo de efeitos aleatórios seja apropriado aqui. Existem apenas três lagoas - você deseja estimar uma variação de 3 números? É isso que acontece com um modelo de efeitos aleatórios. Suponho que as lagoas foram escolhidas em razão de sua conveniência para o pesquisador, e não como uma amostra aleatória de "Lagoas das Américas".

A vantagem de um modelo de efeitos aleatórios é que ele permite que você construa um intervalo de confiança na resposta (nível de atividade) que leva em consideração a variação lagoa a lagoa. Um modelo de efeitos fixos - em outras palavras, tratar a lagoa como um bloco - ajusta a resposta para o efeito da lagoa. Se houve algum efeito adicional do tratamento - digamos, duas espécies de sapo em cada lago - o bloqueio reduz o erro quadrático médio (denominador do teste F) e permite que o efeito do tratamento brilhe.

Neste exemplo, não há efeito de tratamento e o número de lagoas é muito pequeno para um modelo de efeitos aleatórios (e provavelmente "não aleatório"), portanto, não tenho certeza de que conclusões podem ser tiradas deste estudo. Pode-se obter uma boa estimativa da diferença entre as lagoas, mas é isso. Não vejo inferências sendo atraídas para a população mais ampla de sapos em outros locais da lagoa. Alguém poderia enquadrá-lo como um estudo piloto, suponho.

Lembre-se de que qualquer uso de um modelo de efeitos aleatórios aqui fornecerá uma estimativa não confiável para a variação da lagoa e deve ser usado com cuidado.

Mas, quanto à sua pergunta original - isso não é mais um problema de taxa? A distribuição de entrada para eventos por unidade de tempo é o Poisson. Assim, você pode fazer a regressão de Poisson usando as contagens com o intervalo de tempo como um deslocamento.

Placidia
fonte