Mam niezależną zmienną o nazwie „jakość”; ta zmienna ma 3 tryby odpowiedzi (zła jakość; średnia jakość; wysoka jakość). Chcę wprowadzić tę zmienną niezależną do mojej wielokrotnej regresji liniowej. Kiedy mam binarną zmienną niezależną (zmienną fikcyjną, mogę kodować 0
/ 1
), łatwo jest wprowadzić ją do modelu wielokrotnej regresji liniowej.
Ale przy 3 sposobach odpowiedzi próbowałem zakodować tę zmienną w następujący sposób:
Bad quality Medium quality High quality
0 1 0
1 0 0
0 0 1
0 1 0
Ale jest problem, gdy próbuję wykonać moją wielokrotną regresję liniową: modalność Medium quality
daje mi NA
:
Coefficients: (1 not defined because of singularities)
Jak mogę zakodować tę zmienną „jakość” za pomocą 3 modalności? Czy muszę utworzyć zmienną jako czynnik ( factor
in R
), ale czy mogę wprowadzić ten czynnik do wielokrotnej regresji liniowej?
Odpowiedzi:
Problem, który masz (tj. „Osobliwości”), może być traktowany jako przykład wielokoliniowości . Wielokoliniowość jest często definiowana jako:
Jest to w rzeczywistości dość ścisła definicja; jest to idealna wielokoliniowość i możesz łatwo mieć problem z wielokoliniowością, przy czym żadna ze zmiennych nie jest idealną liniową kombinacją innych. Ponadto rzadko występuje doskonała wielokoliniowość. Natknąłeś się jednak na przypadek, w którym może to nastąpić. Zobaczmy, jak możemy doskonale przewidziećY X1 X2
medium quality
z naszej wiedzy o pozostałych dwóch kategoriach (będziemy to robić z modelu regresji, gdziemedium quality
jest , a i to X 1 i X 2bad quality
high quality
Zauważ, że nie określono terminu błędu ε , ponieważ możemy to doskonale przewidzieć. W tym celu ustawiamy β 0 = 1 , β 1 = - 1 i β 2 = - 1 . Teraz, gdy masz, to X 1 = 1 , co anuluje β 0 ( 1
bad quality
medium quality
R
factor
R
zrobi to wszystko za Ciebie - będzie to zrobione poprawnie i jest to o wiele wygodniejsze - niemniej warto zrozumieć, że to właśnie dzieje się „za kulisami”.źródło
lm
formule (+ 0
), czy to zadziała?@ gung jasno wyjaśnił teorię. Oto praktyczny przykład do zilustrowania:
bad
Teraz, jeśli sami kodujemy zmienne fikcyjne i próbujemy dopasować model, używając wszystkich z nich:
Otrzymujemy oczekiwany błąd:
singular fit encountered
źródło
factor
na ogół zajmie się tobą kodowaniem zmiennym, ale dobrze jest wiedzieć, co się dzieje „pod maską”.