En los análisis de clasificación SVM (núcleo lineal) de un conjunto de datos de expresión génica (~ 400 variables / genes) para ~ 25 cada uno de los casos y controles, encuentro que los clasificadores basados en la expresión génica tienen características de rendimiento muy buenas. Los casos y los controles no difieren significativamente para una serie de variables clínicas / demográficas categóricas y continuas (según las pruebas exactas o t de Fisher), pero difieren significativamente para la edad.
¿Hay alguna manera de mostrar que los resultados del análisis de clasificación están o no influenciados por la edad?
Estoy pensando en reducir los datos de expresión génica a componentes principales, y hacer un análisis de correlación de Spearman de los componentes contra la edad.
¿Es este un enfoque razonable? Alternativamente, ¿puedo verificar la correlación entre la edad y los valores de probabilidad de pertenencia a la clase obtenidos en el análisis SVM.
Gracias.
fuente
Respuestas:
Hay al menos dos posibilidades para estos datos. Una posibilidad es que sus microarrays no contengan marcadores de enfermedad. Pero sí contienen información sobre la edad, y dado que en su caso las poblaciones enfermas y de control son de diferentes edades, se obtiene la ilusión de un buen rendimiento de clasificación. Otra posibilidad es que los microarrays sí contienen marcadores de enfermedades y, además, estos marcadores es exactamente en lo que se enfoca SVM.
Parece que los componentes principales de los datos pueden estar correlacionados con la edad en ambas posibilidades. En el primer caso será porque la edad es lo que expresan los datos. En el segundo caso, será porque la enfermedad es lo que expresan los datos, y esta enfermedad se correlaciona con la edad (para su conjunto de datos). No creo que haya una manera fácil de ver el valor de correlación y concluir cuál es el caso.
Podría pensar en varias formas de evaluar el efecto de manera diferente. Una opción es dividir su conjunto de entrenamiento en grupos de igual edad. En este caso, para las edades "jóvenes", la clase normal tendrá más ejemplos de entrenamiento que la clase de enfermedad, y viceversa para las edades más avanzadas. Pero mientras haya suficientes ejemplos, esto no debería ser un problema. Otra opción es hacer lo mismo con los conjuntos de prueba, es decir, ver si el clasificador tiende a decir "enfermo" con más frecuencia para los pacientes mayores. Ambas opciones podrían ser difíciles ya que no tienes tantos ejemplos.
Una opción más es entrenar dos clasificadores. En el primero, la única característica será la edad. Parece que esto tiene un AUC de 0,82. En el segundo, habrá datos de edad y microarrays. (Parece que actualmente entrena un clasificador diferente que solo utiliza los datos de microarrays, y le da AUC 0.95. Agregar la función de edad explícitamente probablemente mejorará el rendimiento, por lo que AUC será aún mayor). Si el segundo clasificador funciona mejor que el primero, esto indica que la edad no es lo único de interés en estos datos. Según su comentario, la mejora en AUC es de 0.13 o más, lo que parece justo.
fuente