线性关系后的三次关系

机器算法验证 r 回归 线性模型
2022-03-29 11:44:21

我现在在 R 中拟合线性回归,我发现有一个参数显示某个点之前的线性关系和该点之后的三次关系。

我所做的是参考该点分离整个数据集,并分别用参数值和三次值拟合模型。但是,该点是手动确定的。

这里有人知道如何用正式算法确定这一点吗?

2个回答

虽然您没有指定,但我假设您的意思是模型在连接处既连续又平滑。

这样的模型可能被称为半自然三次样条(一侧是自然的,另一侧是普通的)。您可以通过具有线性预测器和形式的三次样条基函数来构建一个,其中是节点位置,并且表示当参数为负时,输出为 0 , 而当它为非负数时,参数原样返回。(xk)+3k(.)+

例如,请参阅 Hastie、Tibshirani 和 Friedman 的“统计学习要素”第 2 版的第 5.2 节(第 10 版可从作者的至少两个网页下载)——请参阅此处的链接(如果没有看到,请向下滚动) .

您的问题简化为自动结选择之一(有时称为结放置)。Hastie等人确实讨论了这个结选择问题(以及它的问题,以及它的一些替代方案),这可能是一个很好的起点。有很多与这个问题相关的论文(一个例子在这里,虽然它目前可能不适合你参考)。


更简单地说,一个这样的结可以通过尝试各种点来打结;它相当于根据某些标准(例如 AIC)在可能的候选位置之间进行选择。但是,这与更普遍的模型选择具有相同的问题(再次,Hastie 等人可能是一个很好的起点,或者您可以阅读 Frank Harrell 的回归建模策略的第 4 章)。

您可能想研究交叉验证等方法。

当然,您总是可以将所寻求的点包含在您的优化问题中,但是,这通常会变得非线性,因此比正常的线性回归问题更难解决。

我认为一种标准方法是在计算之前分配一组点,然后在出现的区域中使用分段多项式(如果需要边界处的连续性,则使用样条)。通常,节点由所有数据点或数据点的子集确定。

或者,也可以使用像 CART(分类和回归树)这样的树模式(在叶子中使用广义线性模型)。用贪心算法逼近前面提到的优化问题。