Niektóre z moich predyktorów są w bardzo różnych skalach - czy muszę je przekształcić przed dopasowaniem modelu regresji liniowej?

9

Chciałbym uruchomić regresję liniową na wielowymiarowym zestawie danych. Istnieją różnice między różnymi wymiarami pod względem ich wielkości. Na przykład wymiar 1 ogólnie ma zakres wartości [0, 1], a wymiar 2 ma zakres wartości [0, 1000].

Czy muszę wykonać transformację, aby zakresy danych dla różnych wymiarów były w tej samej skali? Jeśli tak, czy istnieją jakieś wskazówki dotyczące tego rodzaju transformacji?

pytanie bitowe
źródło

Odpowiedzi:

15

Zmienne przesunięcia / skalowania nie wpłyną na ich korelację z odpowiedzią

Aby zobaczyć, dlaczego tak jest, załóżmy, że korelacja między i jest . Zatem korelacja między i jestYXρY(Xa)/b

cov(Y,(Xa)/b)SD((Xa)/b)SD(Y)=cov(Y,X/b)SD(X/b)SD(Y)=1bcov(Y,X)1bSD(X)SD(Y)=ρ

co wynika z definicji korelacji i trzech faktów:

  • cov(Y,X+a)=cov(Y,X)+cov(Y,a)=0=cov(Y,X)

  • cov(Y,aX)=acov(Y,X)

  • SD(aX)=aSD(X)

Dlatego pod względem dopasowania modelu (np. lub dopasowane wartości) przesunięcie lub skalowanie zmiennych (np. Umieszczenie ich w tej samej skali) nie zmieni modeluR2 , ponieważ współczynniki regresji liniowej są powiązane z korelacjami między zmiennymi. Zmieni to jedynie skalę współczynników regresji , o których należy pamiętać, interpretując wynik, jeśli zdecydujesz się na transformację predyktorów.

Edycja: Powyższe założyło, że mówisz o zwykłej regresji z przechwyceniem. Jeszcze kilka punktów związanych z tym (dzięki @cardinal):

  • Przechwytywanie może się zmieniać podczas przekształcania zmiennych i, jak wskazuje @cardinal w komentarzach, współczynniki zmienią się, gdy przesuniesz zmienne, jeśli pominiesz przechwytywanie z modelu, chociaż zakładam, że tego nie robisz, chyba że masz dobry powód (patrz np. ta odpowiedź ).

  • Jeśli w jakiś sposób regulujesz swoje współczynniki (np. Lasso, regresja grzbietu), wówczas centrowanie / skalowanie wpłynie na dopasowanie. Na przykład, jeśli penalizujesz (kara regresji grzbietu), nie możesz odzyskać równoważnego dopasowania po standaryzacji, chyba że wszystkie zmienne były w tej samej skali, tj. nie ma stałej wielokrotności, która odzyska tę samą karę.βi2

Odnośnie kiedy / dlaczego badacz może chcieć przekształcić predyktory

Powszechną okolicznością (omawianą w kolejnej odpowiedzi @Paul) jest to, że badacze znormalizują swoje predyktory, aby wszystkie współczynniki były w tej samej skali. W takim przypadku rozmiar oszacowań punktowych może dać przybliżone wyobrażenie o tym, które predyktory mają największy wpływ po ustabilizowaniu wielkości liczbowej predyktora.

Innym powodem, dla którego badacz może chcieć skalować bardzo duże zmienne, jest to, że współczynniki regresji nie są w bardzo małej skali. Na przykład, jeśli chcesz przyjrzeć się wpływowi wielkości populacji kraju na wskaźnik przestępczości (nie możesz wymyślić lepszego przykładu), możesz zmierzyć wielkość populacji w milionach, a nie w jej pierwotnych jednostkach, ponieważ współczynnik może być jak ..00000001

