Como testar a igualdade simultânea de coeficientes escolhidos no modelo logit ou probit? Qual é a abordagem padrão e qual é a abordagem do estado da arte?
Como testar a igualdade simultânea de coeficientes escolhidos no modelo logit ou probit? Qual é a abordagem padrão e qual é a abordagem do estado da arte?
Uma abordagem padrão é o teste de Wald . É isso que o comando Stata test
faz após uma regressão logit ou probit. Vamos ver como isso funciona no R, observando um exemplo:
mydata <- read.csv("http://www.ats.ucla.edu/stat/data/binary.csv") # Load dataset from the web
mydata$rank <- factor(mydata$rank)
mylogit <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial") # calculate the logistic regression
summary(mylogit)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.989979 1.139951 -3.500 0.000465 ***
gre 0.002264 0.001094 2.070 0.038465 *
gpa 0.804038 0.331819 2.423 0.015388 *
rank2 -0.675443 0.316490 -2.134 0.032829 *
rank3 -1.340204 0.345306 -3.881 0.000104 ***
rank4 -1.551464 0.417832 -3.713 0.000205 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Digamos que você queira testar a hipótese vs. β g r e ≠ β g p a . Isso é equivalente ao teste β. A estatística do teste de Wald é:
ou
O nosso θ aqui é β g r e - β g p um e θ 0 = 0 . Então, tudo o que precisamos é do erro padrão de β g r e - β g p a . Podemos calcular o erro padrão com o método Delta :
Então, também precisamos da covariância de e . A matriz variância-covariância pode ser extraída com o comando após executar a regressão logística:vcov
var.mat <- vcov(mylogit)[c("gre", "gpa"),c("gre", "gpa")]
colnames(var.mat) <- rownames(var.mat) <- c("gre", "gpa")
gre gpa
gre 1.196831e-06 -0.0001241775
gpa -1.241775e-04 0.1101040465
Finalmente, podemos calcular o erro padrão:
se <- sqrt(1.196831e-06 + 0.1101040465 -2*-0.0001241775)
se
[1] 0.3321951
Portanto, seu valor Wald é
wald.z <- (gre-gpa)/se
wald.z
[1] -2.413564
Para obter um valor- , basta usar a distribuição normal padrão:
2*pnorm(-2.413564)
[1] 0.01579735
Nesse caso, temos evidências de que os coeficientes são diferentes um do outro. Essa abordagem pode ser estendida para mais de dois coeficientes.
Usando multcomp
Esses cálculos bastante tediosos podem ser feitos convenientemente R
usando o multcomp
pacote. Aqui está o mesmo exemplo acima, mas feito com multcomp
:
library(multcomp)
glht.mod <- glht(mylogit, linfct = c("gre - gpa = 0"))
summary(glht.mod)
Linear Hypotheses:
Estimate Std. Error z value Pr(>|z|)
gre - gpa == 0 -0.8018 0.3322 -2.414 0.0158 *
confint(glht.mod)
Um intervalo de confiança para a diferença dos coeficientes também pode ser calculado:
Quantile = 1.96
95% family-wise confidence level
Linear Hypotheses:
Estimate lwr upr
gre - gpa == 0 -0.8018 -1.4529 -0.1507
Para exemplos adicionais de multcomp
, veja aqui ou aqui .
Os coeficientes de uma regressão logística são encontrados por máxima verossimilhança. Mas como a função de probabilidade envolve muitos produtos, a probabilidade de log é maximizada, o que transforma os produtos em somas. O modelo que se encaixa melhor tem uma maior probabilidade de log. O modelo que envolve mais variáveis tem pelo menos a mesma probabilidade que o modelo nulo. Denote a probabilidade logarítmica do modelo alternativo (modelo que contém mais variáveis) com e a probabilidade logarítmica do modelo nulo com L L 0 , a estatística do teste da razão de verossimilhança é:
A estatística do teste da razão de verossimilhança segue uma
mylogit2 <- glm(admit ~ I(gre + gpa) + rank, data = mydata, family = "binomial")
No nosso caso, podemos usar logLik
para extrair a probabilidade logarítmica dos dois modelos após uma regressão logística:
L1 <- logLik(mylogit)
L1
'log Lik.' -229.2587 (df=6)
L2 <- logLik(mylogit2)
L2
'log Lik.' -232.2416 (df=5)
O modelo que contém a restrição gre
e gpa
tem uma probabilidade logarítmica ligeiramente maior (-232,24) em comparação com o modelo completo (-229,26). Nossa estatística de teste da razão de verossimilhança é:
D <- 2*(L1 - L2)
D
[1] 16.44923
1-pchisq(D, df=1)
[1] 0.01458625
R possui o teste da razão de verossimilhança embutido; podemos usar a anova
função para calcular o teste da razão likelhood:
anova(mylogit2, mylogit, test="LRT")
Analysis of Deviance Table
Model 1: admit ~ I(gre + gpa) + rank
Model 2: admit ~ gre + gpa + rank
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 395 464.48
2 394 458.52 1 5.9658 0.01459 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Novamente, temos fortes evidências de que os coeficientes gre
e gpa
são significativamente diferentes um do outro.
os dados (o caso univariado é mostrado aqui para fins ilustrativos):
O teste de pontuação também pode ser calculado usando anova
(as estatísticas do teste de pontuação são chamadas "Rao"):
anova(mylogit2, mylogit, test="Rao")
Analysis of Deviance Table
Model 1: admit ~ I(gre + gpa) + rank
Model 2: admit ~ gre + gpa + rank
Resid. Df Resid. Dev Df Deviance Rao Pr(>Chi)
1 395 464.48
2 394 458.52 1 5.9658 5.9144 0.01502 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
A conclusão é a mesma de antes.
Nota
gre
egpa
? Não é esse testegre
egpa
e, entretanto, impormultcomp
pacotes tornam isso particularmente fácil. Por exemplo, tente o seguinte:glht.mod <- glht(mylogit, linfct = c("rank3 - rank4= 0"))
. Mas uma maneira muito mais fácil seria fazerrank3
o nível de referência (usandomydata$rank <- relevel(mydata$rank, ref="3")
) e depois usar a saída de regressão normal. Cada nível do fator é comparado ao nível de referência. O valor de prank4
seria a comparação desejada.glht
são os mesmos para mim (aproximadamentelinfct = c("rank3 - rank4= 0")
testa apenas uma hipótese linear, enquantomcp(rank="Tukey")
testa todas as 6 comparações pareadas derank
. Portanto, os valores de p devem ser ajustados para múltiplas comparações. Isso significa que os valores de p usando o teste de Tukey são geralmente mais altos que a comparação única.Você não especificou suas variáveis, se elas são binárias ou algo mais. Eu acho que você fala sobre variáveis binárias. Também existem versões multinomiais do modelo probit e logit.
Em geral, você pode usar a trindade completa de abordagens de teste, ou seja,
Teste de razão de verossimilhança
Teste LM
Wald-Test
Cada teste usa diferentes estatísticas de teste. A abordagem padrão seria fazer um dos três testes. Todos os três podem ser usados para fazer testes conjuntos.
O teste LR usa a diferença da probabilidade logarítmica de um modelo restrito e irrestrito. Portanto, o modelo restrito é o modelo, no qual os coeficientes especificados são definidos como zero. O irrestrito é o modelo "normal". O teste de Wald tem a vantagem de que apenas o modelo não restrito é estimado. Ele basicamente pergunta se a restrição está quase satisfeita se for avaliada no MLE sem restrição. No caso do teste Lagrange-Multiplicador, apenas o modelo restrito deve ser estimado. O estimador de ML restrito é usado para calcular a pontuação do modelo irrestrito. Essa pontuação geralmente não é zero, portanto essa discrepância é a base do teste de RL. O Teste LM também pode ser usado no seu contexto para testar a heterocedasticidade.
fonte
As abordagens padrão são o teste de Wald, o teste da razão de verossimilhança e o teste de pontuação. Assintoticamente, eles devem ser os mesmos. Na minha experiência, os testes de razão de verossimilhança tendem a ter um desempenho um pouco melhor em simulações em amostras finitas, mas os casos em que isso importa seriam em cenários muito extremos (amostra pequena) em que eu levaria todos esses testes apenas como uma aproximação aproximada. No entanto, dependendo do seu modelo (número de covariáveis, presença de efeitos de interação) e dos seus dados (multicolinearidade, distribuição marginal da sua variável dependente), o "maravilhoso reino da Assintotia" pode ser bem aproximado por um número surpreendentemente pequeno de observações.
Abaixo está um exemplo dessa simulação no Stata usando o teste de Wald, razão de verossimilhança e pontuação em uma amostra de apenas 150 observações. Mesmo em uma amostra tão pequena, os três testes produzem valores de p bastante semelhantes e a distribuição amostral dos valores de p quando a hipótese nula é verdadeira parece seguir uma distribuição uniforme como deveria (ou pelo menos os desvios da distribuição uniforme não são maiores do que se poderia esperar devido à aleatoriedade herdada em um experimento de Monte Carlo).
fonte