1 votos

ajuste por mínimos cuadrados utilizando la pseudoinversa

Escribo un programa de ordenador que resuelve conjuntos de ecuaciones sobreestimados. Creo que la mejor manera es utilizar la pseudoinversa. Tengo dos preguntas:

1) Conozco dos métodos para hacerlo: realizar el producto matricial $(H^{T}H)^{-1}H^{T}$ y SVD. La primera parece ser más sencilla, pero me he dado cuenta de que la segunda se utiliza con más frecuencia. ¿A qué se debe esto? ¿Es más recomendable alguno de estos métodos?

2) ¿Cómo puedo evaluar la bondad del ajuste?

Voy a calcular el vector columna de 6 elementos ${\vec{D}}$ conociendo la matriz de 6xM elementos ${\widehat{B}}$ y el vector columna de M elementos ${\vec{S}}$ . La ecuación es: ${\vec{S}}=-{\widehat{B}}{\vec{D}}$ (por cierto, es el tensor de difusión en la IRM). M varían de 6 a 12.

1voto

dantopa Puntos 111

Surgen muchas preguntas. ¿Cuál es el tamaño de su sistema lineal? ¿Qué herramientas utiliza para resolver el problema? ¿Cuál es su modelo? ¿Es la matriz del sistema fija para cada conjunto de mediciones?

Las respuestas forzarán la respuesta por diferentes caminos. En general, si estás escribiendo un programa de ordenador, llamarás a una biblioteca como LAPACK, que tiene bonitas rutinas para resolver el problema de mínimos cuadrados.

1.) El usuario @Shiyue ha señalado que hay formas rápidas de calcular $\mathbf{A}^{+}$ que no implican la SVD. ¿Cuál es la mejor manera de calcular el pseudoinverso de una matriz?

En el cálculo numérico, es un pecado capital para calcular la inversa de la matriz. En su lugar se calcula el vector solución. solución.

Por favor, lee sobre álgebra lineal numérica para no perder un verano reinventando la rueda. Este foro es un gran lugar para seguir tu progreso. Escribir código para entender el cálculo es una práctica excelente. El mundo necesita más gente que entienda los algoritmos.

2.) Gran pregunta. Recuerda siempre que el ajuste por mínimos cuadrados es el mejor ajuste. No hay garantía de que sea un buen ajuste.

Se puede aplicar el modelo equivocado a los datos y obtener una coincidencia pésima, pero una optimización matemática.

Estos posts abordan la cuestión con un poco más de profundidad: Mínimos cuadrados Sensibilidad a los datos , ¿Qué parámetros pueden utilizarse para saber si un ajuste por mínimos cuadrados está "bien ajustado"? . El resultado es que se aprovecha la potencia del ajuste por mínimos cuadrados, que proporciona información cuantitativa sobre la calidad del ajuste. En otras palabras, calcular los errores asociados al cálculo de los parámetros libres. Algo así como $$ a_{k} \pm \sigma_{k}, \ k = 1, n $$

Si publica su modelo, será una cuestión menor calcular la forma de estos términos de error.


En respuesta a la pregunta editada: Sistema lineal

Dada una matriz de sistema de rango completo de columnas $\mathbf{B}\in\mathbb{C}^{m\times 6}_{6}$ y un vector de datos $S\in\mathbb{C}^{m}$ el vector solución es $D\in\mathbb{C}^{6}$ . El sistema lineal es $$ \mathbf{B}D=-S \tag{1} $$ Por construcción, el problema está sobredeterminado, es decir $m>6$ .

Problema de mínimos cuadrados

El problema de mínimos cuadrados se define como $$ D_{LS} = \left\{ D \in \mathbb{C}^{6} \colon \lVert \mathbf{B}D + S \rVert^{2}_{2} \text{ is minimized} \right\} \tag{2} $$

Solución de mínimos cuadrados

