¿Puedo usar un análisis de componentes independiente si tengo dos poblaciones discretas de fuentes de señal mezcladas?

10

Entiendo (principalmente) cómo funciona el análisis de componentes independientes (ICA) en un conjunto de señales de una población, pero no logro que funcione si mis observaciones (matriz X) incluyen señales de dos poblaciones diferentes (que tienen medios diferentes) y yo Me pregunto si es una limitación inherente de ICA o si puedo resolver esto. Mis señales son diferentes al tipo común que se analiza porque mis vectores fuente son muy cortos (por ejemplo, 3 valores de largo), pero tengo muchas (por ejemplo, 1000's) de observaciones. Específicamente, estoy midiendo la fluorescencia en 3 colores donde las señales amplias de fluorescencia pueden "desbordarse" en otros detectores. Tengo 3 detectores y uso 3 fluoróforos diferentes en las partículas. Uno podría pensar en esto como una espectroscopía de muy baja resolución. Cualquier partícula fluorescente podría tener una cantidad arbitraria de cualquiera de los 3 fluoróforos diferentes. Sin embargo, tengo un conjunto mixto de partículas que tienden a tener concentraciones bastante distintas de fluoróforos. Por ejemplo, un conjunto generalmente puede tener mucho fluoróforo # 1 y poco fluoróforo # 2, mientras que el otro conjunto tiene poco de # 1 y mucho # 2.

Básicamente, quiero desconvolver el efecto de derrame para estimar la cantidad real de cada fluoróforo en cada partícula, en lugar de tener una fracción de señal de un fluoróforo agregado a la señal de otro. Parecía que esto sería posible para ICA, pero después de algunas fallas significativas (la transformación de matriz parece priorizar la separación de las poblaciones en lugar de girar para optimizar la independencia de la señal), me pregunto si ICA no es la solución correcta o si necesito preprocesar mis datos de alguna otra manera para abordar esto.

Resultados del algoritmo FastICA con 2 poblaciones en 1 conjunto de datos

Los gráficos muestran mis datos sintéticos utilizados para demostrar el problema. Comenzando con fuentes "verdaderas" (panel A) que consisten en una mezcla de 2 poblaciones, creé una matriz de mezcla (A) "verdadera" y calculé la matriz de observación (X) (panel B). FastICA estima la matriz S (que se muestra en el panel C) y, en lugar de encontrar mis fuentes verdaderas, me parece que rota los datos para minimizar la covarianza entre las 2 poblaciones.

Buscando alguna sugerencia o idea.

Eduardo
fuente

Respuestas:

1

Conceptualmente, para que ICA funcione, requiere N observaciones del MISMO fenómeno e intentará descomponer estas señales (las mezclas) en <N componentes.

Según su descripción, cada detector cuenta una partícula de energía diferente. Es decir, las "Mezclas" son en realidad tres señales diferentes. Considere el ejemplo en el que usa las grabaciones de 4 micrófonos diferentes para tratar de distinguir entre 2 fuentes de sonido diferentes (mutuamente independientes). En este caso, cada micrófono está grabando una suma (diferente) de AMBAS fuentes de sonido. En su caso, debido al fenómeno que está observando, cada "micrófono" (detector) NO graba una suma (diferente) de AMBAS fuentes, sino que registra cada fuente por separado (la mayoría de las veces).

Como describe, a veces, el mismo evento puede ser registrado por más de un detector (desbordamiento). En este caso, si insiste con ICA, entonces intentaría descomponer esa suma.

Por lo tanto, quizás debería considerar algo más simple, como obtener la correlación cruzada entre los eventos registrados por cada uno de los tres detectores diferentes como un indicador de la cantidad de desbordamiento.

Pero en este caso, en lugar de examinar 1000 "trillizos" de observaciones, crea tres series temporales diferentes. Una serie de tiempo por detector que describe los eventos (en el tiempo) de cada detector.

Si sus detectores y su aparato son lo suficientemente rápidos, esta señal se verá como una serie de pulsos de descomposición exponencial. Si no, su señal se verá como un tren de pulsos involucrados con la respuesta de impulso del sistema (una versión suavizada). En cualquier caso, si el mismo evento ha sido detectado por más de un detector, la salida de estos detectores aumentará simultáneamente de nivel (y aumentará la correlación cruzada o alguna otra forma de métrica de correlación). Será más fácil detectar ese aumento en el primer caso (sistema rápido).

Por lo tanto, el problema ahora se convierte en uno en el que debe decidir a qué detector asignar ese evento para que se cuente correctamente. Hay varias maneras de hacerlo (sin usar ICA), pero tendrá que conocer la respuesta espectral de su detector (amplitud de pulso VS energía o salida de voltaje VS energía). Entonces podrá crear una suma ponderada de las partículas contadas buscando el "peso" de cada pulso en la respuesta de su detector. O podría aplicar una "ventana" a los pulsos. Es decir, considere un umbral agudo alrededor de la respuesta máxima del detector y solo cuente los eventos que generan tales pulsos (generalmente altos). Si se considera una región corta alrededor del rendimiento máximo del detector, se rechazarán los pulsos (inferiores) creados por el derrame.

Espero que esto ayude. Espero haber entendido su configuración correctamente.

AUTOMÓVIL CLUB BRITÁNICO
fuente
0

Parece que sus "señales" no son del tipo adecuado para ICA. Sin embargo, parece que podría beneficiarse de los algoritmos de agrupamiento, especialmente si conoce la señal distinta (nivel de energía o longitud de onda) que se espera de cada tipo de fluoróforo. Podría crear los clústeres sintéticos ideales y agrupar los datos de observación con ellos. Al variar la cantidad de conglomerados y otros parámetros, debería poder desplegar el derrame de cada fluoróforo entre sí como conglomerados adicionales. Los métodos de agrupamiento espectral o jerárquico podrían ser los mejores para esto (a diferencia de k-means).

wwwslinger
fuente