R segmented regression predict gives error: "subscript out of bounds"

R segmented regression predict gives error: "subscript out of bounds"

我正在使用 R 的分段包构建分段回归模型。 我能够创建模型,但在使用 predict.segmented 函数时遇到问题。它总是抛出一个错误说 "subscript out of bounds"

这是确切的错误消息:

Error in newdata[[nameZ[i]]] : subscript out of bounds

Traceback 给出了这个:

1: predict.segmented(seg_model, xtest)

我创建了一个给出相同错误的简单案例:

require(segmented)

x = c(1:90, 991:1000)
y = c((x[1:10]/2), (x[11:100]*2))

lm_model = lm(y~x)

seg_model = segmented(lm_model, seg.Z=~x, psi=list(x=NA), 
                      control=seg.control(display=FALSE, K=1, random=TRUE))

xtest = c(1:1000)
predict.segmented(seg_model, xtest)

我开始认为这可能是一个错误。我是 R 的新手,也不确定如何调试它。感谢您的帮助!

您使用的 predict.segemented 不正确。与几乎所有 predict() 函数一样,您的 newdata 参数应该是 data.frame,而不是矢量。此外,它的名称需要与回归中使用的变量相匹配。尝试

predict.segmented(seg_model, data.frame(x=xtest))

相反。第一次使用函数时,请务必阅读帮助页面 (?predict.segmented) 以了解函数对每个参数的期望。