Ich mag das Paket caretfür Dinge wie diese aber leider Ich habe gerade gelesen , dass Sie nicht die angeben können , formulain gamgenau 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 traindie 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 des summaryFunctionArguments der trainControlFunktion ä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.
library(mgcv)
library(caret)
set.seed(0)
dat <- gamSim(1, n = 400, dist = "normal", scale = 2)
b <- train(y ~ x0 + x1 + x2 + x3,
data = dat,
method = "gam",
trControl = trainControl(method = "LOOCV", number = 1, repeats = 1),
tuneGrid = data.frame(method = "GCV.Cp", select = FALSE)
)
print(b)
summary(b$finalModel)
Ausgabe:
> print(b)
Generalized Additive Model using Splines
400 samples
9 predictors
No pre-processing
Resampling:
Summary of sample sizes: 399, 399, 399, 399, 399, 399, ...
Resampling results
RMSE Rsquared
2.157964 0.7091647
Tuning parameter 'select' was held constant at a value of FALSE
Tuning parameter 'method' was held constant at a value of GCV.Cp
> summary(b$finalModel)
Family: gaussian
Link function: identity
Formula:
.outcome ~ s(x0) + s(x1) + s(x2) + s(x3)
Parametric coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 7.9150 0.1049 75.44 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Approximate significance of smooth terms:
edf Ref.df F p-value
s(x0) 5.173 6.287 4.564 0.000139 ***
s(x1) 2.357 2.927 103.089 < 2e-16 ***
s(x2) 8.517 8.931 84.308 < 2e-16 ***
s(x3) 1.000 1.000 0.441 0.506929
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
R-sq.(adj) = 0.726 Deviance explained = 73.7%
GCV = 4.611 Scale est. = 4.4029 n = 400