Makro
źródło
Dwie krótkie uwagi: Chociaż początek postu jest poprawny, pomija się fakt, że centrowanie będzie miało wpływ, jeśli nie będzie przechwytywania. :) Po drugie, wyśrodkowanie i przeskalowanie ma ważne skutki, jeśli zastosujemy regularyzację. Chociaż PO może tego nie rozważać, prawdopodobnie warto o tym pamiętać.
kardynał
Niezmienność przeskalowania jest również łatwa do zauważenia, jeśli nie masz nic przeciwko notacji macierzowej. Przy pełnej wartości (dla uproszczenia) . Teraz, jeśli zastąpimy przez gdzie jest przekątna, otrzymamyXy^=X(XX)1XyXXDD
y~=(XD)((XD)XD)1(XD)y=XD(DXXD)1DXy=X(XX)1Xy=y^.
kardynał
@ cardinal, postanowiłem wspomnieć o tym, że jeśli twoje szacunki są uregulowane, centrowanie / skalowanie może mieć wpływ. Początkowo stawiałem opór, ponieważ myślałem, że rozpocznie się długa dygresja, która może dezorientować tych, którzy nie są zaznajomieni z regularyzacją, ale stwierdziłam, że mogę zająć się tym stosunkowo mało miejsca. Dzięki--
Makro
Nie wszystkie moje komentarze muszą koniecznie sugerować, że odpowiedź powinna zostać zaktualizowana. Wiele razy po prostu lubię wstawiać uwagi pomocnicze pod miłymi odpowiedziami, aby dać kilka przemyśleń na temat powiązanych pomysłów, które mogą być interesujące dla przechodnia. (+1)
kardynał
Coś funky dzieje się przy liczeniu głosów. Po raz kolejny głosowałem za tym, pisząc mój wcześniejszy komentarz i nie „wziął”. Hmm
kardynał
2

Tak zwana „normalizacja” jest powszechną procedurą dla większości metod regresji. Istnieją dwa sposoby:

  1. Odwzoruj każdą zmienną na granice [-1, 1] (mapminmax w MatLab.
  2. Usuń średnią z każdej zmiennej i podziel na jej standardowe odchylenie (mapstd w MatLab), tzn. Faktycznie „normalizuj”. Jeśli prawdziwe znaczenie odchylenia jest nieznane, po prostu weź przykładowe cechy: lub gdzie , , i
    X~ij=Xijμiσi
    X~ij=XijXi¯std(Xi)
    E[Xi]=μE[Xi2E[Xi]2]=σ2Xi¯=1Nj=1NXijstd(Xi)=1Nj=1N(Xij2Xi¯2)

Ponieważ regresja liniowa jest bardzo wrażliwa na zakresy zmiennych, generalnie sugerowałbym normalizację wszystkich zmiennych, jeśli nie masz wcześniejszej wiedzy na temat zależności i oczekujesz, że wszystkie zmienne będą relatywnie ważne.

To samo dotyczy zmiennych odpowiedzi, chociaż nie jest to dla nich bardzo ważne.

Po co przeprowadzać normalizację lub standaryzację? Głównie w celu określenia względnego wpływu różnych zmiennych w modelu. Można to osiągnąć, jeśli wszystkie zmienne są w tych samych jednostkach.

Mam nadzieję że to pomoże!

Paweł
źródło
Co masz na myśli mówiąc, że regresja liniowa jest bardzo wrażliwa na zakresy zmiennych ? Dla każdego z x1,x2,ytych dwóch poleceń: summary(lm(y~x1+x2))$r.sqoraz summary(lm(y~scale(x1)+scale(x2)))$r.sq- wartości , gdy nie ustandaryzujesz współczynników, a kiedy to zrobisz - podaj tę samą wartość, wskazując równoważne dopasowanie. R2
Makro
Nie byłem całkowicie poprawny w formule. miałem na myśli wygłupienie. Regresja byłaby zawsze taka sama (w sensie ), jeśli wykonujesz tylko liniowe transformacje danych. Ale jeśli chcesz ustalić, które zmienne są krytyczne, a które prawie głośne, ważna jest skala. Po prostu dobrze jest znormalizować zmienne i zapomnieć o ich oryginalnych skalach. Zatem regresja jest „sensowna” pod względem zrozumienia względnych wpływów. R2
Paul,
Dzięki za wyjaśnienie, ale które zmienne są krytyczne, a które są prawie hałaśliwe, o skali często decyduje wartość , która również nie zmieni się podczas standaryzacji (oczywiście z wyjątkiem przechwytywania). Zgadzam się z twoją tezą, że zapewnia to lepszą interpretację surowych szacunków współczynników. p
Makro