Estou interessado em alterar as hipóteses nulas usando glm()
em R.
Por exemplo:
x = rbinom(100, 1, .7)
summary(glm(x ~ 1, family = "binomial"))
testa a hipótese de que . E se eu quiser alterar o valor nulo para = algum valor arbitrário glm()
?
Sei que isso também pode ser feito com prop.test()
e chisq.test()
, mas gostaria de explorar a idéia de usar glm()
para testar todas as hipóteses relacionadas a dados categóricos.
r
hypothesis-testing
generalized-linear-model
chi-squared
offset
Bill Ravenwood
fonte
fonte
glm
Respostas:
Você pode usar um deslocamento :β0=0 p q=logit(p)=log(p/(1−p))
glm
comfamily="binomial"
parâmetros de estimativa nas probabilidades logarítmicas ou na escala logit, portanto corresponde às probabilidades logarítmicas de 0 ou uma probabilidade de 0,5. Se você deseja comparar com uma probabilidade de p , deseja que o valor da linha de base seja q = logit ( p ) = log ( p / ( 1 - p ) ) . O modelo estatístico é agoraonde apenas a última linha foi alterada da configuração padrão. No código R:
offset(q)
na fórmulaqlogis(p)
rep(q,100)
.fonte
glm(y ~ offset(q)-1, family=binomial, data=dd)
e usando alrtest
partir dolmtest
pacote. O teste qui-quadrado de Pearson é o teste de pontuação para o modelo GLM. Wald / LRT / Score são todos testes consistentes e devem fornecer inferência equivalente em tamanhos de amostra razoavelmente grandes.anova()
a partir de R base sobre a glm para obter um teste LRlrtest
faz.anova(.,test="Chisq")
?Veja o intervalo de confiança para os parâmetros do seu GLM:
Este é um intervalo de confiança para probabilidades de log.
Para , temos log ( o d d s ) = log pp=0.5 . Portanto, testar a hipótese de quep=0,5é equivalente a verificar se o intervalo de confiança contém 0. Este não, portanto, a hipótese é rejeitada.log(odds)=logp1−p=log1=0 p=0.5
Agora, para qualquer arbitrário , você pode calcular as probabilidades do log e verificar se está dentro do intervalo de confiança.p
fonte
confint
Não é (totalmente) correto / preciso usar os valores p com base nos valores z / t na função glm.summary como um teste de hipótese.
É uma linguagem confusa. Os valores relatados são nomeados z-values. Mas, neste caso, eles usam o erro padrão estimado no lugar do verdadeiro desvio. Portanto, na realidade, eles estão mais próximos dos valores t . Compare as três saídas a seguir:
1) summary.glm
2) teste t
3) teste z
Eles não são valores p exatos. Um cálculo exato do valor-p usando a distribuição binomial funcionaria melhor (com o poder da computação atualmente, isso não é um problema). A distribuição t, assumindo uma distribuição gaussiana do erro, não é exata (superestima p, exceder o nível alfa ocorre com menos frequência na "realidade"). Veja a seguinte comparação:
A curva preta representa igualdade. A curva vermelha está abaixo dela. Isso significa que, para um determinado valor p calculado pela função de resumo glm, encontramos essa situação (ou diferença maior) com menos frequência na realidade do que o valor p indica.
fonte