পরিবর্তনের পয়েন্টস, স্যুইচ পয়েন্টস, ব্রেক পয়েন্টস, ব্রেকড লাইনের রিগ্রেশন, ভাঙা স্টিক রিগ্রেশন, বিলিনিয়ার রিগ্রেশন, টুকরোচক লিনিয়ার রিগ্রেশন, লোকাল লিনিয়ার রিগ্রেশন, সেগমেন্টেড রিগ্রেশন এবং বিচ্ছিন্নতা মডেল সহ এই অনুমানের সমস্যার অনেক নাম রয়েছে।
পেশাদার / কনস এবং কাজের উদাহরণ সহ পরিবর্তন পয়েন্ট প্যাকেজগুলির একটি সংক্ষিপ্ত বিবরণ এখানে । যদি আপনি পরিবর্তনগুলির সংখ্যাটি একটি অগ্রাধিকার পয়েন্টটি জানেন তবে 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
।