Eu construí uma regressão logística em que a variável de resultado está sendo curada após o tratamento ( Cure
vs. No Cure
). Todos os pacientes deste estudo receberam tratamento. Estou interessado em ver se o diabetes está associado a esse resultado.
Em R, minha saída de regressão logística é a seguinte:
Call:
glm(formula = Cure ~ Diabetes, family = binomial(link = "logit"), data = All_patients)
...
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 1.2735 0.1306 9.749 <2e-16 ***
Diabetes -0.5597 0.2813 -1.990 0.0466 *
...
Null deviance: 456.55 on 415 degrees of freedom
Residual deviance: 452.75 on 414 degrees of freedom
(2 observations deleted due to missingness)
AIC: 456.75
No entanto, o intervalo de confiança para o odds ratio inclui 1 :
OR 2.5 % 97.5 %
(Intercept) 3.5733333 2.7822031 4.646366
Diabetes 0.5713619 0.3316513 1.003167
Quando faço um teste do qui-quadrado nesses dados, obtenho o seguinte:
data: check
X-squared = 3.4397, df = 1, p-value = 0.06365
Se você deseja calculá-lo por conta própria, a distribuição do diabetes nos grupos curados e não curados é a seguinte:
Diabetic cure rate: 49 / 73 (67%)
Non-diabetic cure rate: 268 / 343 (78%)
Minha pergunta é: Por que os valores de p e o intervalo de confiança, incluindo 1, não concordam?
r
hypothesis-testing
logistic
generalized-linear-model
odds-ratio
SniperBro2000
fonte
fonte
confint()
. Ou seja, a probabilidade foi perfilada. Dessa forma, você obtém ICs análogos ao LRT. Seu cálculo está correto, mas, em vez disso, constitui ICs Wald. Há mais informações na minha resposta abaixo.Respostas:
Com modelos lineares generalizados, existem três tipos diferentes de testes estatísticos que podem ser executados. São eles: testes de Wald, testes de razão de verossimilhança e testes de pontuação. O excelente site de ajuda sobre estatísticas da UCLA tem uma discussão sobre eles aqui . A figura a seguir (copiada do site) ajuda a ilustrá-los:
summary.glm()
confint()
profile()
Abaixo, perfil os coeficientes na escala do preditor linear e execute o teste da razão de verossimilhança explicitamente (via
anova.glm()
). Eu obtenho os mesmos resultados que você:Como @JWilliman apontou em um comentário (agora excluído), em
R
, você também pode obter um valor p baseado em pontuação usandoanova.glm(model, test="Rao")
. No exemplo abaixo, nota que o p-valor não é exatamente o mesmo que no teste do qui-quadrado acima, porque, por padrão,R
'schisq.test()
aplica uma correção de continuidade. Se alterarmos essa configuração, os valores p corresponderão:fonte