B-Spline-Verwirrung
Merke ich, dass es Beiträge zum Thema B-Splines auf diesem board, aber die haben eigentlich hat mich mehr verwirrt, so dass ich dachte, jemand könnte in der Lage sein, mir zu helfen.
Ich habe simulierten Daten für x-Werte im Intervall von 0 bis 1. Ich möchte fit für meine Daten eine kubische spline (degree = 3
) mit Knoten an 0, 0.1, 0.2, ... , 0.9, 1. Ich würde auch gerne die B-Spline-basis-und OLS-parameterschätzung (ich bin nicht auf der Suche nach bestraft splines).
Ich glaube, ich brauche die bs
Funktion aus der spline
- Paket, aber ich bin mir nicht ganz sicher und ich weiß auch nicht, was genau füttern.
Ich würde auch gern zeichnen Sie die resultierende Polynom-spline.
Dank!
Das ist genau, was
bs
tut, ist es nicht? Kubische Polynome von Grad 3 (standardmäßig) ausgestattet, die zwischen den Knoten mit der Bedingung, dass die einzelnen Stücke join sanft auf die Knoten?Ich nehme an, für ein gewisses Verständnis für das problem. Ich dachte, was war gefragt, war für eine kubische Polynomische fit über den gesamten Bereich der Daten. Ansonsten einfach ausführen triviale änderungen, um den Beispiel-code auf der
?bs
Seite scheint vollständig auf die Frage: lm(weight ~ bs(height, df = 3, knots=c(58, 62, 66, 70, 72), ), data = women)
InformationsquelleAutor user2249626 | 2013-04-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie die
bs()
Funktion in einer Formel zulm
wie Sie wollen OLS-Schätzungen.bs
bietet die basis-Funktionen an, wie der Knoten, den Grad des Polynoms etc.Können Sie Sie behandeln, genau wie bei einem linearen Modell.
Einige Zeiger auf Knoten-Platzierung.
bs
hat ein argumentBoundary.knots
mit Standard -Boundary.knots = range(x)
- also, wenn ich angegeben dasknots
argument oben, ich habe nicht die Grenze Knoten.Lesen
?bs
für weitere Informationen.Herstellung von einem Grundstück an der angepasste spline weist
In die Kommentare, die ich diskutieren, wie man die montiert spline. Eine option ist die Reihenfolge der Daten in Bezug auf die kovariate. Dies funktioniert gut für eine einzelne kovariable, müssen aber nicht die Arbeit für 2 oder mehr kovariablen. Ein weiteres Problem ist, dass Sie können nur bewerten, der angepasste spline weist auf die beobachteten Werte von
x
- das ist in Ordnung, wenn Sie dicht Stichprobe der kovariable, aber wenn nicht, wird der spline kann seltsam Aussehen, mit langen, linearen Abschnitten.Einer Allgemeinen Lösung ist die Verwendung
predict
um Vorhersagen zu generieren aus dem Modell für den neuen Werten der kovariable oder kovariablen. Im code unten habe ich zeigen, wie dies für das Modell oben, die Vorhersage für 100 äquidistanten Werten im Bereich vonx
.Produziert
wenn Ihre Daten sind nicht geordnet
x
dann die Einbauküche-Werte werden nicht in der Reihenfolge derx
und damit, was OK aussieht, als aufgetragen überpoints
ist ein spaghetti-Chaos beim Plotten mitlines
. Zwei Optionen; i) die einfachste ist, einfach zu Sortieren Sie Ihre Daten vor der Montage das Modell, oder ii) die Verwendungpredict
auf das Modell der Lieferung von neuenx
Werte alsseq(min(x), max(x), length = 100)
. Dann zeichnen, die.Sorry, ich bin ein neuer R Benutzer. Was genau meinst du mit Sortieren? Legen Sie die x,y-Paare in einer matrix und Sortieren Sie diese matrix von der x-Spalte?
ja, auch in einem Daten-frame und Sortieren die Paare. Ich zeige dir, dass nach dem Mittagessen... Überprüfen Sie zurück für ein Bearbeiten in 30 Minuten oder so.
Ich musste ein wenig darüber nachdenken. Ich bin die Sortierung der Daten-frame wie folgt: df <- Daten.frame(x,y) df_ordered <- df[order(df$x),]. Dann passte ich das Modell wie folgt: mod <- lm(df_ordered$y~bs(df_ordered$x,Knoten=seq(0.1,0.9, by=0.1))). Dann füge ich den spline zu meinem scatterplot: Linien(df_ordered$x,fitted(mod)) dies Wäre der richtige Weg der Montage und die Anzeige der Polynom-spline aus?
InformationsquelleAutor Gavin Simpson
Basiert auf dem Beispiel in der Antwort, ein einfacher Weg, um eine Darstellung der angepasste spline weist wäre, um die
effects
Paket.Dann können Sie
Anova
auscar
:Und Sie können ganz einfach zeichnen Sie die angepasste spline weist mit
effects
Paket.Die Ausgabe:
Siehe auch:
InformationsquelleAutor landroni