Tüm olasılıkları arayan MBQ'nun cevabı üzerine inşa ettim. Ayrıca, bunu:
- Katsayıların önemli olduğundan emin olmak için iki parçalı modelin önemini kontrol edin
- Tam model için kare artıkların toplamı arasındaki farkı kontrol edin
- Modelimi görsel olarak onayla (saçma bir şey olmadığından emin ol)
Önemini neden kontrol etmeliyim? Çünkü parçalı modellerden herhangi biri verilere çok kötü uyuyorsa minimum SSE'ye sahip olan nokta anlamsızdır. Bu, eğimlerin değiştiği net bir kesme noktası olmadan yüksek derecede ilişkili iki değişken için olabilir.
Bu basit yaklaşımı kolay bir test senaryosuyla kontrol edelim:
x <- c(-50:50)
y <- abs(x)
plot(x,y,pch=19)
Kesme noktası sıfırdır. Aşağıdaki R komut dosyasını kullanın:
f <- function(x, y)
{
d <- data.frame(x=x, y=y)
d <- d[order(x),]
r <- data.frame(k=rep(0,length(x)-4), sums=rep(0,length(x)-4))
plm <- function(i)
{
d1 <- head(d,i)
d2 <- tail(d,-i)
# Make sure we've divided the region perfectly
stopifnot(nrow(d1)+nrow(d2) == nrow(d))
m1 <- lm(y~x, data=d1)
m2 <- lm(y~x, data=d2)
r <- list(m1, m2)
r
}
lapply(2:(nrow(d)-3), function(i)
{
r$k[i-2] <<- d[i,]$x
# Fit two piecewise linear models
m <- plm(i)
# Add up the sum of squares for residuals
r$sums[i-2] <<- sum((m[[1]]$residuals)^2) + sum((m[[2]]$residuals)^2)
})
b <- r[which.min(r$sums),]
b
}
Olası tüm kombinasyonlar için parçalı doğrusal modelleri takın:
f(x,y)
k sums
0 0
İki optimal model için katsayıları kontrol edersek, bunlar çok önemli olacaktır. R2 değerleri de çok yüksek olacaktır.