3次スプラインを使用したlm()フィットからの出力を回帰式に変換する方法


12

いくつかのコードと出力があり、モデルを構築したいと思います。この出力を使用してモデルを構築する方法がわかりません:

 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)

ns()自然な3次スプラインのBスプライン基底行列を生成することに注意してください。したがって、このモデルyx、3自由度を使用するBスプラインに対して回帰します。そのようなモデルの方程式はどのようになりますか?


2
この懸念はここでは興味深いものですが、この質問はR-中心的な方法であまりにも多く述べられているため、何をするのかを説明しない限り、SOに属しますns。(それは一部ではありませんR:どのパッケージからのものですか?)
whuber

1
@whuber、こちらをご覧ください:?ns ; ns()スプラインパッケージの一部です。私はこの質問がRの用語で表現されていることを認識していますが、私の意見では、ここで話題になっていると思います。
GUNG -復活モニカ

@gungはい、私もパッケージを見つけることができましたが、それはポイントではありません。この質問をここにとどめるには、R以外のユーザーでも理解できるようにする必要があります。
ウーバー

1
@whuberちょっとした説明を追加しました。これ以上探していますか?
復帰モニカ-G.シンプソン

2
@Gavinありがとう。R以外のユーザーが何を求められているのかを理解できるように(そして、おそらく、意味のある答えを提供できるように)、もう1行追加する自由を取りました。
whuber

回答:


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 "制限付き立方スプライン"は、自然なスプラインの別の表現です。


5
それは印象的です。しかし、このサイトで(SOとは対照的に)求める答えは、一般に、スプラインの方程式を決定する方法を説明すると思います。
whuber

ありがとうございました!fによって生成される係数がfitによって生成される係数と異なる理由を説明できますか?
アメリアブライト

2
nsrcsバツバツ2バツバツ¯バツバツ¯2
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.