我对正交回归有很好的理解,但在R中的正交回归建模中,我遇到了一些问题。我一直在使用onls
包。函数resid_o
应该测量正交残差。然而,距离似乎不符合我的理解。
> Book1
ID Y X ortho
1 1 44 51 1.8562060
2 2 45 53 3.3313832
3 3 39 56 1.7323595
4 4 33 49 1.0961453
5 5 32 44 0.6067502
6 6 25 46 2.4314954
7 7 34 51 2.8150216
8 8 31 50 1.8991531
9 9 27 43 1.5226187
10 10 31 46 3.9516167
这是我的数据,ortho
是由resid_o
测量的正交残差。但是,与下图相比,您可以看到我的困惑,因为ortho
的长度与残差没有特别对应。
我对正交残差出错的理解在哪里?
编辑: 这是我的代码:
library(onls)
Book1 <- data.frame(x = c(51,53,56,49,44,46,51,50,43,46), y = c(44,45,39,33,32,25,34,31,27,31), ID = 1:10)
model.one <- lm(y ~ x, data = Book1)
summary(model.one)
model.two <- onls(y ~ b0 + b1*x, data = Book1, start = list(b0 = coef(model.one)[1], b1 = coef(model.one)[2]))
summary(model.two)
Book1$ortho <- residuals_o(model.two)
Book1$x0 <- x0(model.two)
Book1$y0 <- y0(model.two)
plot(model.two, fitted.nls = FALSE)
text(Book1$x, Book1$y, labels = Book1$ID)