En este caso, los puntos de datos no se sitúan alrededor de una línea que pasa por el origen. Si fuera el caso, la solución de ajuste LS sería $Ax=0$ y estaría dado por el primer vector singular (derecho) (es decir, el vector propio dominante de la matriz $A^TA$ ), que sería la solución al problema de optimización para maximizar la proyección $\underset{|v|=1}{max}|Av|=0$ .
Todavía el primer vector singular derecho es el vector propio dominante de $A^TA$ : $[0.2557118, 0.9667531]$ como se puede encontrar con R
> eigen(t(A)%*%A)
eigen() decomposition
$values
[1] 765.599 389.401
$vectors
[,1] [,2]
[1,] 0.2557118 -0.9667531
[2,] 0.9667531 0.2557118
que se puede encontrar directamente con SVD:
> svd(A)$v
[,1] [,2]
[1,] -0.2557118 0.9667531
[2,] -0.9667531 -0.2557118
Usted obtiene $A^TA = \begin{bmatrix}414 & 93\\ 93 & 741 \end{bmatrix}$ y el polinomio característico $\lambda^2-1155\lambda+298125=0$ , resolviendo que se obtiene el mayor valor propio $\lambda=765.5991$ y la resolución del sistema lineal $\begin{bmatrix}414 & 93\\ 93 & 741 \end{bmatrix}\begin{bmatrix}x_1 \\ x_2\end{bmatrix}=765.5991\begin{bmatrix}x_1 \\ x_2\end{bmatrix}$ , $\implies 93x_2=351.5991x_1$ y $93x_1=24.5991x_2 \implies \frac{x_1}{x_2}\approx 0.2645$ , es decir, el vector propio correspondiente es $\begin{bmatrix}0.2645\\ 1\end{bmatrix}$ normalizando (es decir, dividiendo por $\sqrt{0.2645^2+1^2}=1.034389$ ), obtenemos el vector propio unitario dominante como $\begin{bmatrix}\frac{0.2645}{1.034389}\\ \frac{1}{1.034389}\end{bmatrix}=\begin{bmatrix}0.25571\\ 0.96675\end{bmatrix}$ lo que concuerda con el cálculo mediante los métodos numéricos con R
.
Consideremos, por ejemplo, un conjunto diferente de puntos $(\frac{7}{10},\frac{7}{10}), (7,9), (2,\frac{9}{2}$ ), s.t., la matriz $A=\begin{bmatrix}7/10 & 7/10\\ 7&9 \\ 2&9/2 \end{bmatrix}$ . Ahora bien, si queremos que la línea de mejor ajuste pase por el origen (sin tener un intercepto) entonces el vector correspondiente estará en el espacio nulo de $A$ es decir, será una solución de $Ax=0$ la solución de mínimos cuadrados se puede encontrar aproximadamente con la SVD de $A$ como se muestra a continuación:
svd(A)$v[,1]
# [1] -0.5849033 -0.8111030
v <- svd(A)$v
slope <- v[2] / v[1]
# [1] 1.38673
La siguiente figura muestra la línea de mejor ajuste obtenida con SVD:
Esto coincide con el ajuste de regresión lineal por mínimos cuadrados sin intercepción:
lm(y~X+0)$coeff
# X
#1.355207
Ahora, digamos que tenemos los puntos $(17,4), (-2,26), (11,7)$ en cambio, para encontrar la línea de mejor ajuste, necesitamos minimizar $||Ax-b||_2^2$ que se reduce a resolver $Ax=b$ , donde $b \neq 0$ . Aquí tenemos $A=\begin{bmatrix}1 & 17 \\ 1 & -2 \\ 1 & 11 \end{bmatrix}$ y $b=\begin{bmatrix} 4 \\ 26 \\ 7 \end{bmatrix}$ y la solución de mínimos cuadrados viene dada por la ecuación normal (la psuedo inversa) $\hat{\beta}=(A^TA)^{-1}A^Ty$ . Ahora, también podemos utilizar la SVD aquí, con la SVD de $A=U\Sigma V^T$ tenemos $\hat{\beta}=V\Sigma^{-1}U^Ty$ como se muestra a continuación.
s <- svd(A)
U <- s$u
V <- s$v
V
# [,1] [,2]
# [1,] 0.06288448 0.99802081
# [2,] 0.99802081 -0.06288448
S <- s$d
V%*%solve(diag(S), t(U)%*%y) # LS solution with SVD
# [,1]
#[1,] 22.791519
#[2,] -1.206714
Coincide con la solución LS obtenida mediante la ecuación normal:
solve(t(A)%*%A, t(A)%*%y) # LS solution with normal equation
[,1]
[1,] 22.791519
[2,] -1.206714