24 feb. 2011

Overfiting - Underfitting

Dejamos el tema de los componentes principales con muchas lagunas que seguiremos desarrollando.La idea no es hacer como en este chiste que he copiado de unos de los blogs que sigo:
Trataremos los diversos algoritmos que se pueden utilizar para tomar esta decisión, que pretende ni mas ni menos que evitar los denominados "overfitting" y "underfitting". Esto se puede para los modelos PCR basados en los componentes principales como para la regresión PLS.
Una decisión simple sería el cortar al llegar a un determinado valor de varianza explicada, por ejemplo al 95%, esto añadiría sin duda las fuentes de varianza importantes, lo que sería suficiente para muchos de los casos. Ciertos software tienen un campo para poner el límite de varianza explicada en tanto por ciento y si tenemos la suficiente experiencia sobre lo que pretendemos hacer es una buena opción.
Otras opciones pasan a través de hacer un F test, que nos da el valor indicativo de si merece la pena el añadir un término más. Se trata de hacer un ratio entre varianzas, hasta que llegue un momento en que la adición de un término sea perjudicial (overfitting).
Los software nos mostraran la opción de decidir el número de términos o factores, conviniendo por tanto el mirar la información disponible y decidir si nos parece correcta, o al menos tratar de interpretar por que toma ese número de factores.
En las regresiones podemos añadir otros algoritmos que nos ayuden en la toma de esta decisión de gran importancia: las validaciones cruzada y/o externa.
En learning-winisi hay una entrada que se esta desarrollando sobre la validación cruzada, que es el algoritmo con el que se toma la decisión sobre el número de términos a utilizar al desarrollar una regresión PCR o PLS con este software de calibración..

20 feb. 2011

Coeficiente de variación.

Al expresar nuestro error de predicción, lo mas adecuado es hacerlo con el estadístico  RMSEP. Estos son estadísticos que se calculan con un conjunto independiente de validación. El valor verdadero de predicción estaría dentro de  (+/-) 2 x RMSEP aproximadamente con un intervalo de confianza del 95%.
 Otra manera quizás mas clara de exponer nuestro error es el coeficiente de variación, para lo cual:
                                              [RMSEP : Valor medio datos] x 100
Aclaraciones
El RMSEP no lleva la corrección de Bias aplicada, el SEP sí.
Hacer estos cálculos con el SECV, no nos darán una idea real del error y menos con el SEC.
El RMSEP no lleva aplicada la corrección del Bias, al contrario del SEP y el Bias va formar parte de nuestros errores al trabajar en rutina y debe de ser contabilizado.
Cuando los modelos son lo suficientemente robustos el RMSEP y el SEP son muy similares.
Importante:
Estadísticos como el GH deben de estar dentro de límites para asegurarse de que las muestras del colectivo externo de calibración esten representadas por el conjunto de calibración, de no ser así, los RMSEP serán mas altos que los SECV desarrollados en la calibración, lo que nos indicará que la calibración no es lo suficientemente robusta y que debe de ser expandida:

Ver entrada "Cross Validation" en el Blog: Learning WinISI.

19 feb. 2011

Formas de cálculo de la "pendiente".

Hablaremos ampliamente en futuras entradas de los gráficos X-Y , como forma de representar los valores predichos por el NIR (X) respecto a los valores de laboratorio (Y), los cuales son una herramienta importante al valorar lo bien que puede funcionar nuestro modelo en rutina. Ya hemos hablado de la covarianza y de la correlación, ahora veremos como se calcula otro estadístico muy ligado a estos dos: "la pendiente":
YXCovarianza              cov(x , y)
9.599
72.1972.77

(Desv. Est. Y )2        s2y3.24210.511
72.9073.77

(Desv. Est. X )2         s2x3.0589.355
73.1473.36

Pendiente               b = cov(x , y)/s2x1.026
74.5171.60

Correlación              r
0.968
72.2972.82




70.2171.17




72.6472.10

                                  sy / sx
1.059
75.1974.23




73.7173.04

Pendiente                 b = r . (sy / sx)
1.026
73.5172.42




71.5771.21




70.2470.49




72.4372.41




72.2071.92




71.1771.00




71.7372.17




70.9871.13




71.2971.01




70.2269.49




68.9568.40




70.6670.63




70.5869.98




70.9470.90




70.9070.70




75.0574.42




75.3576.03




70.1569.77




72.4673.11




71.7171.13




71.9972.20




73.0474.04




73.7674.39




76.1475.72




66.8867.36




68.5369.07




76.0075.69




78.0677.38




64.5665.18




64.4665.01




64.8065.51




73.0972.80




71.1771.63




68.8167.85




64.1764.19




64.4163.72




69.2068.95




66.6366.83




67.6368.57




65.1865.35




74.5274.87




73.4772.24




71.0472.45




70.7569.81




74.1575.13




77.0076.87




79.0775.66




