分段回归:分段R包中断点检测的再现性问题

时间:2016-09-16 08:21:34

标签: r regression breakpoints piecewise reproducible-research

我试图在segmented包的帮助下对我的数据进行3次回归,我有点迷失了......

首先:这是一个可重复的例子:

y=c(520.0000, 620.0000, 653.3333, 853.3333, 1220.0000, 1553.3333, 1586.6667, 1586.6667, 1586.6667, 1586.6667, 1586.6667)
x=c(33320, 41020, 49020, 56920, 69220, 76320, 86320, 95420, 103720, 111520, 120320)
plot(y~x)
out=lm(y~x)

我的数据有2个可见的断点:

enter image description here

- 首先我尝试使用K = 2指定已知断点数:

mdl2=segmented(out, seg.Z =~x, psi=NA, control=seg.control(K=2,n.boot=0,it.max=500,stop.if.error=FALSE,display=T))
plot(mdl2)
points(y~x)

这给了我一个断点结果: enter image description here

- 但如果我设置2<K<8(错误的值......),我就能检测出正确数量的断点:

enter image description here

- 最后一点让我感到困惑:

如果设置K = 4,display = T选项会显示3个断点的结果,但在函数输出中我仍有两个断点...

enter image description here

******编辑于09/19/2016 ******

我也尝试直接指定psi,因为我在断点位置有一些先验(但这不是我的目标),而{{1}的结果仍然很糟糕} ...

对于某些回归,我在算法成功之前多次运行该函数以结束解决方案。此外,提出的解决方案通常具有可重现性问题......

有没有人知道如何有力地估算这些断点?看起来我的数据并不难以适应,不是吗?

0 个答案:

没有答案