Bu çıkarım problemi, değişim noktaları, anahtar noktaları, kırılma noktaları, kırık çizgi regresyonu, kırık çubuk regresyonu, bilinear regresyon, parçalı doğrusal regresyon, lokal lineer regresyon, parçalı regresyon ve süreksizlik modelleri gibi birçok isme sahiptir.
İşte artıları / eksileri olan değişim noktası paketlerine ve çalışılan örneklere genel bir bakış . Önceden değişiklik noktası sayısını biliyorsanız, mcp
pakete göz atın . İlk olarak, verileri simüle edelim:
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))
İlk probleminiz için sadece kesişen üç segment:
model = list(
y ~ 1, # Intercept
~ 1, # etc...
~ 1
)
library(mcp)
fit = mcp(model, df, par_x = "x")
Ortaya çıkan uyumu çizebiliriz:
plot(fit)
Burada, değişim noktaları çok iyi tanımlanmıştır (dar). Çıkarılan konumlarını ( cp_1
ve cp_2
) görmek için uygunluğu özetleyelim :
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
Nth order autoregression (zaman serisi için yararlı), vb. Modelleme dahil olmak üzere çok daha karmaşık modeller yapabilirsiniz . Sorumluluk reddi: Ben geliştiriciyim mcp
.