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
) 以了解函数对每个参数的期望。
我正在使用 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
) 以了解函数对每个参数的期望。