Wie man die Ausgabe einer lm () - Anpassung mit einem kubischen Spline in eine Regressionsgleichung übersetzt

12

Ich habe etwas Code und Ausgabe, und ich möchte ein Modell konstruieren. Ich weiß nicht, wie ich mit dieser Ausgabe ein Modell konstruieren soll:

 require("splines")
 x   <- c(0.2,   0.23,   0.26,   0.29,   0.33,   0.46,    0.53 )
 y   <- c(0.211, 0.2026, 0.2034, 0.2167, 0.2177, 0.19225, 0.182)
 fit <- lm(y ~ ns(x,3))
 summary(fit)

Beachten Sie, dass ns()die B-Spline-Basismatrix für einen natürlichen kubischen Spline generiert wird. Somit regressiert dieses Modell ygegen einen B-Spline für die xVerwendung von drei Freiheitsgraden. Wie würde die Gleichung für ein solches Modell aussehen?

AmeliaBright
quelle
2
Obwohl dieses Anliegen hier von Interesse ist, wird diese Frage zu sehr auf den RPunkt gebracht - und gehört daher zu SO - es sei denn, Sie erläutern, was nsgeschieht. (Es ist nicht einmal Teil von R: Aus welchem ​​Paket kommt es?)
whuber
1
@whuber, siehe hier:? ns ; ns()ist Teil des Splines-Pakets. Ich erkenne, dass diese Frage in R-Begriffen formuliert ist, aber ich bin der Meinung, dass sie hier zum Thema gehört.
gung - Wiedereinsetzung von Monica
@gung Ja, ich konnte das Paket auch finden, aber das ist nicht der Punkt: Damit diese Frage hier bleibt, muss sie auch für Nicht-R-Benutzer verständlich gemacht werden.
Whuber
1
@whuber Ich habe ein wenig Erklärung hinzugefügt. Suchen Sie mehr davon?
Setzen Sie Monica - G. Simpson
2
@ Gavin Danke. Ich habe mir erlaubt, eine weitere Zeile hinzuzufügen, damit Nicht-R-Benutzer verstehen, was gefragt wird (und möglicherweise daher sinnvolle Antworten anbieten).
whuber

Antworten:

19
require(rms)
f <- ols(y ~ rcs(x, 3))  # 2 d.f. for x
Function(f)  # represent fitted function in simplest R form
latex(f)     # typeset algebraic representation of fit

RCS "Restricted Cublic Spline" ist eine weitere Darstellung eines natürlichen Spline.

Frank Harrell
quelle
5
Das ist beeindruckend. Aber ich denke, die Antwort, nach der man auf dieser Seite suchen würde (im Gegensatz zu SO), würde erklären, wie man im Allgemeinen die Gleichung eines Splines bestimmt.
whuber
Vielen Dank! Können Sie erklären, warum sich die von f erzeugten Koeffizienten von den von fit erzeugten Koeffizienten unterscheiden?
AmeliaBright
2
Für Splines gibt es unterschiedliche Basisfunktionsdarstellungen. nserzeugt orthogonale (nicht korrelierte) Terme, die schwerer zu interpretieren sind, während rcsdie abgeschnittene Potenzbasis verwendet wird, die in einer Gleichung einfach darzustellen ist. Denken Sie an dieses Beispiel: Sie könnten ein Modell mit habenX und X2 oder du könntest passen X-X¯ und (X-X¯)2. Die Begriffe des letzteren wären orthogonal, aber in Bezug auf Rohvariablen schwerer zu interpretieren.
Frank Harrell