Como testar a significância estatística da variável categórica na regressão linear?

18

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 ...X1X1

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 
Luna
fonte
1
@ Luna, por que isso está errado? Parece que você usou x3para gerar os ys; portanto, ele deve ser incluído no modelo e o valor- concorda com essa conclusão. p
Macro
@ Set - você está certo. Eu estava apenas dando um exemplo de brinquedo usando anova geralmente na comparação de modelos. Portanto, não está vinculado à minha pergunta original.
Luna
@ Macro - você está certo. Agora entendo o ponto. Obrigado!
Luna
A função 'Anova' do pacote R 'car' ( pdf ) permite testar a significância geral de uma variável categórica. Ele funciona com muitos pacotes e tipos de regressão diferentes.
SK4ndal

Respostas:

28

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 éYiXi1,...,XipCik

Yi=β0+β1Xi1+...+βpXip+εi

Em Rvocê pode ajustar este modelo com o lm()comando e extrair a probabilidade de log com o logLikcomando. Chame essa probabilidade de log . Em seguida, você pode ajustar o modelo ao preditor categórico:L0

Yi=β0+β1Xi1+...+βpXip+j=1k1αjBj+εi

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,Bj1Di=j0kk1Rlm()L1Di

λ=2(L1L0)

tem uma distribuição com k - 1 graus de liberdade. Assim, você pode calcular o p -valor usando no para teste de significância.χ2k1p1-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) ao Rusar o lm()comando (chame isso g1) e o modelo sem o preditor categórico (chame isso g0), anova(g1,g0)testará esta hipótese para você também.

F

Macro
fonte
Muito obrigado Macro. Descobri que meus dados não são normais. O gráfico QQ é o seguinte: a curva está toda abaixo da linha reta de 45 graus. A curva é tangente a essa linha reta. E a curva se parece com a curva de f (x) = - x ^ 2 (em termos de forma). Que tipo de problema estou enfrentando? E como devo corrigir isso? Obrigado!
Luna
1
@ Luna, Seus dados são altamente não normais ou os resíduos são altamente não normais? Além disso, acho que não é possível que todo o conjunto de pontos fique abaixo da linha de 45 graus.
Macro
Ah, na verdade, você está certo ... Acabei de dar mais uma olhada no gráfico QQ. Não é todo o conjunto de pontos que está abaixo da linha de 45 graus. É a curva com a forma de f (x) = - x ^ 2 é "tangente" à linha de 45 graus. Por "tangente", eu deveria ter entendido que aqueles pontos ao redor do ponto "tangente" estão realmente acima da linha de 45 graus, embora muito ligeiramente. Portanto, visualmente, a maioria dos dados (~ 98%) está abaixo da linha de 45 graus ... o que devo fazer primeiro para corrigir esse problema antes de fazer a comparação do modelo? Obrigado!
Luna
2
p
1
@ Druss2k, sim, está correto.
Macro