일부 데이터에 선 + 지수 곡선을 맞추려고합니다. 처음에는 인공 데이터에 대해이 작업을 시도했습니다. 함수는 다음과 같습니다. 선형 섹션과 추가 수평 이동 매개 변수 ( m ) 가있는 지수 곡선입니다 . 그러나 R의 함수를 사용하면 처음에 데이터를 생성하는 데 사용한 것과 동일한 매개 변수를 사용하더라도 " 초기 매개 변수 추정치에서 단일 특이 적 기울기 행렬 "오류가 발생합니다. 다른 알고리즘, 다른 시작 값을 시도하고 사용하려고했습니다.
nls()
optim
잔차 제곱합을 최소화하기 위해 모두 소용이 없습니다. 나는 이것이 가능한 이유가 공식을 과도하게 매개 변수화 할 수 있다는 것을 읽었지만 그럴 것이라고 생각하지 않습니다 . 그렇습니다.이 문제에 대한 제안이 있습니까? 아니면 이것은 어색한 모델입니까?
간단한 예 :
#parameters used to generate the data
reala=-3
realb=5
realc=0.5
realr=0.7
realm=1
x=1:11 #x values - I have 11 timepoint data
#linear+exponential function
y=reala + realb*realr^(x-realm) + realc*x
#add a bit of noise to avoid zero-residual data
jitter_y = jitter(y,amount=0.2)
testdat=data.frame(x,jitter_y)
#try the regression with similar starting values to the the real parameters
linexp=nls(jitter_y~a+b*r^(x-m)+c*x, data=testdat, start=list(a=-3, b=5, c=0.5, r=0.7, m=1), trace=T)
감사!