আমি "চেঞ্জ পয়েন্ট" বিশ্লেষণ, বা nls()
আর এর সাহায্যে একটি মাল্টিপেজ রিগ্রেশন বাস্তবায়নের চেষ্টা করছি
এখানে আমি তৈরি কিছু জাল তথ্য । ডেটা ফিট করার জন্য আমি যে সূত্রটি ব্যবহার করতে চাই তা হ'ল:
এটি যা করণীয় তা হ'ল একটি নির্দিষ্ট ইন্টারসেপ্ট এবং opeাল ( এবং β 1 ) দিয়ে একটি নির্দিষ্ট বিন্দু পর্যন্ত ডেটা ফিট করে , তারপরে, একটি নির্দিষ্ট এক্স মান ( δ ) পরে, ope ালকে β 2 দ্বারা বাড়িয়ে তোলা হয় । পুরো ম্যাক্স জিনিসটি এটাই। Δ পয়েন্টের আগে এটি 0 এর সমান হবে এবং β 2 শূন্য হবে।
সুতরাং, এখানে এটি করার জন্য আমার ফাংশনটি এখানে:
changePoint <- function(x, b0, slope1, slope2, delta){
b0 + (x*slope1) + (max(0, x-delta) * slope2)
}
এবং আমি মডেলটি এইভাবে ফিট করার চেষ্টা করি
nls(y ~ changePoint(x, b0, slope1, slope2, delta),
data = data,
start = c(b0 = 50, slope1 = 0, slope2 = 2, delta = 48))
আমি সেই সূচনা পরামিতিগুলি বেছে নিয়েছি, কারণ আমি জানি যে সেগুলি সূচনা পরামিতি, কারণ আমি ডেটা তৈরি করেছি।
তবে, আমি এই ত্রুটিটি পেয়েছি:
Error in nlsModel(formula, mf, start, wts) :
singular gradient matrix at initial parameter estimates
আমি কি দুর্ভাগ্যজনক ডেটা তৈরি করেছি? আমি প্রথমে আসল তথ্যগুলিতে এটি ফিট করার চেষ্টা করেছি এবং একই ত্রুটিটি পাচ্ছিলাম এবং আমি ঠিক বুঝতে পেরেছিলাম যে আমার প্রাথমিক প্রারম্ভিক প্যারামিটারগুলি যথেষ্ট ভাল নয়।