ANOVA em dados binomiais


32

Estou analisando um conjunto de dados experimental. Os dados consistem em um vetor pareado do tipo de tratamento e um resultado binomial:

Treatment    Outcome
A            1
B            0
C            0
D            1
A            0
...

Na coluna de resultados, 1 indica sucesso e 0 indica falha. Eu gostaria de descobrir se o tratamento varia significativamente o resultado. Existem 4 tratamentos diferentes com cada experimento repetido um grande número de vezes (2000 para cada tratamento).

Minha pergunta é: posso analisar o resultado binário usando ANOVA? Ou devo usar um teste do qui-quadrado para verificar os dados binomiais? Parece que o qui-quadrado assume que a proporção seria dividida igualmente, o que não é o caso. Outra idéia seria resumir os dados usando a proporção de sucessos versus fracassos de cada tratamento e, em seguida, usar um teste de proporção.

Estou curioso para ouvir suas recomendações para testes que fazem sentido para esse tipo de experimento binomial de sucesso / falha.

Respostas:


18

Não à ANOVA, que assume uma variável de resultado normalmente distribuída (entre outras coisas). Há transformações da "velha escola" a serem consideradas, mas eu preferiria a regressão logística (equivalente a um quadrado de chi quando houver apenas uma variável independente, como no seu caso). A vantagem de usar a regressão logística sobre um teste do qui quadrado é que você pode facilmente usar um contraste linear para comparar níveis específicos do tratamento se encontrar um resultado significativo para o teste geral (tipo 3). Por exemplo A versus B, B versus C etc.

Atualização adicionada para maior clareza:

Tomando os dados em mãos (o conjunto de dados pós-documento de Allison ) e usando a variável cits da seguinte maneira, este foi o meu ponto:

postdocData$citsBin <- ifelse(postdocData$cits>2, 3, postdocData$cits)
postdocData$citsBin <- as.factor(postdocData$citsBin)
ordered(postdocData$citsBin, levels=c("0", "1", "2", "3"))
contrasts(postdocData$citsBin) <- contr.treatment(4, base=4) # set 4th level as reference
contrasts(postdocData$citsBin)
     #   1 2 3
     # 0 1 0 0
     # 1 0 1 0
     # 2 0 0 1
     # 3 0 0 0

# fit the univariate logistic regression model
model.1 <- glm(pdoc~citsBin, data=postdocData, family=binomial(link="logit"))

library(car) # John Fox package
car::Anova(model.1, test="LR", type="III") # type 3 analysis (SAS verbiage)
     # Response: pdoc
     #          LR Chisq Df Pr(>Chisq)
     # citsBin   1.7977  3     0.6154

chisq.test(table(postdocData$citsBin, postdocData$pdoc)) 
     # X-squared = 1.7957, df = 3, p-value = 0.6159

# then can test differences in levels, such as: contrast cits=0 minus cits=1 = 0
# Ho: Beta_1 - Beta_2 = 0
cVec <- c(0,1,-1,0)
car::linearHypothesis(model.1, cVec, verbose=TRUE) 

1
@ user2040. Eu não entendo como você faria o teste "tipo 3"? É algo relacionado ao SAS? (desculpe, meu conhecimento do SAS é muito limitado). Eu teria feito uma regressão logística como você sugeriu, mas com 2 variáveis ​​fictícias. Além disso, dado que entendi corretamente, se você fizer regressão logística, testar se alguns ou todos os coeficientes são 0 é feito por desvio (ou razão de verossimilhança) e é assintoticamente Chi-Sq (não necessariamente com df = 1)
suncoolsu

1
@suncoolsu: Sim, na prática, você deve obter a mesma conclusão. Eu não deveria ter dito "equivalente" (trabalho com big data para que eles acabem iguais). Eu adicionei algum código na resposta para ajudar a esclarecer.
B_Miner

8

Xkknkkkp^k=Xk/nk

g(p)=arcsinp

No entanto, alguns autores modernos são bastante céticos em relação à transformação do arco-seno, veja, por exemplo, http://www.mun.ca/biology/dschneider/b7932/B7932Final10Dec2010.pdf Mas esses autores estão preocupados com problemas como a previsão, onde mostram a O arcsine pode causar problemas. Se você está preocupado apenas com o teste de hipóteses, deve estar OK. Uma abordagem mais moderna poderia usar regressão logística.


4
(+1) ... se todos os grupos tiverem o mesmo não. observações.
Scortchi - Restabelece Monica

1
Ou pode-se usar pesos com base no número de observações.
b Kjetil HALVORSEN

3

Gostaria de diferir do que você pensa sobre o teste Chi-Sq. É aplicável mesmo se os dados não forem binomiais. É baseado na normalidade assintótica de mle (na maioria dos casos).

Eu faria uma regressão logística como esta:

logπ^1π^=β0+β1×D1+β2×D2

Onde

D1D2D1=D2=0A,D1=1,D2=0B,D1=1D2=1C

Ho:β0=β1=β2=0

É o equivalente ANOVA se existe uma relação ou não.

Ho:β0=0

O teste é que A tem algum efeito.

Ho:β1β0=0

É o teste é B tem algum efeito.

Ho:β2(β0+β12)=0

É o teste é C tem algum efeito.

Agora você pode fazer mais contrastes para encontrar o que você está interessado. Ainda é um teste qui-quadrado, mas com diferentes graus de liberdade (3, 1, 1 e 1, respectivamente)


Eu ainda preciso pensar no contraste. Vou corrigi-lo sempre que tiver tempo. Desculpe por isso
suncoolsu

-3

Eu acho que você está certo que a ANOVA não deve ser usada para analisar variáveis ​​dependentes binomiais. Muitas pessoas usam isso para comparar médias da variável de resposta binária (0 1), mas ela não deve ser usada porque isso viola seriamente a suposição de normalidade e igual. Testes de qui-quadrado ou regressão logística são os melhores para essas situações.


O mesmo que sua resposta aqui .
Scortchi - Restabelecer Monica
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.