Análisis de Componentes Principales en Teledetección: Autovalores y autovectores

Cualquier imagen puede pensarse como una matriz tridimensional en la que cada una de las intersecciones de una fila y una columna corresponde a una posición geográfica discreta (un píxel) y la tercera dimensión está dada por la banda a la cual corresponde ese píxel. Teniendo presente este carácter matricial de cualquier imagen numérica, se pueden realizar sobre ella transformaciones y operaciones estadísticas. Por ejemplo, con los datos de una imagen digital es posible, entre otras, calcular medidas de tendencia central y dispersión en cada banda o sintetizar varias bandas reduciendo la información redundante (componentes principales). En este último caso, el objetivo general del Análisis de Componentes Principales (ACP) es resumir un grupo amplio de variables en un conjunto más pequeño sin perder una parte significativa de la información original. Para el usuario final de productos de teledetección, el objetivo del ACP es construir una o varias imágenes que incrementen su capacidad de diferenciar distintas coberturas por lo que es preferible usar, en lugar de algunas bandas de la imagen, los componentes principales 1, 2 y 3 en la secuencia RGB respectivamente. Por otra parte, esta técnica incrementa la eficiencia computacional en las clasificaciones previas porque reduce la dimensionalidad de los datos. Además, desde el punto de vista estadístico, el ACP facilita una primera interpretación sobre los ejes de variabilidad de la imagen lo que permite identificar aquellos rasgos que aparecen en la mayoría de las bandas y los que son específicos de algún grupo de ellas.

En este artículo se pretende verificar la utilidad del software presente en estos enlaces:

Autovalores y autovectores: Rotación de Jacobi

Multiplicación de matrices con Lapack++

para obtener los autovalores y autovectores de la matriz de varianza-covarianza para una subimagen que abarca en su sector central a la ciudad de Río Cuarto, provincia de Córdoba (República Argentina) y cuyos detalles se pueden visualizar en:

Análisis de Componentes Principales en Teledetección. Consideraciones estadísticas para optimizar su interpretación (Parte II)

como paso previo a la generación de los componentes principales usando la matriz de varianza-covarianza (Cuadro 4 del artículo anterior) y que fue la siguiente:

39.55 21.58 33.15 -1.38  22.24 27.45
21.58 14.76 21.85  3.57  15.61 16.45
33.15 21.85 38.88 -1.47  32.64 31.05
-1.38  3.57 -1.47 79.71  28.06 -5.96
22.24 15.61 32.64 28.06 128.24 60.57
27.45 16.45 31.05 -5.96  60.57 54.99

Con relación al primer artículo, el programa original fue modificado ligeramente para permitir el empleo de matrices con orden superior a 3. El ejecutable (para Windows) puede ser bajado, en formato comprimido, de aquí:

JACOBI.zip

La ejecución con los valores de la matriz anterior produjo esta salida:

Imprime la matriz de origen

39.55 21.58 33.15 -1.38 22.24 27.45 
21.58 14.76 21.85 3.57 15.61 16.45 
33.15 21.85 38.88 -1.47 32.64 31.05 
-1.38 3.57 -1.47 79.71 28.06 -5.96 
22.24 15.61 32.64 28.06 128.24 60.57 
27.45 16.45 31.05 -5.96 60.57 54.99 

Imprime la matriz de autovectores

0.521131 -0.205917 -0.717861 -0.28907 0.275839 -0.105108 
0.336352 0.902186 0.120362 -0.127835 0.179295 -0.0997607 
0.398125 -0.371199 0.669423 -0.269496 0.324106 -0.279118 
0.464441 -0.065839 0.0441248 0.839589 0.153032 0.2229 
-0.480515 0.0385167 -0.114557 0.238966 0.745376 -0.376574 
-0.100928 -0.00720526 0.0836065 -0.25584 0.45576 0.842378 

Imprime el arreglo de autovalores

51.7509 1.119 5.45543 89.9161 197.214 10.6744 

Para el segundo caso, el programa original fue modificado ligeramente para que pudiese leer la matriz de varianza-covarianza desde un archivo (datos.in; que es un arreglo tipo vector y de allí que al inicio se coloque el número de valores: 36) y su salida fue la siguiente:

