Як перевірити статистичну значимість категоріальної змінної в лінійній регресії?


18

Якщо в лінійній регресії у мене є категоріальна змінна ... як я можу знати статичну значимість категоріальної змінної?

Скажімо , фактор X1 має 10 рівнів ... буде 10 різних результуючі значення т-під парасольки змінної один фактор ...X1

Мені здається, що статистичне значення перевіряється для кожного рівня факторної змінної? Ні?

@Macro: Після вашої пропозиції я створив такий приклад:

Здається, що x3 є корисним і повинен бути включений у модель, із наведеного нижче порівняння моделі.

Але насправді це неправильно ...

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, чому це неправильно? Здається, ви використовували x3для створення ys, тому його слід включати в модель, і -значення погоджується з цим висновком. p
Макрос

@Seth - ти маєш рацію. Я просто наводив іграшковий приклад використання anova взагалі для порівняння моделей. Тож це не пов’язано з моїм оригінальним запитанням.
Луна

@Macro - ти маєш рацію. Тепер я бачу сенс. Дякую!
Luna

Функція 'Anova' з пакета R 'car' ( pdf ) дозволяє перевірити загальну значимість категоричної змінної. Він працює з великою кількістю різних пакетів і типів регресії.
SK4ndal

Відповіді:


28

Ви вірні, що ці -значення говорять лише про те , що середнє значення кожного рівня значно відрізняється від середнього рівня. Тому вони розповідають лише про парні відмінності між рівнями. Перевірити, чи є категоричний предиктор загалом значущим, еквівалентно тестуванню, чи є гетерогенність у засобах рівнів предиктора. Коли в моделі немає інших прогнозів, це класична проблема ANOVA .p

Коли в моделі є інші прогнози. у вас є два варіанти перевірки значущості категоричного прогноктора:

(1) Тест відносини правдоподібності: Припустимо, що результат , кількісні предиктори X I 1 , . . . , X i p і категоричний предиктор C i з рівнями k . Модель без категоричного предиктора єYiХi1,...,ХipСiк

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

У Rвас може відповідати цій моделі з lm()командою і витягти логарифмічна правдоподібність з logLikкомандою. Назвіть цю ймовірність журналу . Далі ви можете відповідати моделі категоричним прогноктором:L0

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

де - фіктивна змінна, яка дорівнює 1, якщо D i = j і 0 в іншому випадку. До «го рівня є опорний рівень, тому є тільки до - 1 доданків в сумі. автоматично зробить це манекенне кодування для вас, якщо ви передасте категоричну змінну в . Ви можете встановити цю модель аналогічно та витягнути ймовірність колоди, як описано вище. Назвіть цю ймовірність журналу L 1 . Тоді, під нульовою гіпотезою, що D i не має ефекту,Bj1Di=j0kk1Rlm()L1Di

λ=2(L1L0)

має розподіл з k - 1 ступенем свободи. Отже, ви можете обчислити значення p- значення, використовуючи вχ2k1p1-pchisq(2*(L1-L0),df=k-1)R тесту на значимість.

(2) test:F Не вдаючись до деталей (які схожі на LRT, за винятком сум, у яких використовуються квадрати, а не ймовірності журналу), я поясню, як це зробити R. Якщо ви використовуєте "повну" модель (тобто модель з усіма предикторами, включаючи категоричний предиктор), Rвикористовуючи lm()команду (викликайте це g1) та модель без категоричного предиктора (викликайте це g0), тоanova(g1,g0) перевірятиме цю гіпотезу щодо Ви також.

F


Велике спасибі Макросу. Я виявив, що мої дані вкрай ненормальні. Діаграма QQ така: крива все нижче прямої 45 градусної лінії. Крива дотична до цієї прямої. І крива виглядає як крива f (x) = - x ^ 2 (у формі). З якою проблемою я стикаюся? І як мені це виправити? Дякую!
Luna

1
@Luna, ваші дані вкрай ненормальні або залишки вкрай ненормальні? Крім того, я не думаю, що цілий набір балів може лежати під лінією 45 градусів.
Макрос

о, насправді ти маєш рацію ... Я просто ще раз подивився на сюжет QQ. Це не весь набір балів, який знаходиться під лінією 45 градусів. Крива з формою f (x) = - x ^ 2 є "дотичною" до лінії 45 градусів. Під "дотичною" я мав би означати, що ці точки навколо "дотичної" точки насправді вище лінії 45 градусів, хоча і трохи. Тому, візуально кажучи, більшість даних (~ 98%) знаходяться нижче лінії 45 градусів ... що мені робити спочатку, щоб виправити цю проблему, перш ніж порівняти модель? Дякую!
Луна

2
Якщо розмір вибірки досить великий, то p-значення все одно повинні бути розумними (за центральною теоремою границі) до тих пір, поки ваш розподіл помилок не буде довгостроковим. Якщо ви просто хочете перевірити категоричну змінну ізольовано, ви можете використовувати непараметричну ANOVA: en.wikipedia.org/wiki/…, але, як я вже сказав, це справді стає зовсім іншим питанням, ніж поставлене і може бути більш доцільно поставити як нове запитання або відповісти, шукаючи на сайті відповідне запитання.
Макрос

1
@ Druss2k, так, це правильно.
Макрос
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.