R分段回归预测给出错误:“下标越界”

时间:2015-01-17 07:16:32

标签: r regression linear piecewise

我正在使用R的分段包构建分段回归模型。 我能够创建模型但是在使用predict.segmented函数时遇到了麻烦。它总是抛出一个错误,说"下标超出范围"

这是确切的错误消息:

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的新手,不知道如何调试它。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:2)

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

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

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