24 feb 2017

LOCAL optimization

LOCAL Optimization


Background

LOCAL™ is a patented calibration technique developed by Infrasoft International LLC. For information on LOCAL and how it works, please see the LOCAL discussion topic.
WINISI 4™ introduces an enhanced version of LOCAL that will allow calibration originators to easily optimize the regression parameters for LOCAL databases.

Overview

LOCAL regressions are optimized using a number of calibration parameters. One of the most important parameters in the LOCAL regression is the maximum and minimum number of PLS factors used. The enhanced version of LOCAL (available for WIn ISI 4) can automatically determine the optimal values to use for the maximum and minimum number of PLS factors.

Details

LOCAL calibrations work by creating temporary custom calibrations for each unknown sample. The calibrations are made from a small sample set chosen by selecting spectrally similar samples from a larger calibration library. The spectrally similar samples are then regressed using PLS. The regression is performed for the each of the factors specified in the range described by the Minimum number of factors and the Maximum number of factors. The final predicted value is the weighted average of all predictions over the range of factors. (This point is important because several predictions are done, one for every number of factors in the range of number of factors choosen between minimun and maximum. At the same time several GHs and NHs are calculated in that range based on the PLS scores as PL1 makes in the option Create a Score file from a Spectra file used in Win ISI with the option PL1)
The LOCAL program in WinISI III worked by computing a weighted average of predicted values from PLS prediction models that vary the number of PLS factors. The user specified in advance the minimum and maximum number of PLS factors to include in the weighted average. To evaluate a different combination of Minimum and Maximum number of factors, a completely new regression needed to be performed.
The new LOCAL analysis program stores all the data needed to compute a weighted average with any minimum and maximum number of PLS factors for each sample in the test file. As a post-processing step, the program evaluates all possible minimum and maximum pairs to determine the set with the smallest prediction error on the test file. Thus the LOCAL analysis program might evaluate a 4 - 30 factor range and output an optimal range of 4 - 15 factors for best performance. The Min / Max range of 4 - 15 would then be entered into ISIScan™.

