小编rea*_*lub的帖子

逐行回归,在断点处连接一条直线和一条水平线

我想用一个断点进行分段线性回归,其中回归线的后半部分有slope = 0.有一些如何进行分段线性回归的例子,例如这里.我遇到的问题是我不清楚如何将模型的一半的斜率修正为0.

我试过了

lhs <- function(x) ifelse(x < k, k-x, 0)
rhs <- function(x) ifelse(x < k, 0, x-k)
fit <- lm(y ~ lhs(x) + rhs(x)) 
Run Code Online (Sandbox Code Playgroud)

k断点在哪里,但右边的段不是平面/水平段.

我想将第二段的斜率约束为0.我试过:

fit <- lm(y ~ x * (x < k) + x * (x > k))
Run Code Online (Sandbox Code Playgroud)

但是,我不知道如何让下半场得到零斜率.

任何帮助是极大的赞赏.


我自己的解决方案

由于下面的评论,我有一个解决方案.这是我用来优化然后绘制拟合的代码:

x <- c(1, 2, 3, 1, 2, 1, 6, 1, 2, 3, 2, 1, 4, 3, 1)
y <- c(0.041754212, 0.083491254, 0.193129615, 0.104249201, 0.17280516, 
0.154342335, 0.303370501, 0.025503008, …
Run Code Online (Sandbox Code Playgroud)

regression r linear-regression piecewise lm

5
推荐指数
2
解决办法
1299
查看次数

标签 统计

linear-regression ×1

lm ×1

piecewise ×1

r ×1

regression ×1