간단한 전력 법칙 모델을 다음과 같은 데이터 세트에 맞추려고합니다.
mydf
:
rev weeks
17906.4 1
5303.72 2
2700.58 3
1696.77 4
947.53 5
362.03 6
목표는 전력선을 통과시켜 rev
향후 몇 주 동안 vlaues 를 예측하는 데 사용하는 것입니다. 많은 연구 결과에 nls
따라 다음과 같이 구현되었습니다.
newMod <- nls(rev ~ a*weeks^b, data=modeldf, start = list(a=1,b=1))
predict(newMod, newdata = data.frame(weeks=c(1,2,3,4,5,6,7,8,9,10)))
이것은 lm
모델에서 작동하지만 singular gradient
오류가 발생합니다. 이는 시작 값 a
과 관련 이 있음을 이해합니다 b
. 나는 Excel에서 이것을 플롯하고 고독을 전달하고 방정식을 얻은 다음 방정식의 값을 사용하기까지 다른 값을 시도했지만 여전히 오류가 발생합니다. 나는 이 답변과 같은 많은 답변을보고 두 번째 답변을 시도했지만 (첫 번째는 이해할 수 없었습니다) 결과는 없었습니다.
올바른 시작 값을 찾는 방법에 대한 도움말을 사용할 수 있습니다. 또는 대안으로 nls 대신 사용할 수있는 다른 기능은 무엇입니까?
mydf
쉽게 다시 만들고 싶을 경우 :
mydf <- data.frame(rev=c(17906.4, 5303.72, 2700.58 ,1696.77 ,947.53 ,362.03), weeks=c(1,2,3,4,5,6))