Bazı verilere bir satır + üstel eğri sığdırmaya çalışıyorum. Başlangıç olarak, bunu bazı yapay veriler üzerinde yapmaya çalıştım. Fonksiyon şu şekildedir :
nls()
işlevini kullandığımda, ilk etapta veri oluşturmak için kullandığım parametreleri kullandığım halde , korkunç " tekil gradyan matrisi ilk parametre tahminlerinde " hatası alıyorum.Farklı algoritmaları, farklı başlangıç değerlerini denedim
optim
ve karelerin kalan toplamını en aza indirmek için kullanmaya çalıştım , hepsi boşuna. Bunun olası bir nedeninin formülün aşırı parametrelenmesi olabileceğini okudum, ancak bunun olduğunu düşünmüyorum (öyle mi?) Bu sorunla ilgili bir önerisi olan var mı? Yoksa bu sadece garip bir model mi?
Kısa bir örnek:
#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)
Teşekkürler!