Comment traduire la sortie d'un ajustement lm () avec une spline cubique en une équation de régression

12

J'ai du code et des sorties, et je voudrais construire un modèle. Je ne sais pas comment construire un modèle en utilisant cette sortie:

 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)

Notez que ns()génère la matrice de base B-spline pour une spline cubique naturelle. Ainsi, ce modèle régresse ycontre une spline B pour l' xutilisation de trois degrés de liberté. À quoi ressemblerait l'équation d'un tel modèle?

AmeliaBright
la source
2
Bien que cette préoccupation soit intéressante ici, cette question est formulée de manière trop Rcentrée - et appartient donc à SO - sauf si vous expliquez ce qui le nsfait. (Cela ne fait même pas partie de R: de quel paquet vient-il?)
whuber
1
@whuber, voir ici:? ns ; ns()fait partie du package splines. Je reconnais que cette question est formulée en termes de R, mais mon avis est que c'est sur le sujet ici.
gung - Rétablir Monica
@gung Oui, j'ai également pu trouver le package, mais ce n'est pas le but: pour que cette question reste ici, elle doit être rendue intelligible même pour les utilisateurs non-R.
whuber
1
@whuber J'ai ajouté quelques explications mineures. Cherchez-vous plus que cela?
Rétablir Monica - G. Simpson
2
@Gavin Merci. J'ai pris la liberté d'ajouter une ligne de plus pour que les utilisateurs non-R puissent comprendre ce qui est demandé (et peut-être, par conséquent, offrir des réponses significatives).
whuber

Réponses:

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 "spline publique restreinte" est une autre représentation d'une spline naturelle.

Frank Harrell
la source
5
C'est impressionnant. Mais je pense que la réponse que l'on chercherait sur ce site (par opposition à SO) expliquerait comment, en général, on détermine l'équation d'une spline.
whuber
Je vous remercie! Pouvez-vous expliquer pourquoi les coefficients produits par f sont différents des coefficients produits par fit?
AmeliaBright
2
Il existe différentes représentations des fonctions de base pour les splines. nsgénère des termes orthogonaux (non corrélés) qui sont plus difficiles à interpréter alors qu'il rcsutilise la base de puissance tronquée qui est facile à représenter dans une équation. Pensez à cet exemple: vous pourriez avoir un modèle avec et ou vous pourriez adapter et . Les termes de ce dernier seraient orthogonaux mais plus difficiles à interpréter en termes de variables brutes. X 2 X - ˉ X ( X - ˉ X ) 2XX2XX¯(XX¯)2
Frank Harrell