इस इंफ़ेक्शन समस्या के कई नाम हैं, जिनमें परिवर्तन बिंदु, स्विच पॉइंट, ब्रेक पॉइंट, टूटी हुई रेखा प्रतिगमन, टूटी हुई छड़ी प्रतिगमन, बिलिनियर प्रतिगमन, टुकड़ा-रेखीय रेखीय प्रतिगमन, स्थानीय रेखीय प्रतिगमन, खंडित प्रतिगमन और विच्छेदन मॉडल शामिल हैं।
यहां पेशेवरों / विपक्षों और काम किए गए उदाहरणों के साथ परिवर्तन बिंदु पैकेजों का अवलोकन किया गया है। यदि आपको पता है कि परिवर्तन की संख्या एक प्राथमिकता बताती है, तो mcp
पैकेज देखें। सबसे पहले, डेटा का अनुकरण करते हैं:
df = data.frame(x = seq(1, 12, by = 0.1))
df$y = c(rnorm(21, 0, 5), rnorm(80, 180, 5), rnorm(10, 20, 5))
आपकी पहली समस्या के लिए, यह केवल तीन अवरोधन खंड हैं:
model = list(
y ~ 1, # Intercept
~ 1, # etc...
~ 1
)
library(mcp)
fit = mcp(model, df, par_x = "x")
हम परिणामी फिट की साजिश कर सकते हैं:
plot(fit)
यहां, परिवर्तन बिंदु बहुत अच्छी तरह से परिभाषित (संकीर्ण) हैं। आइए उनके उपयुक्त स्थानों ( cp_1
और cp_2
) को देखने के लिए फिट को संक्षेप में प्रस्तुत करें :
summary(fit)
Family: gaussian(link = 'identity')
Iterations: 9000 from 3 chains.
Segments:
1: y ~ 1
2: y ~ 1 ~ 1
3: y ~ 1 ~ 1
Population-level parameters:
name mean lower upper Rhat n.eff
cp_1 3.05 3.0 3.1 1 6445
cp_2 11.05 11.0 11.1 1 6401
int_1 0.14 -1.9 2.1 1 5979
int_2 179.86 178.8 180.9 1 6659
int_3 22.76 19.8 25.5 1 5906
sigma_1 4.68 4.1 5.3 1 5282
आप mcp
मॉडलिंग के साथ बहुत अधिक जटिल मॉडल कर सकते हैं , जिसमें मॉडलिंग नथ-ऑर्डर ऑटोरेजेशन (समय श्रृंखला के लिए उपयोगी), आदि शामिल हैं। अस्वीकरण: मैं इसका डेवलपर हूं mcp
।