Sei sulla pagina 1di 3

ALGORITMO GENERAL DE LA REGRESIÓN DE COMPONENTES PRINCIPALES

(PCR) MEDIANTE DESCOMPOSICIÓN EN VALORES SINGULARES

Modelo de calibración inverso C = P.A

Sea por ejemplo la matriz de concentraciones C obtenida mediante diseño factorial para dos niveles:
1 1 1 1 2 2 2 2
1 1 2 2 1 1 2 2
1 2 1 2 1 2 1 2

y la matriz de señales obtenidas para estas ocho mezclas y medidas a seis longitudes de onda A
(unidades arbitrarias):
6 9 8 11 7 10 9 12
3 4 4 5 4 5 5 6
5 6 8 9 6 7 9 10
4 5 5 6 6 7 7 8
4 5 5 6 6 7 7 8
6 8 8 10 8 10 10 12

Si los coeficientes k se calcularan mediante CLS el resultado sería:


K=

1 2 3
1 1 1
1 3 1
2 1 1
2 1 1
2 2 2

Veamos como sería el cálculo mediante PCR:

1. Descomposición matriz A en el producto de sus matrices ortogonales y la matriz de valores


singulares
A = U.W.VT
(mediante MATLAB esto se hace por medio de la función [U,W,V]=svd(A))
U=

0.5109 0.4497 0.6551 0.3250 -0.0436 0.0000


0.2553 -0.0638 0.0252 -0.2387 0.9344 0.0000
0.4261 0.4839 -0.7466 0.1625 -0.0218 0.0000
0.3402 -0.5212 -0.0717 0.3250 -0.0436 -0.7071
0.3402 -0.5212 -0.0717 0.3250 -0.0436 0.7071
0.5107 -0.1275 0.0504 -0.7744 -0.3474 0.0000

W=

50.7589 0 0 0 0 0 0 0
0 2.5938 0 0 0 0 0 0
0 0 2.1925 0 0 0 0 0
0 0 0 0.0000 0 0 0 0
0 0 0 0 0.0000 0 0 0
0 0 0 0 0 0.0000 0 0
V=

0.2314 -0.0030 0.0010 -0.5633 0.4228 -0.5804 0.3367 0


0.3086 0.1790 0.5489 -0.0228 0.4872 0.2400 -0.4484 -0.2737
0.3153 0.3788 -0.4309 -0.4456 -0.3199 0.0239 -0.5148 0.0709
0.3924 0.5607 0.1170 0.0730 -0.1241 0.3422 0.6027 0.1296
0.3019 -0.5696 -0.1141 -0.2307 0.1876 0.5032 0.0336 0.4782
0.3790 -0.3876 0.4339 -0.1418 -0.6316 -0.1371 0.0543 -0.2777
0.3857 -0.1879 -0.5460 0.2810 0.1755 0.0790 0.1207 -0.6223
0.4629 -0.0059 0.0020 0.5709 0.0354 -0.4578 -0.1967 0.4584

2. Se sustituye cada uno de los valores de la diagonal de la matriz de valores singulares por su
correspondiente valor inverso (1/wij) y se transpone la matriz resultante (esta matriz es la
pseudoinversa de W)
W+ =

0.0197 0 0 0 0 0
0 0.3855 0 0 0 0
0 0 0.4561 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0

3. Se multiplica la matriz ortogonal V por la pseudoinversa de los valores singulares y por la


transpuesta de la matriz ortogonal U con lo que se obtiene la matriz pseudoinversa de A, (A+).

A+ = V.W+.UT
+
A =

0.0021 0.0012 0.0011 0.0021 0.0021 0.0025


0.1982 0.0035 -0.1509 -0.0518 -0.0518 0.0069
-0.0599 -0.0127 0.2200 -0.0599 -0.0599 -0.0253
0.1361 -0.0105 0.0681 -0.1139 -0.1139 -0.0209
-0.1298 0.0142 -0.0649 0.1202 0.1202 0.0284
0.0662 0.0164 -0.2169 0.0662 0.0662 0.0328
-0.1918 0.0003 0.1541 0.0582 0.0582 0.0006
0.0042 0.0025 0.0021 0.0042 0.0042 0.0050

4. Esta matriz pseudoinversa equivale a la que se habría obtenido mediante ILS


A+ <> AT.(A.AT)-1
por lo que para obtener la matriz de coeficiente inversos P lo único que hay que hacer es, como en ILS:
P = C.A+

P=

-0.2258 0.0484 -0.1129 0.2742 0.2742 0.0968


-0.0860 -0.0054 0.4570 -0.0860 -0.0860 -0.0108
0.4301 0.0269 -0.2849 -0.0699 -0.0699 0.0538

Esta matriz P no habría podido ser calculada mediante ILS pues el producto de la matriz A por
su transpuesta produce una matriz cuadrada singular (determinante igual a cero) por lo que no puede ser
invertida, lo que muestra la superioridad de la Regresión de Componentes Principales (PCR)

La matriz de coeficientes K puede calcularse a partir de la matriz de coeficientes inversos P


mediante K = PT(P.PT)-1 ya que P no es mas que la inversa generalizada de K y viceversa.
K=

1.0000 2.0000 3.0000


1.0000 1.0000 1.0000
1.0000 3.0000 1.0000
2.0000 1.0000 1.0000
2.0000 1.0000 1.0000
2.0000 2.0000 2.0000

NOTA FINAL: MATLAB es una herramienta de cálculo muy potente, todos estos pasos se
podrían haber hecho en uno solo sin mas que introducir en la línea de comandos la operación
P=C*pinv(A)

Potrebbero piacerti anche