首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中使用非线性函数的分段非线性回归

R中使用非线性函数的分段非线性回归
EN

Stack Overflow用户
提问于 2012-02-24 11:18:07
回答 2查看 2.4K关注 0票数 1

我希望使用具有多个断点的非线性函数来分段执行回归。我已经做了分段线性回归,但是当涉及到指定任何类型的非线性函数时,我们如何在R中设置?

具体地说,我对使用两个断点的3个函数线性、指数和指数感兴趣。请指教

卡尔蒂克

EN

回答 2

Stack Overflow用户

发布于 2012-02-24 12:10:49

使用nls() (非线性最小二乘)能解决你的问题吗?我使用了一个类似的公式,通过为每个“块”添加True/False语句:

代码语言:javascript
复制
reg = nls( y ~ (Z < 0.33) * a + (Z < 0.33) * Z * b +
        (Z >= 0.33 & Z < 0.67) * Z ^ a2 +
        (Z >= 0.67) * a3 + (Z >= 0.67) * Z * a4,
        start = list(a = 0, b = 50, a2 = 100, a3 = 150, a4 = 80),
        data = yourdata)

在上面的样式化示例中,断点位于Z= 0.33和Z= 0.67。如果你可以更具体,或者分别提供三个回归的代码,我可以让我的答案更具体。

票数 3
EN

Stack Overflow用户

发布于 2012-02-24 12:37:16

我的建议是加载“样条线”包,然后在help(bs)中运行示例。您可以使用线性回归机器获得分段三次(但在节点处连续)拟合。Harrell在他的“rms”包中使用了这种策略,取得了很好的效果。加载“rms”并查看help(rcs)。该页面上的示例使用了他的逻辑回归实现,但rcs()术语也适用于ols()cph()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9424891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档