Vấn đề suy luận này có nhiều tên, bao gồm điểm thay đổi, điểm chuyển đổi, điểm ngắt, hồi quy đường gãy, hồi quy thanh gãy, hồi quy song tuyến, hồi quy tuyến tính piecewise, hồi quy tuyến tính cục bộ, hồi quy phân đoạn và mô hình gián đoạn.
Dưới đây là tổng quan về các gói điểm thay đổi với ưu / nhược điểm và ví dụ hoạt động. Nếu bạn biết số lượng điểm thay đổi một ưu tiên, hãy kiểm tra mcp
gói. Đầu tiên, hãy mô phỏng dữ liệu:
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))
Đối với vấn đề đầu tiên của bạn, đó là ba phân đoạn chỉ chặn:
model = list(
y ~ 1, # Intercept
~ 1, # etc...
~ 1
)
library(mcp)
fit = mcp(model, df, par_x = "x")
Chúng ta có thể vẽ sơ đồ phù hợp với kết quả:
plot(fit)
Ở đây, các điểm thay đổi được xác định rất rõ (hẹp). Hãy tóm tắt sự phù hợp để xem các vị trí được suy luận của họ ( cp_1
và 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
Bạn có thể thực hiện các mô hình phức tạp hơn nhiều mcp
, bao gồm mô hình tự động theo thứ tự Nth (hữu ích cho chuỗi thời gian), v.v. Tuyên bố miễn trừ trách nhiệm: Tôi là nhà phát triển mcp
.