5 comentarios:

  1. Buenos días José Ramón,
    Muchas gracias por estas entradas tan interesantes sobre la calibración Local.
    El otro día estuve haciendo algunas pruebas y aprovecharé para comentarlas y exponer las dudas que me han surgido.

    Las pruebas las hice con todas mis muestras de pienso de terneros (809 muestras), y de momento mirando tan solo la Proteína bruta. Lo primero que hice fue ordenar la colección de muestras por el constituyente Proteína. A partir de aquí hice 5 grupos de muestras cogiendo en el caso del grupo 1 la muestra 1, la 5, la 10....; para el grupo 2 la muestra 2 la 6 la 11... y así con el resto de grupos, de este modo tuve las muestra divididas en 5 grupos equilibrados en cuanto a su contenido de muestras respecto a la cantidad de proteína (tal y como explicas en la entrada de comparación de histogramas antes de la calibración). Éstos grupos serían las muestras de validación y el resto de muestra no seleccionado en cada caso serían las muestras de calibración.

    A partir de aquí hice algunas pruebas con diferentes tratamientos matemáticos llegando a la conclusión de que el 1,4,4,1 con snv & detrend funcionaba mejor que los otros que probé. Sin embargo aquí empezaron mis dudas.

    A pesar de obtener resultados de SEP(C), SEP, Bias, Slope, RSQ parecidos entre los 5 grupos para el mismo tratamiento matemático y número de muestras, los factores mínimos y máximos que mejor funcionaban para cada grupo eran bastante diferentes (36-36, 2-50, 21-35, 14-45 y 19-50). Entonces qué factores debería elegir como buenos para poner en el modelo de predicción final?

    Después de esto hice la prueba de ver qué número máximo de muestras era el que funcionaba mejor, con la opción Batch Processing, hice que el programa estudiara calibraciones cada 50 muestras, para todos los 5 grupos (50, 100, 150, 200...633), y en todos los casos, excepto uno, el resultado era que la mejor opción eran todas las 633 muestras.

    Quizá no termine de entender ésta última opción, cuando le indicamos el número máximo de muestras, el programa hará una predicción haciendo uso del total de éstos espectros? o debería ser capaz de utilizar un valor comprendido entre el mínimo y el máximo de muestras establecido? Viendo la pantalla dónde se va calculando el valor predicho de cada muestra (Local Output) parece que para cada muestra usa siempre el valor máximo (N), menos algunas muestra que se eliminan con la eliminación de Outliers y con T críticos.

    Quizá sea que en mi ejemplo usé muestras relativamente parecidas entre ellas (pienso de terneros), aunque la verdad es que hay tipos de pienso bastante diferentes (inicio-starter, engorde, final...). Quizá la calibración local esté mas bien diseñada para ser utilizada con muestras mucho mas diferentes, cómo diferentes tipos de pienso, o materias primeras.

    Aun así, los resultados de las predicciones en todos los casos han sido bastante buenos y seguiré probando con otros constituyentes, mientras leo sus aportaciones al blog.

    Muchas gracias,
    Un saludo

    ResponderEliminar
    Respuestas
    1. Muy bien las pruebas que estas hacieno Marc, pues es una manera de practicar con la LOCA e ir aprendiendo de ellas que como comentas hay muy poca bibliografía.
      Hoy haciendo una LOCAL he visto de manera clara que dependiendo de los tratamientos que uses y de los segmentos que pongas estos tienen un alto impacto en el número de términos elegidos y en el SEP.
      No obstante veo que has probado esto y que has llegado a una conclusión de que uno de los tratamientos funciona mejor que los otros.
      Yo en tu caso elegiría de todas las pruebas que has hecho un mínimo de factores de 2 y un máximo de 50 de manera que cubre a todos los grupos.
      Respecto al número de muestras tienes que ordenarlas y probablemente emcuentres que los SEP y RSQ de 600 sean muy similares a los de 500 o 400 y no merezca la pena la adición de más muestras a la calibración y que lleve más tiempo del que sea necesario.
      Ten en cuenta que son 809 muestras, no demasiadas para una LOCAL, y si ya se cogiesen muchas sería como hacer una GLOBAL con todas.
      No es necesario que haya muchísima variabilidad dentro del CAL de la LOCAL, por lo que si que la puedes hacer unicamente con un tipo de piensos, pero puedes mezclar en ese CAL otros tipos de piensos similares.
      Es importante que mires también haciendo un PCA normal con "Select Samples from a Spectra file" que no tengas muchos redundantes en la librería ya que en ese caso puede coger muestras que realmente no sean necesarias.
      Comentanos este punto si lo pruebas.

      Eliminar
  2. Muchas gracias José Ramón por responder mis dudas.

    Es cierto que usando 400 o 500 muestras se obtienen resultados de SEP i RSQ parecidos a usar todas las muestras, quizá no hace falta usar todas las 600.
    En cuanto a tener muchas muestras redundantes en la librería, que problemas da? Imagino quizá que las predicciones tienden a dar resultados mas cercanos a los valores de estas muestras redundantes haciendo que la SD de la validación sea mas baja, afectando a los valores mas extremos...?

    Sólo he hecho un par de pruebas respecto a la selección de muestras con el "Select samples from spectra file", pero veo que el programa me selecciona muy pocas muestras con valores de H 0.6 (77 muestras de 634 con el tratamiento S&D 1,4,4,1, y otras parecidas con otros tratamientos), es quizá 0.6 un valor de H demasiado restringente?

    Muchas gracias, seguiré probando
    Un saludo

    ResponderEliminar
    Respuestas
    1. de nada Marc,
      La opción de select samples from a spectra file esta mas pensada para,partiendo de un fichero NIR amplio, seleccionar las muestras con mas variabilidad para mandar a hacer los análisis de laboratorio, de modo que podemos conseguir con menos costo una calibración que represente lo mejor posible a una determinada población. No obstante también podemos hacerla de la manera que comentas y no es necesario poner un valor de 0,6 y podemos bajarlo para que el número de muestras que se mantenga sea mayor. Existe la opción de que selecciones el nu,mero de muestras que te deseas quedar, de modo que el programa te dara un valor de distancia con el cual se quedaran las muestras que has fijado.

      Eliminar
    2. Perfecto, ya he estado probando estas opciones.
      Muchas gracias José Ramón

      Eliminar