Próbuję wykonać regresję wielokrotną w R
. Jednak moja zmienna zależna ma następujący wykres:
Oto macierz wykresu rozrzutu ze wszystkimi moimi zmiennymi ( WAR
jest zmienną zależną):
Wiem, że muszę wykonać transformację tej zmiennej (i ewentualnie zmiennych niezależnych?), Ale nie jestem pewien dokładnej wymaganej transformacji. Czy ktoś może skierować mnie we właściwym kierunku? Z przyjemnością udzielę wszelkich dodatkowych informacji na temat związku między zmiennymi niezależnymi i zależnymi.
Grafika diagnostyczna z mojej regresji wygląda następująco:
EDYTOWAĆ
Po transformacji zmiennych zależnych i niezależnych za pomocą transformacji Yeo-Johnsona wykresy diagnostyczne wyglądają następująco:
Jeśli używam GLM z łączem logu, grafika diagnostyczna to:
R
za pomocą polecenia,pairs(my.data, lower.panel = panel.smooth)
gdziemy.data
byłby twój zestaw danych.lm
boxcox(my.lm.model)
MASS
Odpowiedzi:
Książka Johna Foxa T towarzysząca regresji stosowanej jest doskonałym źródłem informacji na temat modelowania regresji stosowanej
R
. Pakiet,car
którego używam w tej odpowiedzi, jest pakietem towarzyszącym. Książka ma również stronę internetową z dodatkowymi rozdziałami.Przekształcanie odpowiedzi (inaczej zmienna zależna, wynik)
R
lm
boxCox
car
family="yjPower"
To tworzy wykres podobny do następującego:
Aby teraz przekształcić zmienną zależną, użyj funkcji
yjPower
zcar
pakietu:lambda
boxCox
Ważne: Zamiast transformować logarytmicznie zmienną zależną, powinieneś rozważyć dopasowanie GLM do log-link. Oto kilka odniesień, które dostarczają dalszych informacji: po pierwsze , po drugie , po trzecie . Aby to zrobić
R
, użyjglm
:gdzie
y
jest zmienna zależna ix1
,x2
itd. są twoi niezależnymi zmiennymi.Transformacje predyktorów
Transformacje ściśle dodatnich predyktorów można oszacować na podstawie maksymalnego prawdopodobieństwa po transformacji zmiennej zależnej. Aby to zrobić, użyj funkcji
boxTidwell
zcar
paczki (oryginalny papier znajduje się tutaj ). Używaj go tak:boxTidwell(y~x1+x2, other.x=~x3+x4)
. Ważną rzeczą jest to, że ta opcjaother.x
wskazuje warunki regresji, których nie należy przekształcać. To byłyby wszystkie twoje zmienne kategorialne. Funkcja generuje dane wyjściowe o następującej formie:income
income
Kolejnym bardzo interesującym postem na stronie o transformacji zmiennych niezależnych jest ten .
Wady transformacji
Modelowanie relacji nieliniowych
Dwie dość elastyczne metody dopasowania relacji nieliniowych to ułamkowe wielomiany i splajny . Te trzy artykuły stanowią bardzo dobre wprowadzenie do obu metod: pierwszej , drugiej i trzeciej . Jest też cała książka o ułamkach wielomianów i
R
. DoR
opakowaniamfp
narzędzia wielozmienną wielomianów ułamkowe. Ta prezentacja może być pouczająca na temat wielomianów ułamkowych. Aby dopasować splajny, możesz użyć funkcjigam
(uogólnione modele addytywne, zobacz tutaj doskonałe wprowadzenie zR
) z pakietumgcv
lub funkcjins
(naturalne splajny sześcienne) ibs
(sześcienne splajny B) z pakietusplines
(zobacz tutaj przykład użycia tych funkcji). Zagam
pomocą tejs()
funkcji możesz określić, które predyktory chcesz dopasować za pomocą splajnów, używając funkcji:tutaj
x1
byłby dopasowany przy użyciu splajnu ix2
liniowo, jak w normalnej regresji liniowej. Wewnątrzgam
możesz określić rodzinę dystrybucji i funkcję łącza jak wglm
. Aby więc dopasować model z funkcją log-link, możesz określić opcjęfamily=gaussian(link="log")
ingam
asglm
.Obejrzyj ten post ze strony.
źródło
mgcv
pakietem igam
. Jeśli to nie pomoże, obawiam się, że to koniec dowcipu. Są tu ludzie, którzy są znacznie bardziej doświadczeni niż ja i może mogą udzielić ci dalszych rad. Nie mam też wiedzy o baseballu. Być może istnieje bardziej logiczny model, który ma sens z tymi danymi.Powinieneś powiedzieć nam więcej o naturze twojej odpowiedzi (wynik, zależna) zmienna. Od pierwszego wykresu jest mocno wypaczony z wieloma wartościami bliskimi zeru i niektórymi ujemnymi. Z tego jest możliwe, ale nieuniknione, że transformacja pomogłaby ci, ale najważniejsze pytanie brzmi: czy transformacja zbliżyłaby twoje dane do relacji liniowej.
Zauważ, że ujemne wartości odpowiedzi wykluczają prostą transformację logarytmiczną, ale nie log (odpowiedź + stała), a nie uogólniony model liniowy z łączem logarytmicznym.
Na tej stronie znajduje się wiele odpowiedzi na temat dziennika (odpowiedź + stała), który dzieli statystycznych ludzi: niektórzy nie lubią tego jako doraźnego i trudnego do pracy, podczas gdy inni uważają to za legalne urządzenie.
GLM z łączem dziennika jest nadal możliwy.
Alternatywnie może się zdarzyć, że Twój model odzwierciedla pewien rodzaj procesu mieszanego, w którym to przypadku dobrym pomysłem byłby niestandardowy model bardziej odzwierciedlający proces generowania danych.
(PÓŹNIEJ)
OP ma zmienną zależną WAR o wartościach w przybliżeniu od około 100 do -2. Aby przezwyciężyć problemy z przyjmowaniem logarytmów zerowych lub ujemnych, OP proponuje krówkę zer i ujemnych do 0,000001. Teraz w skali logarytmicznej (podstawa 10) wartości te wynoszą od około 2 (około 100) do -6 (0,000001). Mniejszość sfałszowanych punktów w skali logarytmicznej jest obecnie mniejszością ogromnych wartości odstających. Wykreśl log_10 (fudged WAR) przeciwko cokolwiek innego, aby to zobaczyć.
źródło