To jest bardziej odpowiedź na komentarz @ PeterFlom dotyczący mojego komentarza, ale jest zbyt duży, aby zmieścić się w komentarzu (i odnosi się do pierwotnego pytania).
Oto kod R do pokazania przypadek, w którym istnieje wiele wierszy, z których wszystkie podają te same minimalne wartości MAD / SAD.
Pierwsza część przykładu to wyraźnie wymyślone dane do zademonstrowania, ale koniec zawiera więcej losowego elementu, aby to wykazać ogólna koncepcja będzie nadal obowiązywać w bardziej realistycznych przypadkach.
x <- rep (1:10, each = 2) y <- x / 10 + 0: 1plot (x, y) sad <- function (x, y, coef) {# mad is sad / n yhat <- coef [1] + coef [2] * x reszta <- y - yhat sum (abs (RES))} biblioteka (quantreg) fit0 <- rq (y ~ x) abline (fit0) fit1 <- lm (y ~ x, podzbiór = c (1,20)) fit2 <- lm (y ~ x, podzbiór = c (2,19)) fit3 <- lm (y ~ x, podzbiór = c (2,20)) fit4 <- lm (y ~ x, podzbiór = c (1,19)) fit5.coef <- c (0,5, 1/10) abline ( fit1) ablin e (fit2) abline (fit3) abline (fit4) abline (fit5.coef) for (i in seq (-0,5, 0,5, by = 0,1)) {abline (fit5.coef + c (i, 0))} tmp1 <- seq (coef (fit1) [1], coef (fit2) [1], len = 10) tmp2 <- seq (coef (fit1) [2], coef (fit2) [2], len = 10) dla (i in seq_along (tmp1)) {abline (tmp1 [i], tmp2 [i])} sad (x, y, coef (fit0)) sad (x, y, coef (fit1)) sad (x, y, coef (fit2)) sad (x, y, coef (fit3)) sad (x, y, coef (fit4)) sad (x, y, fit5.coef) for (i in seq (-0,5, 0,5, by = 0.1)) {print (sad (x, y, fit5.coef + c (i, 0)))} for (i in seq_along (tmp1)) {print (sad (x, y, c (tmp1 [i], tmp2 [i])))} set.seed (1) y2 <- y + rnorm (20,0,0.25) plot (x, y2) fitnew <- rq (y2 ~ x) # zwróć uwagę na wciąż nieunikalną linię ostrzegawczą (fitnew) abline (coef (fitnew) + c (.1,0)) abline (coef (fitnew) + c (0, 0,01)) sad (x, y2, coef (fitnew)) sad (x, y2, coef (fitnew) + c (.1,0)) sad (x, y2, coef (fitnew) + c (0,0.01))