Bei der Auswahl einer geeigneten Anzahl von Knoten für ein GAM sollte möglicherweise die Anzahl der Daten und Inkremente auf der x-Achse berücksichtigt werden.
Was ist, wenn wir 100 Inkremente auf der x-Achse mit 1000 Datenpunkten bei jedem Inkrement haben?
Die Info hier sagt:
Wenn sie nicht geliefert werden, werden die Knoten des Splines gleichmäßig über die Kovariatenwerte verteilt, auf die sich der Begriff bezieht: Wenn beispielsweise 101 Daten mit einem 11-Knoten-Spline von x angepasst werden, gibt es bei jedem 10. (geordnet) einen Knoten. x-Wert.
Ein grundlegender Start sollte in diesem Beispiel also 9 Knoten sein? Ich bin mir nur nicht sicher, welcher Knotenbereich für diesen Datensatz geeignet wäre, da es möglich ist, sehr kleine bis sehr große Zahlen anzupassen.
set.seed(1)
dat <- data.frame(y = rnorm(10000), x = 100)
library(ggplot)
ggplot(dat, aes(x = x, y = y)) +
geom_point(size= 0.5) +
stat_smooth(method = "gam",
formula = y ~ s(x, bs = "cs"),k=9, col = "black")
Wenn k = 25 eine nützliche Anpassung liefert, wäre es für diese Daten sinnvoll?
bs = "cs"
Begriff im Spline?k
Entspricht die Angabe nicht der Angabek=-1
?Woher kommt die Idee, dass GCV automatisch die Anzahl der Knoten wählt? Die Anzahl der Knoten (dh die Basisabmessung) ist fest und kann während der Modellanpassung nicht geändert werden. Was der GCV-Score in der Funktion gam () "automatisch" tut, ist nicht die Auswahl der Basisdimension k, wie Ira S sagt, sondern die Auswahl des glatten Niveaus jedes Basis-Splines durch Einführung einer Wigliness-Strafe in den Minimierer oder das Anpassungsziel. Um die Anzahl der Knoten k zu wählen, sollten Sie einen Wert verwenden, der größer ist als die Anzahl der erwarteten Freiheitsgrade. Zitieren der Hilfe von wählen.k: "Die genaue Wahl von k ist im Allgemeinen nicht kritisch: Es sollte so gewählt werden, dass es groß genug ist, dass Sie sicher genug Freiheitsgrade haben, um die zugrunde liegende 'Wahrheit' einigermaßen gut, aber klein genug darzustellen angemessene Recheneffizienz aufrechtzuerhalten ". Erhöhen Sie also k in großen Schritten, bis Sie beispielsweise keine Änderungen in Ihrem Diagramm sehen. Zusammenfassend: Es gibt nichts Besseres als eine "automatische" Wahl für k, wie Ira S sagt, sollte der BenutzerWählen Sie immer einen Wert als Teil des Modelldesigns. Andernfalls passen Sie höchstwahrscheinlich nicht zu Ihrem Modell!
quelle