哪个R/Python包用于分段回归和自动断点检测

哪个R/Python包用于分段回归和自动断点检测,python,r,regression,piecewise,Python,R,Regression,Piecewise,我正在寻找R/Python包,它可以通过自动断点检测进行分段回归,报告线性段,并以自动方式找出线性段的系数(斜率/截距)。我更喜欢R包,但Python 2.7/3.X也可以。我的数据看起来与pic类似,但有数百个这样的数据集。 谢谢这里有一些关于change point软件包和的概述。尽管分段的软件包功能强大且应用广泛,但即使“被告知”,它也不会对拦截更改进行建模,因此要小心 然而,您的数据似乎非常规则,因此不需要推断包来检测变化点,因此也不需要斜率。变化点只是y大于前面y的x值。如果x是您的x

我正在寻找R/Python包,它可以通过自动断点检测进行分段回归,报告线性段,并以自动方式找出线性段的系数(斜率/截距)。我更喜欢R包,但Python 2.7/3.X也可以。我的数据看起来与pic类似,但有数百个这样的数据集。
谢谢

这里有一些关于change point软件包和的概述。尽管分段的软件包功能强大且应用广泛,但即使“被告知”,它也不会对拦截更改进行建模,因此要小心

然而,您的数据似乎非常规则,因此不需要推断包来检测变化点,因此也不需要斜率。变化点只是y大于前面y的x值。如果
x
是您的x坐标,
y
是您的y坐标:

cps = x[which(y > dplyr::lag(y, 1))]
为了举例说明,我模拟了一些数据,使其看起来像您的数据,并使用红线在顶部绘制了变化点:

# Simulate data
thresh = 6.95
x = seq(0, 1.5, by = 0.01)
y = c(6.98)  # starting
for (i in seq(length.out = length(x) - 1)) {
  y = c(y, y[i] -0.005)
  if (y[i+1] < thresh) {
    y[i+1] = y[i+1] + rnorm(1, 0.04, 0.01)
  }
}

# Detect change points and plot them
cps = x[which(y > dplyr::lag(y, 1))]
plot(x, y, type = "l")
abline(v = cps, col = "red")
#模拟数据
thresh=6.95
x=序列(0,1.5,by=0.01)
y=c(6.98)#起动
对于(i in-seq(length.out=长度(x)-1)){
y=c(y,y[i]-0.005)
if(y[i+1]dplyr::lag(y,1))]
绘图(x,y,type=“l”)
abline(v=cps,col=“红色”)

检测坡度现在只需在变化点上循环并计算每个线段的坡度。

您可以尝试。。如果你能提供一个例子,我们可以看看它是否工作正常