Jaki jest powód podjęcia logarytmicznej transformacji kilku zmiennych ciągłych?

16

Robiłem problem z klasyfikacją i przeczytałem kod wielu osób i samouczki. Jedną rzeczą, jaką zauważyłem jest to, że wiele osób podejmuje np.loglub logciągłej zmiennej jak loan_amounti applicant_incomeetc.

Chcę tylko zrozumieć przyczynę tego. Czy pomaga to poprawić dokładność prognozowania naszego modelu? Czy to jest obowiązkowe? lub Czy kryje się za tym jakaś logika?

Proszę podać wyjaśnienie, jeśli to możliwe. Dziękuję Ci.

Sai Kumar
źródło

Odpowiedzi:

27

Odbywa się to, gdy zmienne obejmują kilka rzędów wielkości. Dochód jest typowym przykładem: jego rozkład jest „prawem władzy”, co oznacza, że ​​ogromna większość dochodów jest niewielka, a bardzo niewiele jest dużych.

Ten typ rozkładu „ogoniastego tłuszczu” jest badany w skali logarytmicznej ze względu na matematyczne właściwości logarytmu:

losol(xn)=nlosol(x)

co implikuje

losol(104)=4losol(10)

i

losol(103))=3)losol(10)

co przekształca ogromną różnicę

104-103)
w mniejszą
4-3)
Porównywanie wartości.

Duccio Piovani
źródło
2
Ładna odpowiedź, szczególnie mówiąc o rozkładach wykładniczych.
Kasra Manshaei
1
@KasraManshaei Mówiłem w szczególności o prawach władzy (typowym przykładem są dochody): ekstremalne wartości w rozkładzie wykładniczym są z definicji bardzo rzadkie. Dlatego dane, które obejmują wiele rzędów wielkości, są zwykle prawem mocy.
Duccio Piovani
1
ale oczywiście w takich przypadkach log ---> ln, co absolutnie nie zmienia punktu odpowiedzi.
Duccio Piovani
Tak, mam to. Jak powiedziałeś, niewiele zmian.
Kasra Manshaei
7

Głównie z powodu wypaczonej dystrybucji. Logarytm w naturalny sposób zmniejsza zakres dynamiczny zmiennej, więc różnice zostają zachowane, podczas gdy skala nie jest aż tak dramatycznie wypaczona. Wyobraź sobie, że niektórzy ludzie otrzymali pożyczkę w wysokości 100 000 000, a niektórzy dostali 10000, a niektórzy 0. Każde skalowanie funkcji prawdopodobnie spowoduje, że 0 i 10000 będą tak blisko siebie, ponieważ i tak większa liczba przesunie granicę. Logarytm rozwiązuje problem.

Kasra Manshaei
źródło
Manshael, więc mogę używać MinMaxScaler lub StandardScaler, prawda? lub Czy konieczne jest pobranie dziennika?
Sai Kumar
Niezbędny. Jeśli używasz skalerów, dramatycznie kompresują małe wartości. Właśnie to chciałem powiedzieć.
Kasra Manshaei
2
Tak. Jeśli weźmiesz pod uwagę wartości 1000 000 000 oraz 10000 i 0. W wielu przypadkach pierwszy z nich jest zbyt duży, aby inni mogli poprawnie widzieć Twój model. Ale jeśli weźmiesz logarytm, będziesz miał odpowiednio 9, 4 i 0. Jak widać zakres dynamiczny jest zmniejszony, a różnice są prawie zachowane. Pochodzi z dowolnej wykładniczej natury twojej funkcji. W takich przypadkach potrzebny jest logarytm, tak jak przedstawiono drugą odpowiedź. Mam nadzieję, że to pomogło :)
Kasra Manshaei
2
Skalowanie! Wyobraź sobie dwie zmienne o rozkładzie normalnym (więc nie ma potrzeby logarytmu), ale jedną z nich w skali 10ish i drugą w skali milionów. Ponowne karmienie ich modelem sprawia, że ​​mały jest niewidoczny. W takim przypadku używasz skalerów, aby ich skale były rozsądne.
Kasra Manshaei
1
@KasraManshaei log (0) = -inf choć.
JAD
5

logx0<x<-<logx<

x

JAD
źródło
3

Kolejny powód, dla którego transformacje logarytmiczne są użyteczne, pojawia się w przypadku danych współczynników, z tego powodu log(A/B) = -log(B/A). Jeśli kreślisz rozkład współczynników na skali surowej, twoje punkty mieszczą się w zakresie (0, Inf). Wszelkie proporcje mniejsze niż 1 zostaną ściśnięte na małym obszarze wykresu, a ponadto wykres będzie wyglądał zupełnie inaczej, jeśli odwrócisz stosunek do (B/A)zamiast (A/B). Jeśli zrobisz to w skali logarytmicznej, zakres jest teraz (-Inf, +Inf), co oznacza, że ​​stosunki mniejsze niż 1 i większe niż 1 są bardziej równomiernie rozłożone. Jeśli zdecydujesz się przerzucić stosunek, po prostu odwróć wykres wokół 0, w przeciwnym razie wygląda dokładnie tak samo. W skali logów tak naprawdę nie ma znaczenia, czy wyświetlasz stosunek as 1/10 or 10/1, co jest przydatne, gdy nie ma oczywistego wyboru, który powinien być.

Nuclear Wang
źródło
3

Powinieneś spojrzeć na rozkład logarytmiczny .

Ludzie mogą korzystać z dzienników, ponieważ uważają, że kompresuje skalę lub coś takiego, ale zasadą korzystania z dzienników jest to, że pracujesz z danymi o rozkładzie logarytmicznym nienormalnym. Będą to na przykład wynagrodzenia, ceny mieszkań itp., Gdzie wszystkie wartości są dodatnie, a większość z nich jest stosunkowo skromna, ale niektóre są bardzo duże.

Jeśli możesz wziąć dziennik danych i staje się on normalny, możesz skorzystać z wielu funkcji rozkładu normalnego, takich jak dobrze zdefiniowana średnia, odchylenie standardowe (a tym samym z-score), symetria itp.

Podobnie dodanie dzienników jest takie samo, jak pomnożenie wartości niezalogowanych. Co oznacza, że ​​zmieniłeś rozkład, w którym błędy są addytywne, na taki, w którym są multiplikatywne (tzn. Procentowe). Ponieważ techniki takie jak regresja OLS wymagają normalnego rozkładu błędów, praca z logami rozszerza ich zastosowanie z procesów addytywnych na multiplikatywne.

Wayne
źródło
1
Jeśli chcesz porównać elementy w sposób wolny od dystrybucji, czy nie lepiej byłoby wziąć percentyle lub decyle i użyć ich zamiast pierwotnej wartości?
William Payne
1
@WilliamPayne Pewnie, możesz użyć metody bez dystrybucji, chociaż rezygnujesz z części mocy dystrybucji ... jeśli twoje założenia dystrybucyjne są prawidłowe. Przy większych (poprawnych) założeniach pojawia się większa moc. Percentyle są w zasadzie szeregami, więc wyrzucasz posiadane informacje o odległości, a percentyl konkretnej próbki jest oszacowaniem punktowym. Na ogół wolelibyśmy rozkłady od punktów.
Wayne
0

Powiedziałbym, że głównym powodem nie jest dystrybucja, ale raczej związek nieliniowy. Dzienniki często wychwytują nasycające relacje ...

seanv507
źródło