मैं एक "परिवर्तन बिंदु" विश्लेषण को लागू करने की कोशिश कर रहा हूं, या nls()
आर में उपयोग करके एक मल्टीफ़ेज़ प्रतिगमन ।
यहां मैंने कुछ नकली डेटा बनाए हैं । डेटा फिट करने के लिए मैं जिस सूत्र का उपयोग करना चाहता हूं वह है:
ऐसा करने वाला माना जाता है कि एक निश्चित अवरोधन और ढलान ( और ) के साथ डेटा को एक निश्चित बिंदु तक फिट किया जाता है , फिर, एक निश्चित x मान ( ) के बाद, ढलान को \ Beta_2 द्वारा संवर्धित करें । यही पूरी अधिकतम बात है। बिंदु से पहले , यह बराबर 0 होगा, और हो जाएगा।
तो, यहाँ यह करने के लिए मेरा कार्य है:
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
क्या मैंने सिर्फ दुर्भाग्यपूर्ण डेटा बनाया है? मैंने पहले वास्तविक डेटा पर इसे फिट करने की कोशिश की, और वही त्रुटि हो रही थी, और मुझे लगा कि मेरे शुरुआती शुरुआती पैरामीटर बहुत अच्छे नहीं थे।