Se em uma regressão linear eu tenho variável categórica ... como eu sei a significância estatística da variável categórica?
Digamos que o fator tenha 10 níveis ... haverá 10 valores t resultantes diferentes, sob a égide de uma variável fator ...
Parece-me que a significância estatística é testada para cada nível da variável fator? Não?
@ Macro: Seguindo sua sugestão, criei o seguinte exemplo:
Parece que x3 é útil e deve ser incluído no modelo, na comparação abaixo.
Mas na verdade isso está errado ...
n=100
x1=1:n
x2=(1:n)^2
x3=rnorm(n)
ee=rnorm(n)
y=3*x1-2*x2+x3+3+ee
lm1=lm(y~x1+x2+x3)
summary(lm1)
lm2=lm(y~x1+x2)
summary(lm2)
anova(lm1, lm2)
> anova(lm1, lm2)
Analysis of Variance Table
Model 1: y ~ x1 + x2 + x3
Model 2: y ~ x1 + x2
Res.Df RSS Df Sum of Sq F Pr(>F)
1 96 82.782
2 97 146.773 -1 -63.99 74.207 1.401e-13 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
x3
para gerar osy
s; portanto, ele deve ser incluído no modelo e o valor- concorda com essa conclusão.Respostas:
Você está certo de que esses valores informam apenas se a média de cada nível é significativamente diferente da média do nível de referência. Portanto, eles apenas informam sobre as diferenças entre pares entre os níveis. Testar se o preditor categórico, como um todo, é significativo é equivalente a testar se existe alguma heterogeneidade nas médias dos níveis do preditor. Quando não há outros preditores no modelo, este é um problema clássico de ANOVA .p
Quando existem outros preditores no modelo. você tem duas opções para testar a importância de um preditor categórico:
(1) O teste da razão de probabilidade: Suponha que tem um resultado , preditores quantitativos X i 1 , . . . , X i p e o preditor categórico C i com níveis k . O modelo sem o preditor categórico éYi Xi1,...,Xip Ci k
EmL0
R
você pode ajustar este modelo com olm()
comando e extrair a probabilidade de log com ologLik
comando. Chame essa probabilidade de log . Em seguida, você pode ajustar o modelo ao preditor categórico:onde é uma variável dummy que é 1 se D i = j e 0 caso contrário. O nível k 'é o nível de referência, e é por isso que existem apenas termos k - 1 na soma. fará automaticamente essa codificação fictícia para você se você passar a variável categórica para . Você pode ajustar esse modelo da mesma forma e extrair a probabilidade do log como acima. Chame essa probabilidade de log L 1 . Em seguida, sob a hipótese nula de que D i tem nenhum efeito,Bj 1 Di=j 0 k k−1 L1 Di
R
lm()
tem uma distribuição com k - 1 graus de liberdade. Assim, você pode calcular o p -valor usando no para teste de significância.χ2 k−1 p
1-pchisq(2*(L1-L0),df=k-1)
R
(2) Teste- :F Sem entrar em detalhes (que são semelhantes ao LRT, exceto que somas de quadrados são usadas em vez de probabilidade de log), explicarei como fazer isso
R
. Se você ajustar o modelo "completo" (ou seja, o modelo com todos os preditores, incluindo o preditivo categórico) aoR
usar olm()
comando (chame issog1
) e o modelo sem o preditor categórico (chame issog0
),anova(g1,g0)
testará esta hipótese para você também.fonte