Moje pytania dotyczą GAM w pakiecie mgcv R. Ze względu na niewielki rozmiar próbki chcę określić błąd prognozy za pomocą weryfikacji krzyżowej z pominięciem jednego z nich. Czy to rozsądne? Czy istnieje pakiet lub kod, jak to zrobić? errorest()
Funkcja w IPRED pakietu nie działa. Prosty testowy zestaw danych to:
library(mgcv)
set.seed(0)
dat <- gamSim(1,n=400,dist="normal",scale=2)
b<-gam(y~s(x0)+s(x1)+s(x2)+s(x3),data=dat)
summary(b)
pred <- predict(b, type="response")
Bardzo dziękuję za pomocną dłoń!
r
cross-validation
gam
mgcv
Piotr
źródło
źródło
Odpowiedzi:
Naprawdę podoba mi się pakiet
caret
dla takich rzeczy, ale niestety po prostu przeczytałem, że nie można dokładnie podaćformula
wgam
nim pakietu .„Kiedy używasz pociągu z tym modelem, nie możesz (w tym momencie) określić formuły gam. Caret ma wewnętrzną funkcję, która oblicza formułę na podstawie liczby unikalnych poziomów każdego predyktora itp. Innymi słowy, pociąg obecnie określa, która warunki są wygładzone i są zwykłymi starymi liniowymi efektami głównymi. ”
źródło: /programming/20044014/error-with-train-from-caret-package-using-method-gam
ale jeśli pozwolisz
train
wybrać gładkie warunki, w tym przypadku i tak powstanie Twój model. Domyślną miarą wydajności w tym przypadku jest RMSE, ale można ją zmienić za pomocąsummaryFunction
argumentutrainControl
funkcji.Myślę, że jedną z głównych wad LOOCV jest to, że gdy zbiór danych jest duży, trwa to wiecznie. Ponieważ twój zestaw danych jest mały i działa dość szybko, myślę, że jest to rozsądna opcja.
Mam nadzieję że to pomoże.
wynik:
źródło
W pdf pdf biblioteki mgcv jest napisane;
„Biorąc pod uwagę strukturę modelu określoną przez formułę modelu gam, gam () próbuje znaleźć odpowiednią gładkość dla każdego odpowiedniego terminu modelu, stosując kryteria błędu prognozy lub metody oparte na prawdopodobieństwie. Zastosowane kryteria błędu prognozy to Uogólniona (przybliżona) walidacja krzyżowa (GCV lub GACV), gdy parametr skali jest nieznany, lub oszacowanie ryzyka niepowiązanego (UBRE), gdy jest znane. ”
„gam w mgcv rozwiązuje problem estymacji parametru wygładzania za pomocą kryterium uogólnionej krzyżowej walidacji (GCV): nD / (n - DoF) 2
lub
kryterium estymatora ryzyka niepowiązanego (UBRE): D / n + 2sDoF / n - s ”
źródło