La matriz original es:
39.55  21.58  33.15  -1.38  22.24  27.45
21.58  14.76  21.85  3.57  15.61  16.45
33.15  21.85  38.88  -1.47  32.64  31.05
-1.38  3.57  -1.47  79.71  28.06  -5.96
22.24  15.61  32.64  28.06  128.24  60.57
27.45  16.45  31.05  -5.96  60.57  54.99

Los autovectores son:
0.275839  0.28907  0.521131  -0.205917  0.717861  -0.105108
0.179295  0.127835  0.336352  0.902186  -0.120362  -0.0997607
0.324106  0.269496  0.398125  -0.371199  -0.669423  -0.279118
0.153032  -0.839589  0.464441  -0.065839  -0.0441248  0.2229
0.745376  -0.238966  -0.480515  0.0385167  0.114557  -0.376574
0.45576  0.25584  -0.100928  -0.00720526  -0.0836065  0.842378

Los autovalores son:
197.214
89.9161
51.7509
1.119
5.45543
10.6744

Los autovalores dispuestos como una matriz diagonal:
197.214  0  0  0  0  0
0  89.9161  0  0  0  0
0  0  51.7509  0  0  0
0  0  0  1.119  0  0
0  0  0  0  5.45543  0
0  0  0  0  0  10.6744

Recomponiendo la matriz original:
39.55  21.58  33.15  -1.38  22.24  27.45
21.58  14.76  21.85  3.57  15.61  16.45
33.15  21.85  38.88  -1.47  32.64  31.05
-1.38  3.57  -1.47  79.71  28.06  -5.96
22.24  15.61  32.64  28.06  128.24  60.57
27.45  16.45  31.05  -5.96  60.57  54.99

Este programa, en formato comprimido y para ser ejecutado y compilado en Linux (se requiere la instalación de las librerías de Lapackpp), se adjunta a continuación:

MULTMAT_LAPACK.zip

Comparando ambos resultados, exceptuando el orden de las columnas en las matrices de autovectores y autovalores, éstas son idénticas por lo que futuras modificaciones para la obtención de los componentes principales se harán sobre la opción para Windows.

Esta entrada fue publicada en Código C++, Teledetección y etiquetada , , . Guarda el enlace permanente.

4 respuestas a Análisis de Componentes Principales en Teledetección: Autovalores y autovectores

  1. Pingback: Análisis de Componentes Principales en Teledetección: Correlación entre los componentes principales y las bandas |

  2. Jesús Escobar dijo:

    Hola buenas noches, mi nombre es Jesús y soy docente del área estadistica. El artículo me parece tremendamente interesante, sobre todo porque es muy ilustrativo y pedagógico, no obstante me pregunto si las bondades del ACP son exclusivamente aplicables a datos correspondientes a un raster, ya que estoy actualmente identificando las bondades del arcgis en el análisis multivariante con aplicación social. Si bien es posible determinar medidas univariantes de dispersión, asimetría, curstosis, representaciones gráficas como histogramas, en el caso de los polígonos por tratarse de imágenes vectoriales, me pregunto si es posible aplicar un ACP a la información que de los polígonos a los cuales asigno valores en distintas variables, máxime, si se trata por ejemplo de variables sociales. Por ejemplo si yo indago sobre condiciones de seguridad alimentaria e indago sobre un conjunto de variables, la representación gráfica desde la perspectiva multivariante pudiera darme pistas de los hogares que tienen mayor proximidad o cuales variables se aproximan más a los ejes factoriales. Me gustaría conocer su punto de vista.
    De antemano gracias.
    Jesús Escobar. Venezuela. UCV

  3. Julio R. Fdez dijo:

    Este artículo está muy bien ilustrado y con muy buen contenido.
    Lo que yo necesito es procesar una imagen aster-gdem con datos topográficos, pero el procesamiento se me hace algo tedioso por una parte y por la falta de documentación especializada por otra.
    Le agradecería algún recurso nemotécnico para obtener información de estas imágenes con aplicaciones al riego y el drenaje agrícola.
    gracias. tengan buen día.
    chao
    julio

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s