Saya mencoba menerapkan analisis "titik perubahan", atau menggunakan regresi multifase nls()
dalam R.
Ini beberapa data palsu yang saya buat . Rumus yang ingin saya gunakan agar sesuai dengan data adalah:
Apa yang seharusnya dilakukan adalah menyesuaikan data hingga titik tertentu dengan intersep dan kemiringan tertentu ( dan β 1 ), kemudian, setelah nilai x tertentu ( δ ), tambahkan kemiringan tersebut dengan β 2 . Itulah inti dari semuanya. Sebelum titik δ , itu akan sama dengan 0, dan β akan di-nolkan.
Jadi, inilah fungsi saya untuk melakukan ini:
changePoint <- function(x, b0, slope1, slope2, delta){
b0 + (x*slope1) + (max(0, x-delta) * slope2)
}
Dan saya mencoba menyesuaikan model dengan cara ini
nls(y ~ changePoint(x, b0, slope1, slope2, delta),
data = data,
start = c(b0 = 50, slope1 = 0, slope2 = 2, delta = 48))
Saya memilih parameter awal tersebut, karena saya tahu itu adalah parameter awal, karena saya membuat data.
Namun, saya mendapatkan kesalahan ini:
Error in nlsModel(formula, mf, start, wts) :
singular gradient matrix at initial parameter estimates
Apakah saya baru saja membuat data yang tidak menguntungkan? Saya mencoba memasang ini pada data nyata terlebih dahulu, dan mendapatkan kesalahan yang sama, dan saya baru saja mengetahui bahwa parameter awal saya tidak cukup baik.