Chcę regresować zmienną na . Czy powinienem to zrobić przy użyciu surowych czy ortogonalnych wielomianów? Spojrzałem na pytanie na stronie, które się nimi zajmują, ale tak naprawdę nie rozumiem, jaka jest różnica między ich używaniem.
Dlaczego nie mogę po prostu wykonać „normalnej” regresji, aby uzyskać współczynniki dla (wraz z wartościami p i wszystkimi innymi fajnymi rzeczami) i zamiast tego musisz się martwić, czy używasz wielomianów surowych czy ortogonalnych? Ten wybór wydaje mi się poza zakresem tego, co chcę zrobić.
W książce statystyk, którą obecnie czytam (ISLR Tibshirani i in.), Te rzeczy nie zostały wspomniane. W rzeczywistości byli w pewien sposób lekceważeni.
Powodem jest, AFAIK, że w lm()
funkcji w R, używając y ~ poly(x, 2)
kwot do używania ortogonalnych wielomianów i używając y ~ x + I(x^2)
ilości do używania surowych. Ale na str. 116 autorzy twierdzą, że korzystamy z pierwszej opcji, ponieważ ta druga jest „uciążliwa”, co nie pozostawia żadnych wskazówek, że te polecenia faktycznie mają zupełnie inne rzeczy (i w konsekwencji mają różne wyniki).
(trzecie pytanie) Dlaczego autorzy ISLR tak mylą swoich czytelników?
źródło
poly
ma to coś wspólnego z wielomianami ortogonalnymi, a ja (x ^ 2) nie (choć nie znam szczegółów) - ale dlaczego autorzy ISLR zalecają metodę, która nie działa ? Wydaje się to bardzo mylące, jeśli oba polecenia wydają się robić to samo, ale tylko jedno jest w porządku.poly
i spędziłem już trochę czasu z tym problemem, ale nie mogę zrozumieć, dlaczego poli (x, 2) i x + I (x ^ 2) mają znaczenie? Czy mógłbyś proszę oświecić mnie tutaj w komentarzach, jeśli pytanie jest nie na temat?R
technika, której nie rozumiałem, ale teraz wydaje się, że jest to problem z pełną statystyką, który utrudnia mi kodowanie regresji, która nie powinna być tak trudne do zakodowania.Odpowiedzi:
Uważam, że odpowiedź nie dotyczy stabilności numerycznej (choć odgrywa to pewną rolę), a bardziej zmniejszenia korelacji.
W gruncie rzeczy - kwestia sprowadza się do tego, że kiedy cofamy się w stosunku do wielomianów wysokiego rzędu, zmienne towarzyszące, w których się cofamy, stają się wysoce skorelowane. Przykładowy kod poniżej:
To jest niezwykle ważne. W miarę, jak zmienne towarzyszące stają się bardziej skorelowane, nasza zdolność do określania, które są ważne (i jaka jest ich wielkość) gwałtownie maleje. Jest to zwykle określane jako problem wielokoliniowości. Na granicy, gdybyśmy mieli dwie zmienne, które były w pełni skorelowane, kiedy regresujemy je przeciwko czemuś, niemożliwe jest ich rozróżnienie - można to potraktować jako skrajną wersję problemu, ale problem ten wpływa na nasze szacunki dla mniejszy stopień korelacji. Zatem w prawdziwym sensie - nawet jeśli niestabilność numeryczna nie stanowiła problemu - korelacja z wielomianów wyższego rzędu wyrządza ogromne szkody naszym procedurom wnioskowania. Przejawi się to jako większe standardowe błędy (a tym samym mniejsze statystyki t), które w przeciwnym razie byście zobaczyli (patrz przykładowa regresja poniżej).
Jeśli uruchomisz ten kod, interpretacja będzie trudna, ponieważ wszystkie współczynniki się zmieniają, więc trudno jest porównać. Patrząc jednak na statystyki T, widzimy, że zdolność do wyznaczania współczynników była DUŻO większa w przypadku wielomianów ortogonalnych. Dla 3 odpowiednich współczynników otrzymałem t-statystyki (560 21449) dla modelu ortogonalnego i tylko (28, -38, 121) dla surowego modelu wielomianowego. To ogromna różnica dla prostego modelu, który miał tylko kilka względnie niskich terminów wielomianowych, które miały znaczenie.
Nie oznacza to, że przychodzi to bez kosztów. Należy pamiętać o dwóch podstawowych kosztach. 1) tracimy pewną interpretowalność w przypadku wielomianów ortogonalnych. Możemy zrozumieć, co
x**3
oznacza współczynnik na , ale interpretacja współczynnika nax**3-3x
(trzeci poli-pustelnik - niekoniecznie to, czego użyjesz) może być znacznie trudniejsza. Po drugie - gdy mówimy, że są to wielomiany, które są ortogonalne - mamy na myśli, że są one ortogonalne w odniesieniu do pewnej miary odległości. Wybranie miary odległości odpowiedniej dla danej sytuacji może być trudne. Jednak powiedziawszy to, uważam, żepoly
funkcja ma na celu takie dobranie, aby była ortogonalna w odniesieniu do kowariancji - co jest przydatne w regresjach liniowych.źródło
raw.mod
nim szacuje nachylenie krzywej przy x = 0, worthogonal.mod
nim szacuje krańcowe nachylenie (tj. Identyczne z tym,lm(y ~ poly(x,1))
gdzie pominięto terminy wyższego rzędu). Nie ma powodu, aby oszacowania tych całkowicie różnych oszacowań miały porównywalne błędy standardowe. Łatwo można skonstruować kontrofilm, w którym statystykiraw.mod
są znacznie wyższeUżycie surowego wielomianu spowoduje problem, ponieważ będziemy mieli ogromną liczbę. Oto mały dowód: porównujemy liczbę warunków macierzy z surowym i ortogonalnym wielomianem.
Możesz również sprawdzić moją odpowiedź tutaj na przykład.
Dlaczego istnieją duże współczynniki dla wielomianu wyższego rzędu
źródło
R
Na wyjściuprint(0.4, digits=20)
jest0.40000000000000002
.Wydaje mi się, że kilka z tych odpowiedzi całkowicie mija się z celem. Odpowiedź Haitao rozwiązuje problemy obliczeniowe związane z dopasowaniem surowych wielomianów, ale jasne jest, że OP pyta o różnice statystyczne między tymi dwoma podejściami. Oznacza to, że gdybyśmy mieli idealny komputer, który mógłby dokładnie reprezentować wszystkie wartości, dlaczego wolelibyśmy jedno podejście od drugiego?
Utworzono 25.10.2019 przez pakiet reprezentx (v0.3.0)
Efekt krańcowy
Petal.Width
przy 0 z dopasowania ortogonalnego i jego błąd standardowy są dokładnie równe efektom z surowego dopasowania wielomianowego. Korzystanie z wielomianów ortogonalnych nie poprawia dokładności oszacowań tej samej wielkości między dwoma modelami.Utworzono 25.10.2019 przez pakiet reprezentx (v0.3.0)
Teraz, niezależnie od tego, czy chcesz uzyskać tę korzyść interpretacyjną w porównaniu z korzyścią interpetacyjną polegającą na faktycznym zrozumieniu współczynników modelu, powinieneś użyć wielomianów ortogonalnych. Jeśli wolisz spojrzeć na współczynniki i dokładnie wiedzieć, co one oznaczają (chociaż wątpię, że jeden zwykle tak robi), powinieneś użyć surowych wielomianów. Jeśli cię to nie obchodzi (tzn. Chcesz kontrolować tylko pomieszanie lub generować prognozowane wartości), to naprawdę nie ma znaczenia; obie formy zawierają te same informacje w odniesieniu do tych celów. Argumentowałbym również, że ortogonalne wielomiany powinny być preferowane w regularyzacji (np. Lasso), ponieważ usunięcie terminów wyższego rzędu nie wpływa na współczynniki terminów niższego rzędu, co nie jest prawdą w przypadku wielomianów surowych,
źródło
stats::
w wywołaniupoly()
wlm()
dlamargins
rozpoznać go (co jest głupie). Chciałem skoncentrować mój argument na szacunkach punktowych i standardowych błędach, i wiem, że przedstawiono wiele obcych i rozpraszających informacji, ale mam nadzieję, że tekst ilustruje moje argumenty.stats::poly()
. Błąd mówi'degree' must be less than number of unique points
- co niewiele mi pomaga. Niemniej jednakmargin()
tworzy kopie sprawdzalnych stwierdzeń, więc nie jest to ważne.Potwierdzam doskonałą odpowiedź od @ user5957401 i dodaję komentarze na temat interpolacji, ekstrapolacji i raportowania.
Nawet w dziedzinie stabilnych wartości parametrów współczynniki / parametry modelowane przez wielomiany ortogonalne będą miały znacznie mniejsze błędy standardowe niż współczynniki / parametry modelowane przez parametry surowe. Zasadniczo ortogonalne wielomiany są wolnym zestawem deskryptorów zerow kowariancji. To PCA za darmo!
Jedyną potencjalną wadą jest konieczność wyjaśnienia tego komuś, kto nie rozumie zalet deskryptorów zerowej kowariancji. Współczynniki nie są natychmiast interpretowalne w kontekście efektów pierwszego rzędu (podobny do prędkości) lub drugiego rzędu (podobny do przyspieszenia). Może to być dość potworne w otoczeniu biznesowym.
Byłbym więc „rzędami wielkości” bardziej pewny, zgłaszając model ortogonalny niż surowy. W praktyce interpolowałbym z dowolnym modelem, ale ekstrapolowałbym tylko z modelem ortogonalnym.
źródło
Chciałbym właśnie to skomentować, aby o tym wspomnieć, ale nie mam wystarczającej liczby przedstawicieli, więc spróbuję rozwinąć się w odpowiedź. Być może zainteresuje Cię to, że w części laboratoryjnej 7.8.1 w „Wprowadzenie do uczenia statystycznego” (James i in., 2017, poprawione 8. drukowanie), omawiają pewne różnice między używaniem ortogonalnych wielomianów lub nie, a mianowicie
raw=TRUE
lubraw=FALSE
wpoly()
funkcji. Na przykład szacunki współczynników zmienią się, ale dopasowane wartości nie:Książka omawia również, w jaki sposób przy stosowaniu wielomianów ortogonalnych, wartości p uzyskane za pomocą
anova()
zagnieżdżonego testu F (w celu zbadania, w jakim stopniu wielomian może być uzasadniony) są takie same, jak te uzyskane przy zastosowaniu standardowego testu t, wyprowadzone przezsummary(fit)
. To pokazuje, że statystyka F jest równa kwadratowi statystyki t w niektórych sytuacjach.źródło