Answers:
关于标题中的问题,有关使用的算法是什么:
从线性代数的角度来看,线性回归算法是一种求解线性系统且方程组多于未知数的方法。在大多数情况下,无法解决此问题。这是因为向量不属于,的列空间。
best straight line
b ∈ Ç (甲)
将向量投影(正交)到的列空间中的最近点,可以得到向量,它以最小的误差来求解系统(其分量位于最佳直线上)。A b *
投影向量由下式给出:
也许不是唯一地使用最小二乘法,因为这会squaring
过度补偿离群值。
让我在R中给出一个简单的示例,该示例使用以下算法解决了回归问题:
library(fBasics)
reg.data <- read.table(textConnection("
b x
12 0
10 1
8 2
11 3
6 4
7 5
2 6
3 7
3 8 "), header = T)
attach(reg.data)
A <- model.matrix(b~x)
# intercept and slope
inv(t(A) %*% A) %*% t(A) %*% b
# fitted values - the projected vector b in the C(A)
A %*% inv(t(A) %*%A ) %*% t(A) %*% b
# The projection is easier if the orthogonal matrix Q is used,
# because t(Q)%*%Q = I
Q <- qr.Q(qr(A))
R <- qr.R(qr(A))
# intercept and slope
best.line <- inv(R) %*% t(Q) %*% b
# fitted values
Q %*% t(Q) %*% b
plot(x,b,pch=16)
abline(best.line[1],best.line[2])
could not find inv
吗?
lm
QR 的方法是QR,这是有原因的,您能解释一下原因吗?
要回答问题的字母,“普通最小二乘法”不是一种算法;相反,它是计算线性代数中的一种问题,其中线性回归就是一个例子。通常,其中一个具有数据和一个临时函数(“模型”),可以将数据拟合为。该被称为“基础功能”,可以从任何单项到三角函数(如,)和指数函数()。这里的“线性回归”中的“线性”一词不是指基函数,,因为采用模型相对于任何的偏导数,得到乘以的因子;即。
现在,它有一个矩形矩阵(“设计矩阵”)(通常)具有比列多的行,并且每个条目的形式为,为行索引,为列索引。现在,OLS的任务是查找向量使数量(以矩阵符号;在这里,通常称为“响应向量”)。
实际上,至少有三种方法用于计算最小二乘解:法线方程,QR分解和奇异值分解。简而言之,它们是将矩阵转换为矩阵的乘积的方法,可以容易地对其进行求解以求解向量。
乔治在回答中已经展示了正规方程的方法。只是解决了线性方程组
用于。由于矩阵是对称正(半)定的事实,因此通常使用的方法是Cholesky分解,它分解了的形式为,其中为下三角矩阵。尽管能够将设计矩阵压缩成一个(通常)更小的 ×矩阵的优点,但是这种方法的问题是此操作易于丢失有效数字(这有一些不足之处。用设计矩阵的“条件编号”来完成)。
更好的方法是QR分解,它可以直接与设计矩阵配合使用。它会将为,其中是正交矩阵(将此类矩阵与其转置相乘得到一个单位矩阵),并且是上三角。随后被计算为。由于某些原因,我不愿讨论(只需看一下像这样的体面数值线性代数文本),它就具有比正态方程方法更好的数值属性。
半正规方程法是使用QR分解的一种变化。简而言之,如果具有分解,则要求解的线性系统的形式为
有效地,一种方法是使用QR分解以这种方式形成的Cholesky三角形。这对于稀疏并且(或其分解版本)的显式存储和/或形成是不需要的或不切实际的情况非常有用。
最后,解决OLS的最昂贵但最安全的方法是奇异值分解(SVD)。这次,被分解为,其中和都是正交的和甲 = û Σ V ⊤ ù V Σ是对角矩阵,其对角线条目称为“奇异值”。这种分解的力量在于奇异值赋予您的诊断能力,即如果您看到一个或多个微小奇异值,那么您很可能选择了一个不完全独立的基础集,因此有必要对您的模型。(实际上,前面提到的“条件数”与最大奇异值与最小奇异值的比有关;如果最小奇异值为“微小”,则该比当然会变得很大(矩阵因此是病态的)。 )
这只是这三种算法的示意图;任何有关计算统计和数值线性代数的好书都应该能够为您提供更多相关的详细信息。
R^{-1} Q^T y
如果A不是平方,您如何计算?您是否在R中删除零行?
在定义和术语之间容易混淆。这两个术语都可以使用,有时可以互换使用。快速浏览Wikipedia应该会有所帮助:
普通最小二乘(OLS)是用于拟合线性回归模型的方法。由于OLS方法具有明显的一致性和效率(在补充假设下),因此它是主要方法。请参阅文章以获取更多线索。
我倾向于将“最小二乘法”作为定义最佳拟合回归线(即使“平方”残差之和为“最小”之和)和“算法”作为定义步骤的标准。确定满足该标准的回归系数。这种区别表明,可能有满足相同标准的不同算法。
我很想知道其他人是否做出了这种区分,以及他们使用了什么术语。