68.8968.77




68.0068.42




70.6471.40




69.3369.67




72.0472.20




72.4871.79




72.6571.46




69.7669.08




73.9573.69




73.4074.06

17 feb. 2011

Primera Derivada

Las derivadas sirven para corregir el efecto de  desviación de la linea de base en los espectros NIR. También ayudan a resaltar las bandas de absorción de los analitos de una manera mas clara, que como vimos en la entrada deconvolución, forman el espectro que obtenemos por NIR. También hemos visto los conceptos de "segment" y "gap" , que nos definen lo marcadas que estarán esas bandas. Las derivadas producen los denominados artefactos, que no aportan información. En próximas entradas hablaremos con mas detalles de las derivadas.
En esta entrada represento la primera llamada "Norris Derivative" en Unscrambler, en honor a Karl Norris que tanto ha hecho y sigue haciendo por el NIR y la Quimiometría.
En los siguientes espectros (harinas de carne), comprobamos como en crudo, tenemos a parte de mucho "scatter", una desviación de la linea de base a medida que aumenta la longitud de onda. La primera derivada corrije la linea de base, pero no elimina el "scatter". Aparte podemos ver que hay un cierto tipo de harinas que se diferencias de una manera clara del resto, de modo que deberán de ser incorporadas en un grupo propio.
Las primera derivada se basa en diferencias entre "data points",esta claro que en puntos próximos de una absorción similar las diferencias serán próximas a cero, y estarán cerca de la linea cero,sin embargo, donde haya variaciones importantes (en las laderas de los picos), habrá grandes diferencias y grandes pendientes. La primera derivada visualmente quizás sea compleja, a causa de esto, de interpretar.

En el caso de la primera derivada, el pico de absorción en el espectro sin tratamiento pasa a tener un valor de cero, esto tiene sentido, ya que la tangente (1ª derivada) en el pico es horizontal y tiene por tanto un valor de cero. Podéis ver esta animación de Wikipedia para comprender mejor el concepto. A ambos lados del pico representado por el cruce en el cero la pendiente va cambiando los valores (de positivo a negativo).

15 feb. 2011

Diagramas de Shewhart

Puede que no los conozcamos por este nombre, y que los conozcamos como "gráficos de control", donde ponemos un valor objetivo (target) y unos límites de aviso (warnings) o de acción (action).
La idea es seguir un proceso para ver si se sale de control. ¿Cual será su target?, puede que sea conocido por estar en una etiqueta, en cuyo caso podríamos fijarlo en el Menu del software, pero hay que tener en cuenta que el equipo lo podría predecir con un cierto Bias, con una cierta inexactitud o con cierta falta de precisión todo esto en el caso de que el equipo no esté estandarizado, que no esté funcionando correctamente, o que las condiciones ambientales no sean las correctas. No nos vamos a poner en este caso.
Nos ponemos en el caso de que nuestro equipo pasa bien los test, las condiciones ambientales son las adecuadas y que el modelo o ecuación con la que se predice la muestra es el adecuado.
En el caso de una Check Cell, por ejemplo, la pasamos durante varios días, a distintas horas, disponiendo de un número de muestras "n". Calculamos la media "µ" de estas muestras que cuanto mayor sea "n" más se acercará al valor verdadero, calculamos también la desviación estándar "σ" .

Fijamos como límites:




13 feb. 2011

Standar Normal Variate (SNV)

Otro tratamiento para corregir el scatter es el SNV. Se trata también de un autoescalado en el que a diferencia del MSC, interviene cada espectro de manera individual.
Para cada espectro, calculamos la media de todos los valores de absorción y también su desviación estándar. Restamos a cada "data point" el valor medio y el resultado lo dividimos por la desviación estándar. Este proceso se repite para cada uno de los "data poits" del espectro. Como resultado tendremos un nuevo espectro, con una varianza de uno. El proceso se repite para todos los espectros.

 
El espectro azul es el espectro sin tratamiento alguno y el rojo, es el mismo espectro con un tratamiento SNV.
Las características físicas de la muestra, intervienen en la escala espectral. En el caso de que queramos que no sean consideradas, un tratamiento anti-scatter es esencial para el desarrollo de la calibración. Sin embargo en el caso de los análisis discriminantes, el añadir este tipo de tratamientos debe de ser considerado.

9 feb. 2011

Multiple Scatter Correction (MSC)

Leyendo un interesante artículo de T. Davies y T. Fearn sobre el tratamiento MSC en la revista Spectroscopy Europe, me puse a desarrollar uno de los gráficos que proponen para un mejor entendimiento de este tratamiento para la corrección del "scatter".
Para ello use los espectros del Shootout 2002, los exporté a Excel y calculé el espectro medio. Posteriormente en Excel representé el X-Y plot de la 1ª muestra del producto Calibra1, respecto al espectro medio de este mismo producto, obteniendo la siguiente gráfica:
Reading an interesting article by T. Davies & T. Fearn about MSC treatment in the journal Spectroscopy Europe, I began to develop one of the graphics proposed for a better understanding of this treatment for the correction of "scatter".
To do this use the spectra of the Shootout 2002, export to Excel and calculated the average spectrum. Later in Excel I represented the X-Y plot of the 1st sample of the product Calibra1, compared to the average spectrum of the same product, obtaining the following graph:

