我怎样才能从稳定分段()函数断点?

问题描述 投票:1回答:1

我发现断点从breakpoints()strucchange功能。我的解释变量是纬度和响应变量是β-多样性值。

然后,我用这些断点,以适应回归线,并与来自segmented()segmented绘制。分段提供断点估计,当我再次运行该功能改变。然而,从断点功能断点不会改变。我想,断点与更大的数据集的改变,因为我的。我要报这些断点。

我怎样才能稳定从segmented()功能断点?

从分段函数断点不小的数据集的改变,因为你在这个例子中看到。

我用同样的示例代码。

例:

set.seed(12)
xx <- 1:100
zz <- runif(100)
yc <- 2+1.5*pmax(xx-35,0)-1.5*pmax(xx-70,0)+15*pmax(zz-.5,0)+
  rnorm(100,0,2)+1.5*pmax(xx-20,0)+15*pmax(zz-.2,0)+
  rnorm(100,0,2)
plot(xx, yc)
# Seeking breakpoints
varbp <- breakpoints(yc ~ xx)
bp <- xx[varbp$breakpoints]
# Using segmented to fit regression line 
modvars <- lm(yc ~ xx)   
seg.var <- segmented(modvars, seg.Z = ~xx, psi = c(25,78))
summary(seg.var) 
#  Estimated Break-Point(s):
#    Est. St.Err
#  psi1.xx 25.694  1.240
#  psi2.xx 72.786  2.086
# Plotando
plot(seg.var, add = T) 
abline(v=25.694, col="green", lwd = 2)
abline(v = 72.786, col="green", lwd = 2)
r breakpoints
1个回答
0
投票

从文档:

由于分段版本0.2-9.0实现了木材(2001年)中描述的引导重启算法。自举重启预期逃脱目标函数的局部最优当分段关系是平坦的。通知自举重启不管收费只影响内环内收敛的运行n.boot迭代。

由于引导默认情况下使用,这并不奇怪(虽然它让我吃惊过,当我碰到了同样的问题),通过segmented()检测断点并不稳定。

该文档描述的方式来抑制自举。这可以通过使用这样的n.boot参数来完成:

seg.var <- segmented(modvars, seg.Z = ~xx, psi = c(25,78), 
  control = seg.control(n.boot=0))

希望这有助于。干杯!

© www.soinside.com 2019 - 2024. All rights reserved.