Meine Fragen beziehen sich auf GAMs im mgcv R-Paket. Aufgrund einer kleinen Stichprobengröße möchte ich den Vorhersagefehler mithilfe einer einmaligen Kreuzvalidierung ermitteln. Ist das vernünftig? Gibt es ein Paket oder einen Code, wie ich das machen kann? Die errorest()
Funktion im ipred- Paket funktioniert nicht. Ein einfacher Testdatensatz ist:
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")
Vielen Dank für Ihre helfende Hand!
r
cross-validation
gam
mgcv
Peter
quelle
quelle
Antworten:
Ich mag das Paket
caret
für Dinge wie diese aber leider Ich habe gerade gelesen , dass Sie nicht die angeben können ,formula
ingam
genau dafür."Wenn Sie Zug mit diesem Modell verwenden, können Sie (zu diesem Zeitpunkt) die Spielformel nicht angeben. Caret verfügt über eine interne Funktion, die eine Formel basierend auf der Anzahl der eindeutigen Ebenen jedes Prädiktors usw. ermittelt. Mit anderen Worten, Zug bestimmt derzeit, welche Begriffe werden geglättet und sind einfache alte lineare Haupteffekte. "
Quelle: /programming/20044014/error-with-train-from-caret-package-using-method-gam
Wenn Sie jedoch
train
die glatten Begriffe auswählen lassen , wird in diesem Fall Ihr Modell trotzdem genau erstellt. Die Standardleistungsmetrik ist in diesem Fall RMSE. Sie können sie jedoch mithilfe dessummaryFunction
Arguments dertrainControl
Funktion ändern .Ich denke, einer der Hauptnachteile von LOOCV ist, dass es ewig dauert, wenn der Datensatz groß ist. Da Ihr Datensatz klein ist und recht schnell funktioniert, halte ich ihn für eine sinnvolle Option.
Hoffe das hilft.
Ausgabe:
quelle
In der mgcv-Bibliothek pdf heißt es;
"Bei einer durch eine Gam-Modellformel spezifizierten Modellstruktur versucht gam (), die geeignete Glätte für jeden anwendbaren Modellterm unter Verwendung von Vorhersagefehlerkriterien oder wahrscheinlichkeitsbasierten Methoden zu finden. Die verwendeten Vorhersagefehlerkriterien sind Generalized (Approximate) Cross Validation (GCV oder GACV), wenn der Skalenparameter unbekannt ist, oder ein Un-Bias Risk Estimator (UBRE), wenn er bekannt ist. "
"gam in mgcv löst das Problem der Schätzung der Glättungsparameter unter Verwendung des GCV-Kriteriums (Generalized Cross Validation): nD / (n - DoF) 2
oder
ein UBRE-Kriterium (Un-Bias Risk Estimator): D / n + 2sDoF / n - s "
quelle