【问题标题】:R segmented regression predict gives error: "subscript out of bounds"R分段回归预测给出错误:“下标超出范围”
【发布时间】:2015-01-17 07:16:31
【问题描述】:

我正在使用 R 的 Segmented 包构建分段回归模型。 我能够创建模型,但无法使用 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 新手,也不知道如何调试它。任何帮助表示赞赏!

【问题讨论】:

    标签: r regression linear-regression piecewise


    【解决方案1】:

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

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

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

    【讨论】:

    • 你回答这个问题的时间比我写这个问题的时间要少:) 谢谢! (似乎无法在不到 10 分钟内接受答案)
    猜你喜欢
    • 2021-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多