如何将与三次样条曲线拟合的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()将为自然三次样条生成B样条基础矩阵。因此,该模型y针对x使用三个自由度的B样条回归。这样的模型的方程是什么样的?


2
尽管这里关注的是这个问题,但是R除非以解释为中心,否则这个问题会以一种以中心为中心的方式被过多提及,因此属于SO ns。(它甚至不是一部分R:它来自什么包装?)
whuber

1
@whuber,请参阅此处:?ns ; ns()是样条线包的一部分。我知道这个问题是用R术语提出的,但我的观点是,它在这里很热门。
gung-恢复莫妮卡

@gung是的,我也能够找到该软件包,但这不是重点:要使此问题保留在这里,即使对于非R用户也应使其易于理解。
whuber

1
@whuber我添加了一些解释。您还在寻找这个吗?
恢复莫妮卡-G.辛普森

2
@Gavin谢谢。我随意增加了一行,以便非R用户可以理解所要询问的内容(因此可能会提供有意义的答案)。
ub

Answers:


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相反),这将解释一般而言,如何确定样条方程式。
ub

谢谢!您能解释为什么f产生的系数与fit产生的系数不同吗?
AmeliaBright

2
样条曲线有不同的基函数表示形式。 ns生成难以解释的正交(不相关)项,而rcs使用易于在等式中表示的截断幂基础。想想这个例子:您可能有一个和的模型,或者您可以拟合和。后者的术语将是正交的,但很难用原始变量来解释。X 2 X - ˉ XX - ˉ X2XX2XX¯(XX¯)2
Frank Harrell 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.