Saya memiliki beberapa data dasar tentang pengurangan emisi dan biaya per mobil:
q24 <- read.table(text = "reductions cost.per.car
50 45
55 55
60 62
65 70
70 80
75 90
80 100
85 200
90 375
95 600
",header = TRUE, sep = "")
Saya tahu bahwa ini adalah fungsi eksponensial, jadi saya berharap dapat menemukan model yang cocok dengan:
model <- nls(cost.per.car ~ a * exp(b * reductions) + c,
data = q24,
start = list(a=1, b=1, c=0))
tapi saya mendapatkan kesalahan:
Error in nlsModel(formula, mf, start, wts) :
singular gradient matrix at initial parameter estimates
Saya telah membaca banyak pertanyaan tentang kesalahan yang saya lihat dan saya temui bahwa masalahnya mungkin karena saya membutuhkan nilai yang lebih baik / berbeda start
( initial parameter estimates
masuk akal sedikit) tetapi saya tidak yakin, mengingat data yang saya miliki, bagaimana saya akan memperkirakan parameter yang lebih baik.
exp(50)
dan exp(95)
dengan nilai-y pada x = 50 dan x = 95. Jika Anda menetapkan c=0
dan mengambil log y (membuat hubungan linier), Anda dapat menggunakan regresi untuk mendapatkan taksiran awal untuk log ( ) dan yang akan mencukupi untuk data Anda (atau jika Anda mencocokkan sebuah baris dengan sumbernya, Anda dapat meninggalkan at 1 dan cukup gunakan estimasi untuk ; itu juga cukup untuk data Anda). Jika jauh di luar interval yang cukup sempit di sekitar kedua nilai tersebut, Anda akan mengalami beberapa masalah. [Atau coba algoritma lain]b a b b