Tengo dos grupos de sujetos, A y B, cada uno con un tamaño de aproximadamente 400 y aproximadamente 300 predictores. Mi objetivo es construir un modelo de predicción para una variable de respuesta binaria. Mi cliente quiere ver el resultado de aplicar el modelo creado a partir de A en B. (En su libro, "Estrategias de modelado de regresión", @FrankHarrell menciona que es mejor combinar los dos conjuntos de datos y construir un modelo sobre eso, ya que hacerlo agrega potencia y precisión --- vea la página 90, Validación externa. Tiendo a estar de acuerdo con él, considerando que recopilar el tipo de datos que tengo es muy costoso y requiere mucho tiempo. Pero no tengo elección sobre lo que quiere el cliente .) Muchos de mis predictores están altamente correlacionados y también muy sesgados. Estoy usando regresión logística para construir mi modelo predictivo.
Mis predictores provienen principalmente de la mecánica. Por ejemplo, el tiempo total que el sujeto estuvo bajo un estrés superior al umbral para el período de tiempo [ t 1 , t 2 ] , para varios valores de α > 0 y 0 ≤ t 1 < t 2 . Está claro que solo por sus definiciones, muchos de estos tiempos totales están relacionados algebraicamente entre sí. Muchos de los predictores que no están relacionados algebraicamente están relacionados debido a su naturaleza: sujetos que están bajo estrés durante un período de tiempo [ t 1 ,tienden a estar bajo estrés durante el período de tiempo , incluso si [ t 1 , t 2 ] ∩ [ t 3 , t 4 ] = ∅ . Para reducir la dimensión de los datos, agrupé los predictores relacionados (por ejemplo, todos los tiempos de estrés total juntos) y utilicé el análisis de componentes principales para representar cada grupo. Como las variables estaban sesgadas, probé dos caminos alternativos:
- Antes de hacer el PCA, utilicé una transformación logarítmica para reducir el sesgo en las variables.
- Utilicé el algoritmo ROBPCA de Mia Hubert, implementado por el paquete rrcov en R, (PcaHubert), para encontrar los componentes principales robustos.
Estoy usando la forma general de la curva ROC, la forma de la curva de recuperación de precisión y el área bajo la curva ROC (AUC) como mis medidas de rendimiento, y me gustaría obtener resultados similares para los conjuntos de datos A y B Esperaba obtener un resultado mucho mejor al usar los componentes principales robustos, pero para mi sorpresa, el primer método fue mejor: mejor valor de AUC para los conjuntos de datos A y B, más similitud entre las curvas ROC y un recuerdo de precisión más similar. curvas.
¿Cuál es la explicación para esto? ¿Y cómo puedo usar componentes principales robustos, en lugar de tratar de hacer que mis datos se vean normales? ¿Hay algún método PCA robusto en particular que recomendaría en lugar de ROBPCA?