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"
boxCox(my.regression.model, family="yjPower", plotit = TRUE)
To tworzy wykres podobny do następującego:
λλ
Aby teraz przekształcić zmienną zależną, użyj funkcji yjPower
z car
pakietu:
depvar.transformed <- yjPower(my.dependent.variable, lambda)
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żyj glm
:
glm.mod <- glm(y~x1+x2, family=gaussian(link="log"))
gdzie y
jest zmienna zależna i x1
, 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
z car
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 opcja other.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:
boxTidwell(prestige ~ income + education, other.x=~ type + poly(women, 2), data=Prestige)
Score Statistic p-value MLE of lambda
income -4.482406 0.0000074 -0.3476283
education 0.216991 0.8282154 1.2538274
income
λincome
dochódn e w= 1 / dochódo l d--------√
Kolejnym bardzo interesującym postem na stronie o transformacji zmiennych niezależnych jest ten .
Wady transformacji
1 / y√λλ
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
. Do R
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ć funkcji gam
(uogólnione modele addytywne, zobacz tutaj doskonałe wprowadzenie z R
) z pakietumgcv
lub funkcjins
(naturalne splajny sześcienne) i bs
(sześcienne splajny B) z pakietu splines
(zobacz tutaj przykład użycia tych funkcji). Za gam
pomocą tej s()
funkcji możesz określić, które predyktory chcesz dopasować za pomocą splajnów, używając funkcji:
my.gam <- gam(y~s(x1) + x2, family=gaussian())
tutaj x1
byłby dopasowany przy użyciu splajnu i x2
liniowo, jak w normalnej regresji liniowej. Wewnątrz gam
możesz określić rodzinę dystrybucji i funkcję łącza jak w glm
. Aby więc dopasować model z funkcją log-link, możesz określić opcję family=gaussian(link="log")
in gam
as glm
.
Obejrzyj ten post ze strony.