Regresja: przekształcanie zmiennych


41

Czy podczas transformowania zmiennych musisz używać tej samej transformacji? Na przykład mogę wybrać i wybrać zmienne transformowane, jak w:

Niech będzie wiekiem, długością zatrudnienia, długością pobytu i dochodem.x1,x2,x3

Y = B1*sqrt(x1) + B2*-1/(x2) + B3*log(x3)

A może musisz być spójny ze swoimi transformacjami i używać tego samego? Jak w:

Y = B1*log(x1) + B2*log(x2) + B3*log(x3) 

Rozumiem, że celem transformacji jest rozwiązanie problemu normalności. Patrząc na histogramy każdej zmiennej, widzimy, że prezentują one bardzo różne rozkłady, co doprowadziłoby mnie do wniosku, że wymagane transformacje różnią się w zależności od zmiennej.

## R Code
df <- read.spss(file="http://www.bertelsen.ca/R/logistic-regression.sav", 
                use.value.labels=T, to.data.frame=T)
hist(df[1:7]) 

alternatywny tekst

Wreszcie, na ile poprawne jest przekształcanie zmiennych za pomocą gdzie ma wartości? Czy to przekształcić muszą być spójne we wszystkich zmiennych, czy jest to stosowane AdHoc nawet dla tych zmiennych, które nie zawierają „s?log(xn+1)xn00

## R Code 
plot(df[1:7])

alternatywny tekst

Odpowiedzi:


59

Jeden przekształca zależne od zmiennych, aby osiągnąć w przybliżeniu symetrii i homoskedastyczność z pozostałości . Transformacje zmiennych niezależnych mają inny cel: w końcu w tej regresji wszystkie wartości niezależne są przyjmowane jako stałe, a nie losowe, więc „normalność” nie ma zastosowania. Głównym celem tych przekształceń jest osiągnięcie liniowych relacji ze zmienną zależną (lub, tak naprawdę, z jej logitem). (Ten cel przeważa nad pomocniczymi, takimi jak zmniejszenie nadmiernej dźwigni finansowejlub uzyskanie prostej interpretacji współczynników). Zależności te są właściwością danych i zjawisk, które je wytworzyły, dlatego potrzebujesz elastyczności w wyborze odpowiedniego ponownego wyrażenia każdej ze zmiennych oddzielnie od innych. W szczególności korzystanie z dziennika, katalogu głównego i odwrotności nie jest problemem, jest to dość powszechne. Zasada jest taka, że ​​(zwykle) nie ma nic specjalnego w tym, jak dane są pierwotnie wyrażane, dlatego powinieneś pozwolić, aby dane sugerowały ponowne wyrażenia, które prowadzą do skutecznych, dokładnych, przydatnych i (jeśli to możliwe) teoretycznie uzasadnionych modeli.

Histogramy - które odzwierciedlają rozkłady jednowymiarowe - często wskazują na początkową transformację, ale nie są dyspozytywne. Dołącz je do macierzy scatterplot, abyś mógł zbadać relacje między wszystkimi zmiennymi.


Transformacje takie jak gdzie jest dodatnią stałą „wartością początkową”, mogą działać - i mogą być wskazane, nawet gdy żadna wartość jest równa zero - ale czasami niszczą relacje liniowe. Kiedy to nastąpi, dobrym rozwiązaniem jest utworzenie dwóch zmiennych. Jedna z nich jest równa gdy jest niezerowe, a poza tym jest czymkolwiek; wygodnie jest pozostawić domyślną wartość zero. Drugi, nazwijmy go , jest wskaźnikiem tego, czy wynosi zero: równa się 1, gdy 0, w przeciwnym razie wynosi 0. Warunki te stanowią sumęlog(x+c)clog ( x ) x z x x x = 0xlog(x)xzxxx=0

βlog(x)+β0zx

do oszacowania. Gdy , więc drugi termin wypada, pozostawiając tylko . Gdy , „ ” zostało ustawione na zero, podczas gdy , pozostawiając tylko wartość . Zatem ocenia efekt, gdy a w przeciwnym razie jest współczynnikiem .x>0zx=0βlog(x)x=0log(x)zx=1β0β0x=0βlog(x)


1
Bardzo pomocny opis, dziękuję również za wskazówki i szczegóły mojego pytania.
Brandon Bertelsen

pareonline.net/getvn.asp?v=15&n=12 Osborne (2002) zaleca zakotwiczenie minimalnej wartości w rozkładzie dokładnie na 1,0. pareonline.net/getvn.asp?v=8&n=6
Chris

1
@Chris Wszystkie transformacje Box-Coxa również zmieniają się z ujemnych na dodatnie przy . Nie ma to jednak znaczenia dla transformacji nieliniowej, ponieważ może nastąpić dowolna transformacja liniowa bez zmiany jej wpływu na wariancję lub liniowość relacji z inną zmienną. Dlatego jeśli twój klient ma alergię na liczby ujemne, po prostu dodaj odpowiednią stałą po transformacji. Jednak dodanie stałej przed transformacją może mieć głęboki efekt - dlatego żadna rekomendacja, aby zawsze używać może być słuszna. 11
whuber

1
W jednym z moich zestawów danych, nad którym pracuję, zauważyłem, że jeśli zmienię zależną zmienną odpowiedzi na anchor w 1 i użyję transformacji box cox, aby wyeliminować pochylenie, wynikowa transformacja została osłabiona, co prowadzi do wiarygodności twojej krytyki. ;)
Chris

1
@whuber Moje poprzednie pytanie było bardzo głupie (prawdopodobnie spowoduje usunięcie komentarza). Oczywiście odnosi się do wskaźnika manekina , a NIE do stałej w modelu. Jeszcze raz dziękuję za obszerne i jasne wyjaśnienia tej konfiguracji; bardzo pomocne w mojej pracy. Ogólnie wolę tę parametryzację niż inne równoważne podejście . β0zx
landroni
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.