Saltar al contenido principal
LibreTexts Español

9.8: Ejercicio- Eliminación de C.R.A.P. previo a ICA

  • Page ID
    151915
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    \( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)

    ( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\id}{\mathrm{id}}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\kernel}{\mathrm{null}\,}\)

    \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\)

    \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\)

    \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    \( \newcommand{\vectorA}[1]{\vec{#1}}      % arrow\)

    \( \newcommand{\vectorAt}[1]{\vec{\text{#1}}}      % arrow\)

    \( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vectorC}[1]{\textbf{#1}} \)

    \( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)

    \( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)

    \( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)

    \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    \(\newcommand{\avec}{\mathbf a}\) \(\newcommand{\bvec}{\mathbf b}\) \(\newcommand{\cvec}{\mathbf c}\) \(\newcommand{\dvec}{\mathbf d}\) \(\newcommand{\dtil}{\widetilde{\mathbf d}}\) \(\newcommand{\evec}{\mathbf e}\) \(\newcommand{\fvec}{\mathbf f}\) \(\newcommand{\nvec}{\mathbf n}\) \(\newcommand{\pvec}{\mathbf p}\) \(\newcommand{\qvec}{\mathbf q}\) \(\newcommand{\svec}{\mathbf s}\) \(\newcommand{\tvec}{\mathbf t}\) \(\newcommand{\uvec}{\mathbf u}\) \(\newcommand{\vvec}{\mathbf v}\) \(\newcommand{\wvec}{\mathbf w}\) \(\newcommand{\xvec}{\mathbf x}\) \(\newcommand{\yvec}{\mathbf y}\) \(\newcommand{\zvec}{\mathbf z}\) \(\newcommand{\rvec}{\mathbf r}\) \(\newcommand{\mvec}{\mathbf m}\) \(\newcommand{\zerovec}{\mathbf 0}\) \(\newcommand{\onevec}{\mathbf 1}\) \(\newcommand{\real}{\mathbb R}\) \(\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}\) \(\newcommand{\laspan}[1]{\text{Span}\{#1\}}\) \(\newcommand{\bcal}{\cal B}\) \(\newcommand{\ccal}{\cal C}\) \(\newcommand{\scal}{\cal S}\) \(\newcommand{\wcal}{\cal W}\) \(\newcommand{\ecal}{\cal E}\) \(\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}\) \(\newcommand{\gray}[1]{\color{gray}{#1}}\) \(\newcommand{\lgray}[1]{\color{lightgray}{#1}}\) \(\newcommand{\rank}{\operatorname{rank}}\) \(\newcommand{\row}{\text{Row}}\) \(\newcommand{\col}{\text{Col}}\) \(\renewcommand{\row}{\text{Row}}\) \(\newcommand{\nul}{\text{Nul}}\) \(\newcommand{\var}{\text{Var}}\) \(\newcommand{\corr}{\text{corr}}\) \(\newcommand{\len}[1]{\left|#1\right|}\) \(\newcommand{\bbar}{\overline{\bvec}}\) \(\newcommand{\bhat}{\widehat{\bvec}}\) \(\newcommand{\bperp}{\bvec^\perp}\) \(\newcommand{\xhat}{\widehat{\xvec}}\) \(\newcommand{\vhat}{\widehat{\vvec}}\) \(\newcommand{\uhat}{\widehat{\uvec}}\) \(\newcommand{\what}{\widehat{\wvec}}\) \(\newcommand{\Sighat}{\widehat{\Sigma}}\) \(\newcommand{\lt}{<}\) \(\newcommand{\gt}{>}\) \(\newcommand{\amp}{&}\) \(\definecolor{fillinmathshade}{gray}{0.9}\)

    En este ejercicio, vamos a ver otro tipo de desviación de voltaje grande e idiosincrásica que debería eliminarse antes de la descomposición del ICA, a saber, el enorme C.R.A.P. en particular, queremos deshacernos de las deflexiones de voltaje que son lo suficientemente grandes como para impactar en la calidad de la descomposición del ICA pero son suficientemente infrecuentes o irregulares en su distribución del cuero cabelludo que no pueden ser bien capturados por un solo CI.

    El participante con el que hemos estado trabajando hasta ahora, el Asunto 10, no tiene realmente ningún C.R.A.P. enorme, así que vamos a ver el Asunto 6 para este ejercicio. Salga y reinicie EEGLAB, y abra el conjunto de datos 6_MMN_preprocessed_filt_100HZ_DEL. Este conjunto de datos ya ha sido preprocesado para mejorar la descomposición de ICA, incluyendo el filtrado de 1-30 Hz, el remuestreo a 100 Hz y la eliminación de los períodos de interrupción.

    Como es habitual, deberías comenzar desplazándote por los datos para ver qué tipos de artefactos están presentes. Además de los parpadeos y movimientos oculares habituales, verás algunas deflexiones de voltaje de aspecto extraño en varios momentos, incluidos 70, 72, 96, 254, 403 y 413 segundos. Estas deflexiones son algo así como parpadeos, pero mucho más grandes y con una distribución diferente y variable del cuero cabelludo. Por ejemplo, la deflexión a ~70 segundos está presente en Fp2 pero no en Fp1, y la deflexión a ~72 segundos es enorme en Veog-menor y menor en Fp1 y Fp2, sin inversión de polaridad. No tengo idea de qué causó estas deflexiones, pero son grandes, raras y tienen una distribución inconsistente en el cuero cabelludo, por lo que es probable que estropeen la descomposición de ICA.

    Para ver esto, echemos un vistazo a la descomposición ICA, que hice igual que en los ejercicios anteriores (excluyendo las señales bipolares EOG en los Canales 32 y 33). Cargue el conjunto de datos que creé con la descomposición (6_mmn_preprocessed_filt_100hz_del_ iCaweights) y luego mire los CI usando EEGLAB > Herramientas > Inspección/etiqueta componentes por mapa. Los mapas IC se muestran en la Captura de Pantalla 9.9. (Puedes hacer la descomposición tú mismo si quieres, pero tus mapas pueden verse un poco diferentes).

    Captura de pantalla 9.9

    Lo primero que debes notar es que muchos de los mapas son irregulares, incluso en la mitad superior de los CI (por ejemplo, CI 6, 7 y 14). Ese es un fuerte indicio de que la descomposición no funcionó bien. Lo siguiente que debes tener en cuenta es que IC 1 (que debe dar cuenta de mucha varianza, porque es el primer IC) no tiene un mapa de cuero cabelludo que corresponda a un artefacto típico o señal cerebral, con un enfoque estrecho en Fp2. Haga clic en el 1 encima del mapa para que IC 1 vea sus inmuebles. El curso de tiempo demuestra que está fuertemente activo durante unos breves periodos de tiempo y no en otros momentos. Otra vez, eso es inusual.

    Ahora mira IC 2 (y da clic en los 2 de arriba del mapa para ver sus propiedades). Tiene el tipo de mapa del cuero cabelludo que esperaríamos para parpadeos, y el curso del tiempo contiene el tipo de ráfagas distribuidas que esperaríamos para parpadeos. Pero tenga en cuenta que los pesos en el mapa del cuero cabelludo son negativos, mientras que vimos pesos positivos en los sitios frontales para CI relacionados con el parpadeo en nuestros ejercicios anteriores. Esto se debe a que la polaridad de los mapas IC es arbitraria, y un CI dado puede tener pesos positivos o pesos negativos. Sólo por diversión, repetí la descomposición por segunda vez, y descubrí que IC 2 tenía pesos positivos en esta repetición de la descomposición. La polaridad de los pesos en los mapas es completamente arbitraria, y la polaridad de los valores de activación también se invertirá para llegar a la polaridad de voltaje correcta cuando reconstruyamos los datos. Entonces, las inversiones de polaridad del mapa no son un problema.

    Para ver esto, desplácese por las activaciones IC usando EEGLAB > Gráfica > Activaciones de componentes (scroll). Verás que IC 2 tiene deflexiones negativas en los momentos de parpadeos, mientras que vimos deflexiones positivas para el IC de parpadeo en nuestros ejemplos anteriores (por ejemplo, Captura de pantalla 9.4). Si multiplicamos los valores negativos de activación por los pesos negativos para los sitios frontales, obtendremos un voltaje positivo. Entonces, no importa si tenemos pesos positivos junto con activaciones positivas o pesos negativos junto con activaciones negativas. En cualquier caso, los parpadeos se reconstruirán como un voltaje positivo en los sitios frontales (pero un voltaje negativo en Veog-inferior).

    Otra cosa que debes notar en los mapas IC es que no hay un IC con la topografía del cuero cabelludo que esperaríamos para los movimientos oculares horizontales. Hubo muchos movimientos oculares horizontales claros en el canal Heog-bipolar cuando nos desplazamos por los datos, pero no hemos capturado estos movimientos oculares como un CI distinto en esta descomposición. Eso también indica que no funcionó bien. Algunos participantes no tienen muchos movimientos oculares horizontales, y la falta de un CI para los movimientos oculares horizontales no sería un problema para esos participantes).

    Ahora intentemos mejorar la descomposición eliminando los periodos de tiempo con los enormes artefactos de C.R.A.P. Haga 6_MMN_Preprocessed_filt_100HZ_DEL el conjunto de datos activo y seleccione EEGLAB > ERPLAB > EEG de preproceso > Rechazo de artefactos (EEG continuo). Esta rutina es como la rutina de amplitud pico a pico de ventana móvil para la detección de artefactos que usamos en el capítulo anterior, pero con dos diferencias. Primero, opera en EEG continuo en lugar de EEG de época. Segundo, eventualmente elimina secciones de los datos con artefactos en lugar de simplemente marcarlos.

    En la ventana que aparece para esta rutina, ingresa 500 como umbral. No estamos tratando de rechazar parpadeos u otros artefactos ordinarios, así que necesitamos un umbral mucho más alto para esta rutina del que usaríamos para la detección normal de artefactos. 500 es un buen umbral de inicio, pero es posible que deba ajustarlo para algunos participantes. Ingrese 1000 para el ancho de la ventana móvil y 500 como tamaño de paso. Esto hará que busque periodos de tiempo de 1000 ms en los que el voltaje pico a pico exceda el umbral, desplazando la ventana en incrementos de 500 ms. Por último, ingresa 1:31 para los canales. Vamos a excluir los Canales 32 y 33 (los canales bipolares EOG) cuando hagamos la descomposición ICA, así que no nos importa el enorme C.R.A.P. en estos canales. (También es posible que desee excluir Fp1 y Fp2 si tiene parpadeos tan grandes en estos canales que los parpadeos terminan excediendo el umbral de rechazo). Deje todas las casillas sin marcar y haga clic en ACEPTAR para ejecutar la rutina.

    Cuando termine, debería ver en la ventana de comandos de Matlab que la rutina ha encontrado 15 segmentos de datos para rechazar. En este punto, estos segmentos acaban de ser marcados, pero se eliminarán cuando guardemos el conjunto de datos. También debería ver una ventana para desplazarse por el conjunto de datos marcado. Si te desplazas por los datos, verás segmentos de datos que están marcados en amarillo a ~70 y ~72 segundos (así como a los 96, 254, 403 y 413 segundos). Estos son los periodos de tiempo en los que vimos el enorme C.R.A.P., por lo que la rutina de rechazo de artefactos está funcionando bien.

    Sin embargo, hay una cosa que es un poco extraña, a saber, que eliminaremos los datos de ~70-71 segundos y de ~71.5-73 segundos, dejando solo 500 ms de datos no rechazados en el medio. La rutina de rechazo tiene una característica para evitar este tipo de rarezas. Vamos a darle una oportunidad. Primero, cierre la ventana de trazado de desplazamiento y cancele la ventana para guardar el conjunto de datos. Ahora seleccione EEGLAB > ERPLAB > EEG de preproceso > Rechazo de artefactos (EEG continuo) nuevamente. Mantenga los parámetros iguales, pero marque la casilla etiquetada Unir segmentos artifácticos separados por menos de y ponga 1000 en el cuadro de texto correspondiente. Esto provocará que se eliminen los segmentos de <1000 ms entre los segmentos eliminados. Haga clic en ACEPTAR para ejecutar la rutina. Ahora deberías ver que un solo segmento continuo de ~70-73 ms ahora ha sido marcado para su eliminación en lugar de dos segmentos separados pero cercanos.

    Para eliminar realmente los segmentos marcados, vaya a la ventana que apareció para guardar el nuevo conjunto de datos y guárdalo con el nombre predeterminado. Ahora ve a EEGLAB > Trazar > Datos de canal (scroll) y mira el resultado del rechazo de artefacto que acabas de realizar. Si miras el periodo de 5 segundos a partir de los 68 segundos, verás que la actividad artefactual a ~70 segundos se ha ido y ha sido reemplazada por un evento límite, el cual se ha insertado para marcar la discontinuidad en los datos que se produjo al eliminar el segmento de ~70-73 segundos.

    Tenga en cuenta que también puede rechazar manualmente secciones con C.R.A.P. enorme usando EEGLAB > Herramientas > Inspección/rechazo de datos a simple vista. La rutina de rechazo de artefactos (EEG continuo) de ERPLAB es más rápida y fácilmente programable que la rutina de rechazo manual, pero a veces es útil hacerlo manualmente en su lugar (o además). Solo recuerda que tu objetivo es eliminar segmentos que causarán problemas para ICA, no eliminar segmentos con artefactos ordinarios. Es decir, se desea eliminar segmentos con deflexiones de voltaje que son grandes e infrecuentes, sobre todo si tienen una distribución inconsistente en el cuero cabelludo.

    Ahora veamos cómo la eliminación del enorme C.R.A.P. ha impactado en la descomposición del ICA. Puede ver la descomposición resultante cargando el conjunto de datos llamado 6_mmn_preprocessed_filt_100hz_del_car_icaweights y luego seleccionando usando EEGLAB > Herramientas > Inspección/etiqueta componentes por mapa. Los mapas del cuero cabelludo se muestran en la Captura de Pantalla 9.10.

    Captura de pantalla 9.10

    Lo primero que hay que notar es que los mapas del cuero cabelludo son más regulares que los que obtuvimos sin eliminar el enorme C.R.A.P. (ver Captura de Pantalla 9.9). Todavía hay algunos mapas irregulares, pero principalmente en la mitad inferior, que no dan cuenta de mucha varianza (por ejemplo, CI 20 y 23). Lo segundo que hay que notar es que IC 1 es ahora un componente de parpadeo. Y lo tercero a notar es que ahora tenemos un IC con el mapa habitual del cuero cabelludo para los movimientos oculares horizontales (IC 14). Entonces, al eliminar segmentos con un enorme C.R.A.P., obtuvimos una descomposición ICA mucho mejor, a pesar de que solo eliminamos ~10 segundos de datos.

    El siguiente paso es transferir los pesos ICA al dataset original (que están en un archivo llamado 6_MMN_Preprocessed). Entonces debes desplazarte por los datos y activaciones de componentes (simultáneamente) para comenzar el proceso de determinar qué CI excluir de los datos reconstruidos.

    Siga adelante y elimine IC 1 (EEGLAB > Herramientas > Eliminar componentes de los datos) y, a continuación, desplácese por el conjunto de datos resultante. Tenga en cuenta que este conjunto de datos tiene los períodos de descanso al principio y al final, por lo que los enormes artefactos de C.R.A.P. son ahora unos 10 segundos más tarde que antes.

    Deberías ver que la corrección de parpadeo ha hecho un buen trabajo al eliminar los voltajes producidos por los parpadeos ordinarios. Sin embargo, los periodos con enormes artefactos C.R.A.P. siguen presentes y aún tienen grandes artefactos. Por lo tanto, querría realizar la detección de artefactos en los datos de época para marcar estas épocas y luego rechazarlas en el proceso de promediado.


    This page titled 9.8: Ejercicio- Eliminación de C.R.A.P. previo a ICA is shared under a CC BY 4.0 license and was authored, remixed, and/or curated by Steven J Luck directly on the LibreTexts platform.