Como aplicar GLMM binomial (glmer) a porcentagens em vez de contagens sim-não?


21

Tenho um experimento de medidas repetidas em que a variável dependente é uma porcentagem e tenho vários fatores como variáveis ​​independentes. Eu gostaria de usar glmero pacote R lme4para tratá-lo como um problema de regressão logística (especificando family=binomial), pois parece acomodar essa configuração diretamente.

Meus dados são assim:

 > head(data.xvsy)
   foldnum      featureset noisered pooldur dpoolmode       auc
 1       0         mfcc-ms      nr0       1      mean 0.6760438
 2       1         mfcc-ms      nr0       1      mean 0.6739482
 3       0    melspec-maxp    nr075       1       max 0.8141421
 4       1    melspec-maxp    nr075       1       max 0.7822994
 5       0 chrmpeak-tpor1d    nr075       1       max 0.6547476
 6       1 chrmpeak-tpor1d    nr075       1       max 0.6699825

e aqui está o comando R que eu esperava que fosse apropriado:

 glmer(auc~1+featureset*noisered*pooldur*dpoolmode+(1|foldnum), data.xvsy, family=binomial)

O problema com isso é que o comando reclama da minha variável dependente não ser números inteiros:

In eval(expr, envir, enclos) : non-integer #successes in a binomial glm!

e a análise desses dados (piloto) fornece respostas estranhas como resultado.

Entendo por que a binomialfamília espera números inteiros (sim-não conta), mas parece que não há problema em regredir dados percentuais diretamente. Como fazer isso?


1
Não me parece bom, pois 5 em 10 não são as mesmas informações que 500 em 1000. Expresse a resposta como uma contagem do não. "sucessos" e uma contagem do não. "falhas".
Scortchi - Restabelece Monica

@ Scortchi obrigado, acho que você pode estar certo. Eu estava pensando em parte sobre a natureza contínua de minhas porcentagens (derivadas de decisões probabilísticas) semelhantes a esta pergunta: stats.stackexchange.com/questions/77376/…, mas acredito que posso expressar meus dados por meio de uma conversão significativa em contagens de números inteiros.
Dan Stowell

Respostas:


22

Para usar um vetor de proporções como a variável de resposta glmer(., family = binomial), é necessário definir o número de tentativas que levaram a cada proporção usando o weightsargumento Por exemplo, usando os cbppdados do lme4pacote:

glmer(incidence / size ~ period + (1 | herd), weights = size,
   family = binomial, data = cbpp)

Se você não souber o número total de tentativas, um modelo binomial não é apropriado, conforme indicado na mensagem de erro.


Não sei dizer se o uso de pesos para isso funciona ou não. Mas você certamente pode inserir os dados como uma matriz de duas colunas (sucessos / falhas) no lado esquerdo da fórmula.
Ndoogan

Mas @ndoogan, a pergunta original era sobre proporções, não sucessos / fracassos. E o código acima funciona, como peguei na cbpppágina de ajuda.
Steve Walker

Justo. No entanto, pretendia significar sucessos / fracassos ( não destinados a ser divisão) é de onde vêm as proporções para um modelo binomial.
Ndoogan 27/02

+1, mas os leitores podem querer ver a resposta de @ BenBolker aqui stats.stackexchange.com/questions/189115 sobre possíveis maneiras de lidar com a super-dispersão.
Ameba diz Reinstate Monica

9

(0 0,1)


2
Um modelo binomial é um modelo de proporções. No entanto, só é apropriado quando você sabe o número de tentativas. Se tudo o que você tem é um percentual, sem indicação do número de tentativas, acredito que você está certo de que a regressão beta é apropriada.
Ndoogan 27/02

@ndoogan Para esclarecer, meu conselho não é "use regressão beta quando sua resposta for proporcional", mas "se sua resposta puder apenas receber valores em (0 0,1) , como proporções / porcentagens, então a regressão beta é típica"
M. Berk

Obrigado, este é um bom ponto. Estou aceitando a outra resposta porque ela responde à pergunta como está escrita, mas o argumento sobre a regressão beta é bem fundamentado, então eu a votei de forma positiva.
Dan Stowell
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.