2015-01-17 7 views
1

R의 Segmented 패키지를 사용하여 세그먼트 회귀 모델을 구축하고 있습니다. 모델을 만들 수 있었지만 predict.segmented 함수를 사용하는 데 문제가있었습니다. R segmented regression predict에서 오류가 발생합니다. "subscript out of bounds"

1: predict.segmented(seg_model, xtest) 

는 내가 제공하는 간단한 사건을 만들어 :

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

역 추적이 바로이 제공 : 항상

이 정확한 오류 메시지입니다 "첨자 범위를 벗어났습니다"라는 오류가 발생합니다 같은 오류 :

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에 익숙하지 않고 이것을 디버깅하는 방법을 모르고있다. 어떤 도움을 주셔서 감사합니다!

답변

2

predict.segemented 잘못 사용하고 있습니다. 거의 모든 predict() 함수처럼 newdata 매개 변수는 벡터가 아닌 data.frame이어야합니다. 또한 회귀에 사용 된 변수와 이름이 일치해야합니다. 시도해보십시오

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

대신에. 처음으로 함수를 사용할 때 각 매개 변수에 대해 함수가 예상하는 내용을 확인하려면 도움말 페이지 (?predict.segmented)를 읽어야합니다.

+1

이 질문에 답하는 데 드는 시간보다 적습니다. :) 감사합니다! (10 분 이내에 답변을 수락 할 수 없음) –