Come testare il significato statistico per la variabile categoriale nella regressione lineare?


18

Se in una regressione lineare ho una variabile categoriale ... come faccio a sapere il significato stastico della variabile categoriale?

Supponiamo che il fattore abbia 10 livelli ... ci saranno 10 diversi valori t risultanti, sotto l'ombrello di una variabile fattore ...X 1X1X1

Mi sembra che la significatività statistica sia testata per ogni livello della variabile fattore? No?

@Macro: seguendo il tuo suggerimento, ho creato il seguente esempio:

Sembra che x3 sia utile e debba essere incluso nel modello, dal confronto del modello in basso.

Ma in realtà è sbagliato ...

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 

1
@Luna, perché è sbagliato? Sembra che tu abbia usato x3per generare la ys, quindi dovrebbe essere incluso nel modello e il -value concorda con quella conclusione. p
Macro,

@Seth - hai ragione. Stavo solo dando un esempio giocattolo di usare anova in generale nel confronto tra modelli. Quindi non è collegato alla mia domanda originale.
Luna

@Macro - hai ragione. Ora vedo il punto. Grazie!
Luna

La funzione 'Anova' dal pacchetto R 'auto' ( pdf ) ti consente di testare il significato complessivo di una variabile categoriale. Funziona con molti pacchetti e tipi di regressione diversi.
SK4ndal

Risposte:


28

Hai ragione a dire che quei valori indicano solo se la media di ciascun livello è significativamente diversa dalla media del livello di riferimento. Pertanto, ti dicono solo delle differenze a coppie tra i livelli. Verificare se il predittore categorico, nel suo insieme, è significativo equivale a verificare se vi è eterogeneità nei mezzi dei livelli del predittore. Quando non ci sono altri predittori nel modello, questo è un classico problema ANOVA .p

Quando ci sono altri predittori nel modello. hai due opzioni per verificare il significato di un predittore categorico:

(1) Il test di rapporto di probabilità: Supponiamo di avere un risultato , predittori quantitativi X Il i 1 , . . . , XYi e il predittore categoriale C i conklivelli. Il modello senza il predittore categorico èXi1,...,XipCik

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

In Rpuoi adattare questo modello al lm()comando ed estrarre la probabilità di log con il logLikcomando. Chiamare questa verosimiglianza . Successivamente, è possibile adattare il modello al predittore categorico:L0

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

dove è una variabile fittizia che è 1 se D i = j e 0 altrimenti. Il k 'esimo livello è il livello di riferimento, motivo per cui ci sono solo k - 1 termini nella somma. eseguirà automaticamente questa codifica fittizia per te se passi la variabile categorica a . È possibile adattare questo modello in modo simile ed estrarre la probabilità del registro come sopra. Chiama questa verosimiglianza L 1 . Poi, sotto l'ipotesi nulla che D io ha alcun effetto,Bj1Di=j0kk1Rlm()L1Di

λ=2(L1L0)

ha un χ2k1p1-pchisq(2*(L1-L0),df=k-1)R

FRRlm()g1g0anova(g1,g0)

F


Grazie mille Macro. Ho scoperto che i miei dati sono altamente non normali. Il diagramma QQ è il seguente: la curva è tutta al di sotto della linea retta di 45 gradi. La curva è tangente a quella linea retta. E la curva appare come la curva di f (x) = - x ^ 2 (forma). Che tipo di problema sto affrontando? E come devo risolvere questo? Grazie!
Luna

1
@Luna, I tuoi dati sono altamente non normali o i residui sono altamente non normali? Inoltre, non penso che sia possibile che l'intera serie di punti si trovi al di sotto della linea di 45 gradi.
Macro,

oh in realtà hai ragione ... Ho appena dato un'altra occhiata alla trama QQ. Non è l'intero insieme di punti che è sotto la linea di 45 gradi. È la curva con la forma di f (x) = - x ^ 2 è "tangente" alla linea di 45 gradi. Per "tangente" avrei dovuto intendere che quei punti attorno al punto "tangente" sono in realtà al di sopra della linea dei 45 gradi, anche se leggermente. Pertanto, visivamente parlando, la maggior parte dei dati (~ 98%) sono al di sotto della linea di 45 gradi ... cosa devo fare per risolvere questo problema prima di fare un confronto tra modelli? Grazie!
Luna

2
p

1
@ Druss2k, sì, è corretto.
Macro
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.