Kiedy transformować zmienne predykcyjne podczas regresji wielokrotnej?


10

Obecnie biorę swoją pierwszą stosowaną klasę regresji liniowej na poziomie magisterskim i walczę z transformacjami zmiennych predykcyjnych w wielokrotnej regresji liniowej. Tekst, którego używam, Kutner i in. „Stosowane liniowe modele statystyczne” wydaje się nie obejmować mojego pytania. (oprócz sugerowania, że ​​istnieje metoda Box-Coxa do transformacji wielu predyktorów).

W obliczu zmiennej odpowiedzi i kilku zmiennych predykcyjnych, jakie warunki dąży się do spełnienia każdej zmiennej predykcyjnej? Rozumiem, że ostatecznie szukamy stałości wariancji błędów i błędów normalnie rozłożonych (przynajmniej w technikach, których byłem do tej pory nauczony). Wróciłem wiele ćwiczeń, gdzie rozwiązaniem było, na przykład y ~ x1 + (1/x2) + log(x3), gdzie jeden lub więcej predyktorów zostało przekształconych.

Zrozumiałem uzasadnienie prostej regresji liniowej, ponieważ łatwo było spojrzeć na y ~ x1 i powiązaną diagnostykę (wykresy qq reszt, reszty vs y, reszty vs x itp.) I przetestować, czy y ~ log ( x1) lepiej pasuje do naszych założeń.

Czy jest dobre miejsce, aby zacząć rozumieć, kiedy przekształcić predyktor w obecności wielu predyktorów?

Z góry dziękuję. Matt

Odpowiedzi:


3

Przyjmuję twoje pytanie: w jaki sposób wykrywasz, kiedy istnieją warunki, które sprawiają, że transformacje są odpowiednie, a nie jakie warunki logiczne . Zawsze miło jest rezerwować analizy danych z eksploracją, zwłaszcza graficzną eksploracją danych. (Można przeprowadzić różne testy, ale skupię się tutaj na graficznej EDA.)

Wykresy gęstości jądra są lepsze niż histogramy dla wstępnego przeglądu rozkładu jednowymiarowego każdej zmiennej. W przypadku wielu zmiennych może być przydatna macierz wykresu rozrzutu. Lowess jest zawsze wskazany na początku. To da ci szybkie i brudne spojrzenie na to, czy relacje są w przybliżeniu liniowe. Pakiet samochodowy Johna Foxa użytecznie łączy te:

library(car)
scatterplot.matrix(data)

Pamiętaj, aby mieć zmienne jako kolumny. Jeśli masz wiele zmiennych, poszczególne wykresy mogą być małe. Zmaksymalizuj okno wykresu, a wykresy rozrzutu powinny być wystarczająco duże, aby wybrać wykresy, które chcesz zbadać indywidualnie, a następnie utworzyć pojedyncze wykresy. Na przykład,

windows()
plot(density(X[,3]))
rug(x[,3])
windows()
plot(x[,3], y)
lines(lowess(y~X[,3]))

Po dopasowaniu modelu regresji wielokrotnej nadal należy wykreślić i sprawdzić swoje dane, podobnie jak w przypadku prostej regresji liniowej. Wykresy QQ dla reszt są tak samo konieczne, a ty możesz wykonać macierz rozrzutu twoich reszt w stosunku do predyktorów, stosując podobną procedurę jak poprzednio.

windows()
qq.plot(model$residuals)
windows()
scatterplot.matrix(cbind(model$residuals,X))

Jeśli coś wygląda podejrzanie, nakreśl to indywidualnie i dodaj abline(h=0)jako wizualny przewodnik. Jeśli masz interakcję, możesz utworzyć zmienną X [, 1] * X [, 2] i zbadać pod tym względem resztki. Podobnie, możesz stworzyć wykres rozproszenia reszt w porównaniu z X [, 3] ^ 2 itd. Inne typy wykresów niż reszt w porównaniu z x, które lubisz, można wykonać podobnie. Pamiętaj, że wszystkie one ignorują inne wymiary x, które nie są drukowane. Jeśli dane są pogrupowane (tj. Z eksperymentu), można tworzyć wykresy częściowe zamiast / oprócz wykresów marginalnych.

Mam nadzieję, że to pomaga.


2
Zachęcałbym do bardziej bezpośredniego podejścia: użyj splajnów regresji do modelowania efektów predyktorów, aby (1) nie zakładać liniowości i (2) oszacować wszystkie transformacje jednocześnie. Jest to podobne do regresji kwadratowej - dodając kwadratowy termin dla wszystkich predyktorów. Na przykład z ograniczonymi splajnami sześciennymi dodaje się do modelu jedną lub więcej nieliniowych funkcji bazowych dla każdego predyktora, o którym nie wiadomo, że działa liniowo.
Frank Harrell,

@Frank Często lubię ograniczone splajny sześcienne. Jedynym minusem jest interpretacja, która jest trochę trudna i często zniechęca moich klientów. Dodanie terminu wielomianowego (po wyśrodkowaniu) wydaje się być bardziej zrozumiałe
Peter Flom

Dziękuję wszystkim za wkład, bardzo to doceniam. Myślę, że obecnie dajesz mi zbyt wiele uznania. Moje pytanie koncentruje się wokół tego, czego szukać w poszczególnych predyktorach, aby wiedzieć, kiedy / czy można zastosować transformację. Na przykład, jeśli mam model ściśle addytywny z 3 predyktorami, w jaki sposób przystąpiłbym do określania odpowiedniej transformacji? Czy w przypadku wielu predyktorów ogólnie dążymy do tych samych zasad, których szukamy w prostej regresji liniowej? (tj. korzystne reszty w porównaniu do przewidywanego wykresu i qqpl wykresu reszt).
Mat.

1
Splajny regresji Piotra nie są dużo bardziej złożone niż kwadratyki. Kto wie, jak interpretować współczynnik wieku, gdy wiek ^ 2 jest w modelu? I nie widzę, gdzie pomaga centrowanie. Interpretuję splajny interpretuję na wykresach, które lubią moi współpracownicy. Matowa transformacja jest prawie zawsze potrzebna. To tylko kwestia adekwatności wielkości próby do oszacowania wystarczającej liczby parametrów, aby dopasować efekty nieliniowe. Splajny regresji bezpośrednio szacują transformacje i prowadzą do odpowiednich przedziałów ufności, które są karane za „wygląd danych”. Resztki obejmują podejście pośrednie.
Frank Harrell,

Przepraszamy, wciąż mam dość publikowania tutaj. Proszę przebacz. Aby wyjaśnić mój ostatni komentarz: Niedawny przykład, przez który przeszedłem w tekście, miał wynikowy model y ~ x1 + log (x2), a jedyną uwagą na temat transformacji jest „było oczywiste, że x2 dobrze nadaje się do transformacji logarytmicznej . ” Próbuję poprawić swoje wyczucie, kiedy transformacje mają zastosowanie. Czy wystarczy spojrzeć na wykresy y ~ x_i i postępować tak, jak w przypadku predyktora pojedynczego? Co jeszcze powinienem wziąć pod uwagę?
Matt
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.