为什么'ns'和'rcs'在R中生成不同的预测?
我的理解是为什么'ns'和'rcs'在R中生成不同的预测?,r,linear-regression,spline,rms,R,Linear Regression,Spline,Rms,我的理解是rcs()(来自rms包)使用截断幂基来表示自然(受限)三次样条曲线。或者,我可以使用使用B样条基的ns()(来自spline包) 然而,我注意到训练配合和测试预测可能会非常不同(特别是当x被外推时)。我试图理解rcs()和ns()之间的区别,以及我是否可以互换使用这些函数 假非线性数据 库(tidyverse) 库(样条曲线) 图书馆(rms) 种子集(100) xx有一个相当简单的解释:knots不是rcs()的参数。它希望使用参数parms指定结。另一个问题是ns()的knots
rcs()
(来自rms
包)使用截断幂基来表示自然(受限)三次样条曲线。或者,我可以使用使用B样条基的ns()
(来自spline
包)
然而,我注意到训练配合和测试预测可能会非常不同(特别是当x
被外推时)。我试图理解rcs()
和ns()
之间的区别,以及我是否可以互换使用这些函数
假非线性数据
库(tidyverse)
库(样条曲线)
图书馆(rms)
种子集(100)
xx有一个相当简单的解释:knots
不是rcs()
的参数。它希望使用参数parms
指定结。另一个问题是ns()
的knots
参数没有指定默认为范围(x)
的“边界节点”。所以要得到同样的预测,你需要
trunc_power_mod <- ols(y ~ rcs(x, parms=c(min(x), -2, 0, 2, max(x))), data=df)
trunc\u power\u mod