안녕하세요
nonlinear regression 관련 공부하면서 다시 궁금한 점이 있어서 문의드립니다.
현재 logistic 과 gompertz 비선형 곡선을 fitting하는 중입니다.
책에 있는 nls 로는 self-starter를 갖춘 4 parameter 함수가 없어서 drm 라이브러리를 활용해서
fitting 하고 있습니다.
그런데 한가지 궁금한 점은
결과가 표시 되었을때 NA라고 표시되는 부분입니다.
아래의 예를 들어서 질문하겠습니다.
아래는 self starter를 이용하여 gompertz curve를 fitting 해서 얻은 결과입니다.
> gom2.USA <- drm(USA~ YEAR, data = le, fct=G.4())
> summary(gom2.USA)
Model fitted: Gompertz (4 parms)
Parameter estimates:
Estimate Std. Error t-value p-value
b:(Intercept) -9.5488e-02 1.0000e+01 -9.5487e-03 0.9924
c:(Intercept) 8.9565e+01 1.0000e+01 8.9565e+00 0.0000
d:(Intercept) 7.4093e+01 3.8951e-01 1.9022e+02 0.0000
e:(Intercept) -1.0017e+04 1.0000e+01 -1.0017e+03 0.0000
Residual standard error:
2.76981 (47 degrees of freedom)
위와 같은 경우는 b가 significant 하지 않기 때문에 (growth rate) 결론적으로 fitting 에 실패한 케이스가
그래프를 그려보면 그냥 수평선 하나로 표시가 됩니다. 그래서 logistic 함수를 기준으로 해서 비슷한 starting value를 넣어서 시작해봤습니다. 그랬더니 아래와 같이 결과가 나왔습니다.
> gom.USA <- drm(USA~ YEAR, data = le, fct=G.4(), start=c(-0.060925, 65.605704,79.382029, 1975.764904))
> plot(gom.USA)
> summary(gom.USA)
Model fitted: Gompertz (4 parms)
Parameter estimates:
Estimate Std. Error t-value p-value
b:(Intercept) -0.032714 NA NA NA
c:(Intercept) 63.571919 NA NA NA
d:(Intercept) 81.671485 0.541798 150.741684 0
e:(Intercept) 1964.750551 NA NA NA
Residual standard error:
0.3746205 (47 degrees of freedom)
경고 메시지가 손실되었습니다
In sqrt(diag(varMat)) : 계산결과가 NaN가 생성되었습니다
>
Root MSE도 상당히 작아졌고 더 나은 fitting 으로 보입니다. 하지만 estimate value는 있지만 std 값도 안나오고 p value도 표시가 안됩니다. 하지만 그래프를 그려보면 이번에는 비선형으로 표시가 됩니다.
s.e. 가 를 구해내지 못하니...forecast 값도 CI 없이 나오고요...
이런경우는 curve fitting 이 성공했다고 해야 될지...
아니면 curve fitting 에 실패했다고 해야할지....
어떻게 결론 내는 것이 맞을까요?
standard error 나 p-value는 구할 수 없다고 결론 내야 하는지도 궁금합니다.
답변 부탁드립니다.
읽어 주셔서 감사합니다.