Suponha que eu faça uma regressão logística univariada em várias variáveis independentes, como esta:
mod.a <- glm(x ~ a, data=z, family=binominal("logistic"))
mod.b <- glm(x ~ b, data=z, family=binominal("logistic"))
Fiz uma comparação de modelo (teste de razão de verossimilhança) para ver se o modelo é melhor que o modelo nulo por este comando
1-pchisq(mod.a$null.deviance-mod.a$deviance, mod.a$df.null-mod.a$df.residual)
Então eu construí outro modelo com todas as variáveis nele
mod.c <- glm(x ~ a+b, data=z, family=binomial("logistic"))
Para ver se a variável é estatisticamente significativa no modelo multivariado, usei o lrtest
comando deepicalc
lrtest(mod.c,mod.a) ### see if variable b is statistically significant after adjustment of a
lrtest(mod.c,mod.b) ### see if variable a is statistically significant after adjustment of b
Gostaria de saber se o pchisq
método e o lrtest
método são equivalentes para fazer o teste loglikelihood? Como eu não sei como usar lrtest
para o modelo de logística univada.
r
logistic
diagnostic
lokheart
fonte
fonte
epicalc
foi removido ( fonte ). Uma alternativa poderia serlmtest
.Respostas:
Basicamente, sim, desde que você use a diferença correta na probabilidade de log:
e não o desvio para o modelo nulo, que é o mesmo em ambos os casos. O número de df é o número de parâmetros que diferem entre os dois modelos aninhados, aqui df = 1. BTW, você pode procurar o código fonte
lrtest()
digitando apenasno prompt R.
fonte
anova(model1, model0)
também funcionará.glm(output ~ 1, data=z, family=binomial("logistic"))
seria um modelo nulo mais natural, que diz queoutput
é explicado por um termo constante (a interceptação) / A interceptação está implícita em todos os seus modelos, então você está testando o efeito dea
depois de contabilizar a interceptação.Uma alternativa é o
lmtest
pacote, que possui umalrtest()
função que aceita um único modelo. Aqui está o exemplo de?lrtest
nolmtest
pacote, que é para um LM mas existem métodos que trabalham com MLG:fonte
fm1
tem uma menor probabilidade de log e, portanto, um ajuste pior do quefm2
. O LRT está nos dizendo que o grau em que criamosfm1
um modelo mais pobre do quefm2
é inesperadamente grande se os termos diferentes entre os modelos forem úteis (explicou a resposta).lrtest(fm2)
Não é comparada comfm1
a de tudo, o modelofm2
é comparado com, nesse caso, se, como indicado na saída, este:con ~ 1
. Esse modelo, o modelo nulo, diz que o melhor preditor decon
é a média da amostra decon
(o termo intercepto / constante).