La solución del problema de mínimos cuadrados en $(2)$ es $$ D_{LS} = \mathbf{B}^{+}S + \underbrace{\left( \mathbf{I}_{6} - \mathbf{B}^{+}\mathbf{B} \right)}_{=0\text{ when }m\ge 6} C, \qquad C\in\mathbb{C}^{6} $$ Defina el error residual como en $(2)$ ; $$ r = \mathbf{B}D + S $$ El error total es entonces $r\cdot r = r^{2}$ .

Propagación de errores

Las mediciones no son perfectas y tenemos que cuantificar cómo se propagan estos errores a la solución.

Refundamos $(1)$ en términos de las ecuaciones normales $$ \mathbf{B}^{*} \mathbf{B} D = -\mathbf{B}^{*} S \tag{3} $$ Este es ahora un sistema cuadrado que podrías resolver con herramientas como la eliminación gaussiana o $\mathbf{LU}$ descomposición. La solución se representa como $$ D = - \left( \underbrace{\mathbf{B}^{*} \mathbf{B}}_{\alpha} \right)^{-1} \mathbf{B}^{*} S $$ La matriz $\alpha$ se denomina matriz de curvatura. Los elementos diagonales de la inversa de esta matriz son $$ \epsilon_{k} = \alpha^{-1}_{kk}, \quad k = 1, 6 $$ El otro ingrediente es la desviación estándar de los padres, aproximada como $$ s^{2} = \frac{r^{2}}{m-6}. $$ Observe que este factor refleja la calidad general del ajuste.

Finalmente, la incertidumbre en los parámetros de ajuste es $$ \sigma_{k} = \sqrt{s^{2} \epsilon} $$ La respuesta podría citarse como $$ S \pm \sigma $$

Interpretación

Esta es la medida de calidad que tan sabiamente buscó, un factor que con demasiada frecuencia se pasa por alto. Así es como encontramos nuestros dígitos significativos.

Veamos un elemento arbitrario. Si $$ S_{k} = 4.01 \pm 0.21 $$ vemos que conocemos este valor con una precisión del 5%. Si $$ S_{k} = 4.0 \pm 4.2 $$ la señal es comparable al ruido. Si se calcula $S_{k}= 0.001$ y $\sigma_{k} = 0.11$ , usted citaría $$ S_{k} = 0.00 \pm 0.11 $$ En este caso, el cálculo del valor $S_{k}$ es esencialmente un efluente.



Amplificación

1) ¿Por qué debo utilizar el método SVD para invertir la matriz y no simplemente (BB)^-1*B? ¿O tal vez no importa?

El SVD es el estándar de oro para los sistemas lineales mal condicionados, pero es muy caro computacionalmente. Las ecuaciones normales son un buen punto de partida porque se puede utilizar una herramienta más familiar como la eliminación gaussiana. Si tienes buenos datos, obtendrás una buena respuesta.

Formas "estables" de invertir una matriz

Comparación de las descomposiciones LU o QR para resolver los mínimos cuadrados

3) ¿Podría recomendarme alguna literatura básica con este tipo de cosas?

Un libro moderno y popular es Análisis matricial y álgebra lineal aplicada por Carl Meyer. Excelente desarrollo de la eliminación gaussiana y de la necesidad de maximizar los pivotes.

Un análisis más profundo del tema se encuentra en Álgebra lineal numérica por Lloyd N. Trefethen y David Bau.

La ubicuidad de los textos le asegura que obtendrá respuestas rápidas a sus preguntas a medida que trabaje con los textos.

1 votos

Gracias por la respuesta. He editado mi post con los detalles sobre el modelo.

0 votos

Esto es lo que necesitaba. Muchas gracias. Sin embargo, ¿podría explicarme un par de detalles? 1) ¿Por qué debo utilizar el método SVD en la inversión de la matriz, no simplemente (B B)^-1*B ? ¿O tal vez no importa? 2) ¿Cómo puedo calcular la norma en la ecuación (2)? 3) ¿Podría recomendarme alguna bibliografía básica con tal sfuff?

0 votos

Y una cosa más, necesito saber la incertidumbre de D, no de S. ¿Cómo puedo conseguirla?

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X