38.2: Encontrar la mejor solución en un sistema sobredeterminado
- Page ID
- 115575
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)
\( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)
( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)
\( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)
\( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)
\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)
\( \newcommand{\Span}{\mathrm{span}}\)
\( \newcommand{\id}{\mathrm{id}}\)
\( \newcommand{\Span}{\mathrm{span}}\)
\( \newcommand{\kernel}{\mathrm{null}\,}\)
\( \newcommand{\range}{\mathrm{range}\,}\)
\( \newcommand{\RealPart}{\mathrm{Re}}\)
\( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)
\( \newcommand{\Argument}{\mathrm{Arg}}\)
\( \newcommand{\norm}[1]{\| #1 \|}\)
\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)
\( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)
\( \newcommand{\vectorA}[1]{\vec{#1}} % arrow\)
\( \newcommand{\vectorAt}[1]{\vec{\text{#1}}} % arrow\)
\( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vectorC}[1]{\textbf{#1}} \)
\( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)
\( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)
\( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)
\(\newcommand{\avec}{\mathbf a}\) \(\newcommand{\bvec}{\mathbf b}\) \(\newcommand{\cvec}{\mathbf c}\) \(\newcommand{\dvec}{\mathbf d}\) \(\newcommand{\dtil}{\widetilde{\mathbf d}}\) \(\newcommand{\evec}{\mathbf e}\) \(\newcommand{\fvec}{\mathbf f}\) \(\newcommand{\nvec}{\mathbf n}\) \(\newcommand{\pvec}{\mathbf p}\) \(\newcommand{\qvec}{\mathbf q}\) \(\newcommand{\svec}{\mathbf s}\) \(\newcommand{\tvec}{\mathbf t}\) \(\newcommand{\uvec}{\mathbf u}\) \(\newcommand{\vvec}{\mathbf v}\) \(\newcommand{\wvec}{\mathbf w}\) \(\newcommand{\xvec}{\mathbf x}\) \(\newcommand{\yvec}{\mathbf y}\) \(\newcommand{\zvec}{\mathbf z}\) \(\newcommand{\rvec}{\mathbf r}\) \(\newcommand{\mvec}{\mathbf m}\) \(\newcommand{\zerovec}{\mathbf 0}\) \(\newcommand{\onevec}{\mathbf 1}\) \(\newcommand{\real}{\mathbb R}\) \(\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}\) \(\newcommand{\laspan}[1]{\text{Span}\{#1\}}\) \(\newcommand{\bcal}{\cal B}\) \(\newcommand{\ccal}{\cal C}\) \(\newcommand{\scal}{\cal S}\) \(\newcommand{\wcal}{\cal W}\) \(\newcommand{\ecal}{\cal E}\) \(\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}\) \(\newcommand{\gray}[1]{\color{gray}{#1}}\) \(\newcommand{\lgray}[1]{\color{lightgray}{#1}}\) \(\newcommand{\rank}{\operatorname{rank}}\) \(\newcommand{\row}{\text{Row}}\) \(\newcommand{\col}{\text{Col}}\) \(\renewcommand{\row}{\text{Row}}\) \(\newcommand{\nul}{\text{Nul}}\) \(\newcommand{\var}{\text{Var}}\) \(\newcommand{\corr}{\text{corr}}\) \(\newcommand{\len}[1]{\left|#1\right|}\) \(\newcommand{\bbar}{\overline{\bvec}}\) \(\newcommand{\bhat}{\widehat{\bvec}}\) \(\newcommand{\bperp}{\bvec^\perp}\) \(\newcommand{\xhat}{\widehat{\xvec}}\) \(\newcommand{\vhat}{\widehat{\vvec}}\) \(\newcommand{\uhat}{\widehat{\uvec}}\) \(\newcommand{\what}{\widehat{\wvec}}\) \(\newcommand{\Sighat}{\widehat{\Sigma}}\) \(\newcommand{\lt}{<}\) \(\newcommand{\gt}{>}\) \(\newcommand{\amp}{&}\) \(\definecolor{fillinmathshade}{gray}{0.9}\)Dejar\(Ax=y\) ser un sistema de ecuaciones\(m\) lineales en\(n\) variables. Una solución de mínimos cuadrados de\(Ax=y\) es una solución\(\hat{x}\) en\(R^n\) tal que:
\[ \min_{\hat{x}}\|y - A\hat{x}\| \nonumber \]
Tenga en cuenta que\(y\) sustituimos nuestra variable típica\(b\) aquí porque usaremos\(b\) más adelante para representar la intercepción a una línea y queremos intentar evitar confusiones en la notación. También concuerda con la imagen de arriba.
En otras palabras,\(\hat{x}\) es un valor de\(x\) para el cual\(Ax\) es lo más cercano posible a\(y\). De conferencias anteriores, sabemos que esto es cierto si el vector\(y-A\hat{x}\) es ortogonal (perpendicular) al espacio de columna de\(A\).
También sabemos que el producto punto es cero si dos vectores son ortogonales. Así que tenemos\(a \cdot (Ax - y) = 0 \), para todos los vectores\(a\) en el espacio de columna de\(A\).
Las columnas de\(A\) abarcan el espacio de columna de\(A\). Denotar las columnas de\(A\) as\(A = [a_1, \cdots, a_n]\). Entonces tenemos\(a_1^\top (Ax - y) = 0\), es lo mismo que tomar la transposición de\(A\) y hacer una matriz multiplicar\(A^\top (Ax - y) = 0\).
\[a_1^\top (Ax - y) = 0, \\ a_2^\top(Ax-y)=0\\\vdots \\a_n^\top(Ax-y)=0 \nonumber \]
Es decir:
\[A^\top Ax = A^\top y \nonumber \]
La ecuación anterior se llama la solución de mínimos cuadrados a la ecuación original\(Ax=y\). La matriz\(A^\top A\) es simétrica e invertible. Entonces resolver para se\(\hat{x}\) puede calcular de la siguiente manera:
\[x = (A^\top A)^{-1}A^\top y \nonumber \]
La matriz también\((A^\top A)^{-1}A^\top\) se llama inversa izquierda.
Un investigador ha realizado experimentos de una dosis de Hormona particular en una población de ratas. En la tabla se muestra el número de muertes en cada nivel de dosificación probado. Determinar la línea de mínimos cuadrados y utilizarla para predecir el número de muertes de ratas a dosis de hormona de 22.
Nivel hormonal | 20 | 25 | 30 | 35 | 40 | 45 | 50 |
---|---|---|---|---|---|---|---|
Fallecidos | 101 | 115 | 92 | 64 | 60 | 50 | 49 |
Queremos determinar una línea que se exprese mediante la siguiente ecuación
\[f = aH + b, \nonumber \]
para aproximar la conexión entre la dosis de Hormona (\(H\)) y las muertes\(f\). Es decir, queremos encontrar\(a\) (pendiente) e\(b\) (intercepción y) para esta línea. Primero definimos la variable\ (
x =\ left [
\ begin {matrix}
a\\
b
\ end {matrix}
\ right]
\) como el vector de columna que necesita ser resuelto.
Reescribe el sistema de ecuaciones a la forma\(Ax=y\) definiendo tus matrices numpy
A
e y
usando los datos de arriba:
Calcula la matriz cuadrada\(C = A^\top A\) y el vector del lado derecho modificado como\(A^\top y\) (Llámenlo Ati
):
Encuentra la solución de mínimos cuadrados resolviendo\(Cx=A^\top y\) para\(x\).
Dada la solución anterior, definir los dos escalares pendiente a
e y-interceptar b
.
El siguiente código trazará los datos originales y la línea estimada por los coeficientes encontrados en la cuación anterior.
Repita el análisis anterior pero ahora con un polinomio de ocho órdenes.
Juega con la función interactiva a continuación ajustando el grado de aproximación de ajuste de mínimos cuadrados. Después extiende los parámetros x_min
y x_max
. ¿Crees que un polinomio de ocho órdenes es un buen modelo para este conjunto de datos? ¿Por qué o por qué no?
Consulta el rango de\(C=A^\top A\) para el caso anterior. ¿Qué obtienes? ¿Por qué?