Jestem nowy w regresji grzbietu. Kiedy zastosowałem liniową regresję kalenicy, otrzymałem następujące wyniki:
>myridge = lm.ridge(y ~ ma + sa + lka + cb + ltb , temp, lamda = seq(0,0.1,0.001))
> select(myridge)
modified HKB estimator is 0.5010689
modified L-W estimator is 0.3718668
smallest value of GCV at 0
Pytania:
- Czy można uzyskać zero
GCV
? - Co to dokładnie znaczy?
- Czy jest problem z moim modelem?
- Jak mogę znaleźć wartość ?
myridge
ridge-regression
samarasa
źródło
źródło
Odpowiedzi:
Lepiej może być z pakietem karnym lub pakietem glmnet ; zarówno implementują lasso, jak i elastyczną sieć, dzięki czemu łączą właściwości lasso (wybór cech) i regresji kalenicy (obsługa zmiennych współliniowych). ukarany również grań. Te dwa pakiety są o wiele pełniej dostępne niż
lm.ridge()
w pakiecie MASS .W każdym razie oznacza zerową karę, stąd oszacowania najmniejszych kwadratów są optymalne w tym sensie, że miały najniższy wynik GCV (uogólniona walidacja krzyżowa). Być może jednak nie dopuściłeś wystarczająco dużej kary; innymi słowy, szacunki najmniejszych kwadratów były optymalne dla małego zestawu wartości , które oglądałeś. Narysuj ścieżkę kalenicową (wartości współczynników w funkcji i sprawdź, czy ślady ustabilizowały się, czy nie. Jeśli nie, zwiększ zakres ocenianych wartości .λ = 0 λ λ λ
źródło
Powodem, dla którego otrzymujesz 0 GCV, jest to, że użyłeś:
myridge = lm.ridge (y ~ ma + sa + lka + cb + ltb, temp, lamda = seq (0,0,1,0,001))
zamiast
myridge = lm.ridge (y ~ ma + sa + lka + cb + ltb, temp, lambda = seq (0,0,1,0,001))
źródło