Saya mencoba menyesuaikan garis + kurva eksponensial untuk beberapa data. Sebagai permulaan, saya mencoba melakukan ini pada beberapa data buatan. Fungsinya adalah: Ini secara efektif merupakan kurva eksponensial dengan bagian linier, serta parameter pergeseran horizontal tambahan ( m ). Namun, ketika saya menggunakan fungsi R saya mendapatkan kesalahan " singular gradient matrix pada estimasi parameter awal ", bahkan jika saya menggunakan parameter yang sama yang saya gunakan untuk menghasilkan data di tempat pertama. Saya sudah mencoba algoritma yang berbeda, nilai awal yang berbeda dan mencoba menggunakan
nls()
optim
untuk meminimalkan jumlah sisa kuadrat, semuanya sia-sia. Saya sudah membaca bahwa alasan yang mungkin untuk hal ini bisa menjadi parametris berlebihan formula, tetapi saya tidak berpikir itu (kan?) Apakah ada yang punya saran untuk masalah ini? Atau ini hanya model yang canggung?
Contoh singkat:
#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)
Terima kasih!