En esta gráfica, podemos calcular por mínimos cuadrados la pendiente y el intercepto que usaremos para corregir el scatter en este espectro en particular, pero haremos lo mismo con todos los espectros, respecto al espectro medio.
Para corregir el espectro, restaremos al valor de log1/T para cada data point el intercepto y dividiremos el resultado por la pendiente: (Xi - a)/b.
Debido a que este tratamiento se basa en el espectro medio del conjunto de datos original, si este se amplia este se debe de calcular nuevamente el espectro medio, así como la pendiente (b) e intercepto (a) de nuevo para cada espectro respecto al nuevo espectro medio, lo que representa un cierto inconveniente hasta que la base de datos sea lo suficientemente representativa.
In this graph, we can calculate least-squares slope and intercept that we will use to correct the scatter in this spectrum in particular, but will do the same with all spectra, compared to the average spectrum.
To correct a spectrum, subtract the value of log1 / T for each data point intercept and divide the result by the slope (Xi - a) / b.
Because this treatment is based on the average spectrum of the original data set, if we add more samples we should recalculate the average spectrum, the slope (b) and Intercept (a) again for each spectrum with respect to new media spectrum, representing some inconvenience until the database is sufficiently representative.

Conjunto Espectral sin ningun tratamiento:
(raw spectra)

Aplicando el tratamiento MSC:
(spectra corrected with MSC)



6 feb. 2011

Correlación

La correlación entre dos variables Xj y Xq, (representando estas a un par de variables cualquiera entre un rango comprendido entre 1 y k), y para un número de muestras N, se calcula como la covarianza entre estas dos variables dividida por el producto de sus desviaciones estándar:
r = Cov(Xj, Xq) / [std(Xj).std(Xq)]
La correlación es independiente de la escala de unidades en la que estén expresadas estas dos variables, y su valor está entre -1 y 1, dándonos el grado de relación lineal entre estas dos variables.
La correlación, al igual que la covarianza, la podemos representar en una matriz, que denominaremos “Matriz de Correlaciones”.

La matriz identidad esa que en su diagonal tiene valores 1 y en el resto 0. Bien este es un caso particular de matriz de correlaciones en la que todas las variables tienen correlación cero entre ellas, excepto, como es lógico, con ellas mismas. Esto sería el caso particular de la matris de correlaciones para los factores (ortogonales entre sí) en el cálculo de los componentes principales.

3 feb. 2011

Otra expresión para la Matriz de Covarianzas.

En una entrada anterior quedamos en representar la Matriz de Covarianzas con la letra "S". No obstante una expresión que me gusta para representar esta matriz es la que se usa cuando la matriz X, donde en sus filas estan los distintos espectros, representados con sus valores de absorción colocados en cada una de las columnas de la matriz. Estos valores al estar centrados no son los originales, sino que a cada valor de absorción se le resta valor medio de absorción de dicho espectro. Habrá por tanto valores positivos y negativos, por tanto decimos que la matriz X está centrada.Pues bien el cálculo de la matriz de varianzas-covarianzas, se puede representar por una bonita formula matricial:
S para una matriz centrada  =  X. X / (n-1)

Siendo "n" el nº de longitudes de onda o data points. Al perder un grado de libertad por restar la media, ponemos la expresión de "n - 1".
No olvidemos la regla de multiplicar matrices para este cálculo, así como la de dividir la matriz resultante por un escalar.

1 feb. 2011

Cálculo de la Matriz inversa en Excel

He dado un paseo por Sevilla, que está preciosa, y al regresar al hotel me he puesto un rato a tratar de hacer el cálculo de la matriz inversa de una matriz de varianzas covarianzas, para aplicarla posteriormente a la fórmula de la distancia de Mahalanobis, practicando un interesante ejemplo cuyo vínculo os adjunto: http://www.youtube.com/watch?v=ZkC9mRq7Lr8
Me ha costado bastante, pues tiene un pequeño truco el aplicar la matriz inversa en Excel . Así que me puse a ver la ayuda de Excel y tras varios intentos fallidos me salio. No os facilito las cosas. Intentarlo.


Matriz de varianzas y  Matriz inversa de la de
covarianzasvarianzas y covarianzas
9.7612.8112.08-72.150.58-0.04-0.030.05
12.8156.9049.12-70.62-0.040.04-0.020.00
12.0849.1292.81-46.06-0.03-0.020.020.00
-72.15-70.62-46.06713.970.050.000.000.01