Ich habe die Antworten auf diese Frage gelesen und sie sind sehr hilfreich, aber ich brauche Hilfe, insbesondere in R.
Ich habe einen Beispieldatensatz in R wie folgt:
x <- c(32,64,96,118,126,144,152.5,158)
y <- c(99.5,104.8,108.5,100,86,64,35.3,15)
Ich möchte ein Modell an diese Daten anpassen, damit y = f(x)
. Ich möchte, dass es ein Polynommodell 3. Ordnung ist.
Wie kann ich das in R machen?
Kann R mir außerdem helfen, das am besten passende Modell zu finden?
r
curve-fitting
data-analysis
polynomial-math
Mehper C. Palavuzlar
quelle
quelle
raw = T
? Es ist besser, nicht korrelierte Variablen zu verwenden.lm(y ~ x + I(x^2) + I(x^3))
. Vielleicht nicht optimal, nur zwei Mittel zum gleichen Zweck geben.Welches Modell das "am besten passende Modell" ist, hängt davon ab, was Sie unter "am besten" verstehen. R hat Tools, die Ihnen helfen können, aber Sie müssen die Definition für "am besten" angeben, um zwischen ihnen wählen zu können. Betrachten Sie die folgenden Beispieldaten und den folgenden Code:
Welches dieser Modelle ist das beste? Für jeden von ihnen könnten Argumente vorgebracht werden (aber ich würde den lila nicht für die Interpolation verwenden wollen).
quelle
In Bezug auf die Frage 'Kann R mir helfen, das am besten passende Modell zu finden' gibt es wahrscheinlich eine Funktion, um dies zu tun, vorausgesetzt, Sie können die Menge der zu testenden Modelle angeben, aber dies wäre ein guter erster Ansatz für die Menge von n-1 Gradpolynome:
Anmerkungen
Die Gültigkeit dieses Ansatzes auf Ihrer Ziele abhängen, die Annahmen
optimize()
und ,AIC()
und wenn AIC ist das Kriterium , dass Sie verwenden möchten,polyfit()
darf kein einziges Minimum haben. Überprüfen Sie dies mit etwas wie:Ich habe die
as.integer()
Funktion verwendet, weil mir nicht klar ist, wie ich ein nicht ganzzahliges Polynom interpretieren würde.Betrachten Sie zum Testen eines beliebigen Satzes mathematischer Gleichungen das von Andrew Gelman hier besprochene 'Eureqa'- Programm
Aktualisieren
Siehe auch die
stepAIC
Funktion (im MASS-Paket) zur Automatisierung der Modellauswahl.quelle
Der einfachste Weg, die beste Anpassung in R zu finden, besteht darin, das Modell wie folgt zu codieren:
Nach Verwendung der Step-Down-AIC-Regression
quelle
I(x^2)
usw. ergibt keine angemessen orthogonalen Polynome zum Anpassen.