三次回归样条的结选择

机器算法验证 回归 样条
2022-03-25 07:58:00

我想知道是否有人在使用三次回归样条曲线时如何设置结点的经验。

一些背景:我有一个响应变量和预测变量,我想确定两者之间的趋势关系。为了在不做太多假设的情况下查看它的外观,我使用gamR 中的函数拟合了平滑样条曲线。趋势显然不是线性的,但在其他方面表现良好:平滑且不太摆动。

我现在想使用一个简单的三次回归样条来模拟这种趋势(使用拟合存在各种实际问题gam,或者我只是使用它)。当然,使用回归样条需要提前指定节点。用线性样条线做到这一点并不难:我会在平滑拟合的斜率发生显着变化的地方插入一个结,例如在局部最小值/最大值附近。然而,三次样条似乎是一个更复杂的故事。任何关于我应该在哪里打结的指导将不胜感激。

2个回答

这是一个棘手的问题,大多数人只是通过反复试验来选择结。

一种越来越流行的方法是使用惩罚回归样条曲线。如果你有很多结,那么结选择几乎没有效果。对系数进行约束以避免任何系数太大。事实证明,这相当于样条系数是随机的混合效应模型。然后可以使用 REML 解决整个问题,而无需担心节点选择或平滑参数。

由于您使用 R,您可以使用SemiPar 包spm()中的函数拟合这样的模型

这取决于您所说的“不太摆动”是什么意思,但您可能想看看分数多项式,以获得一种更简单的方法来拟合非线性但不是“摆动”的平滑曲线。请参阅Royston & Altman 1994和 R 中的mfp 包或 Stata 中的fracpoly 命令