Czy ktoś ma sugestie lub pakiety, które obliczą współczynnik częściowego określenia?
Współczynnik częściowego wyznaczenia można zdefiniować jako procent zmienności, którego nie można wyjaśnić w modelu zredukowanym, ale można go wyjaśnić za pomocą predyktorów określonych w modelu pełnym (er). Ten współczynnik służy do uzyskania wglądu, czy jeden lub więcej dodatkowych predyktorów może być użytecznych w bardziej w pełni określonym modelu regresji.
Obliczenie dla częściowego r ^ 2 jest stosunkowo proste po oszacowaniu dwóch modeli i wygenerowaniu dla nich tabel ANOVA. Obliczenie dla częściowego r ^ 2 wynosi:
(SSEreduced - SSEfull) / SSEreduced
Napisałem tę stosunkowo prostą funkcję, która obliczy to dla modelu wielokrotnej regresji liniowej. Nie znam innych struktur modelu w R, w których ta funkcja może również nie działać:
partialR2 <- function(model.full, model.reduced){
anova.full <- anova(model.full)
anova.reduced <- anova(model.reduced)
sse.full <- tail(anova.full$"Sum Sq", 1)
sse.reduced <- tail(anova.reduced$"Sum Sq", 1)
pR2 <- (sse.reduced - sse.full) / sse.reduced
return(pR2)
}
Wszelkie sugestie lub wskazówki dotyczące bardziej niezawodnych funkcji umożliwiających wykonanie tego zadania i / lub bardziej wydajnych implementacji powyższego kodu będą mile widziane.
źródło
Odpowiedzi:
Cóż, r ^ 2 jest tak naprawdę tylko kowariancją do kwadratu nad iloczynem wariancji, więc prawdopodobnie możesz zrobić coś takiego jak cov (Yfull, Ytrue) / var (Ytrue) var (Yfull) - cov (YReduced, Ytrue) / var (Ytrue ) var (YRed) niezależnie od typu modelu; zaznacz, aby sprawdzić, czy daje to tę samą odpowiedź w przypadku lm.
http://www.stator-afm.com/image-files/r-squared.gif
źródło