r - 如何在同一数据中拟合两个线性回归?

标签 r statistics

可能听起来很愚蠢,但假设我有:

x = c(1:10)
y = c(2,4,6,8,10,12,12.5,13,13.5,14)

散点图如下所示:

enter image description here

我不想拟合一个线性回归,而是想拟合两个线性回归方程。 1 当 x > a 且 eq.当 x <= a 时为 2。还可以找到斜率变化时的a值。在此示例中,通过视觉分析,a 约为 6,但有没有办法更自动地找到它?

我正在寻找的是这样的:

enter image description here

最佳答案

CRAN 包 segmented非常适合此类问题。使用起来甚至很简单。首先拟合线性模型,然后得到分段拟合。

library(segmented)

x <- 1:10
y <- c(2,4,6,8,10,12,12.5,13,13.5,14)

fit <- lm(y ~ x)
segfit <- segmented(fit)

现在是断点。 segfit$psi[2] 是断点。

segfit$psi
#       Initial Est.       St.Err
#psi1.x     5.5    6 6.452643e-16

摘要提供了更多信息。

summary(segfit)

并绘制图表。

plot(x, y)
plot(segfit, add=TRUE)

enter image description here

关于r - 如何在同一数据中拟合两个线性回归?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58987527/

相关文章:

r - dplyr 之间如何工作?

c++ - RInside C++ 入门

html - 如何在不使用 Javascript 的情况下跟踪有多少用户点击了我网站上的特定按钮?

r - 估计 Cohen's d 的效果大小

java - 有没有javascript的统计库?

r - 在小标题的不同级别应用函数

r - 在 R 中将字符编码为 HTML,CRAN 方式

r - ggplot2 中颜色参数和 aes 颜色有什么不同?

r - 分析 R : Linear, 岭回归中的相关数据,PCR

python - Python 中的验证性因素分析