J'ai deux groupes de sujets, A et B, chacun avec une taille d'environ 400 et environ 300 prédicteurs. Mon objectif est de construire un modèle de prédiction pour une variable de réponse binaire. Mon client veut voir le résultat de l'application du modèle construit à partir de A sur B. (Dans son livre, "Regression Modeling Strategies", @FrankHarrell mentionne qu'il est préférable de combiner les deux ensembles de données et de construire un modèle sur cela, car cela ajoute puissance et précision --- voir page 90, Validation externe. J'ai tendance à être d'accord avec lui, considérant que la collecte du type de données dont je dispose est très coûteuse et prend du temps. Mais je n'ai pas le choix sur ce que veut le client .) Beaucoup de mes prédicteurs sont fortement corrélés et également très biaisés. J'utilise la régression logistique pour construire mon modèle prédictif.
Mes prédicteurs viennent principalement de la mécanique. Par exemple, le temps total pendant lequel le sujet était soumis à une contrainte supérieure au seuil pour la période de temps [ t 1 , t 2 ] , pour différentes valeurs de α > 0 et 0 ≤ t 1 < t 2 . Il est clair que d'après leurs définitions, bon nombre de ces durées totales sont algébriquement liées les unes aux autres. De nombreux prédicteurs qui ne sont pas liés algébriquement sont liés en raison de leur nature: sujets soumis à un stress élevé pendant une période de temps [ t 1 , t 2 ]ont tendance à être soumis à des contraintes élevées pendant la période , même si [ t 1 , t 2 ] ∩ [ t 3 , t 4 ] = ∅ . Pour réduire la dimension des données, j'ai regroupé les prédicteurs associés (par exemple, tous les temps de stress totaux ensemble) et utilisé l'analyse en composantes principales pour représenter chaque cluster. Étant donné que les variables étaient asymétriques, j'ai essayé deux chemins alternatifs:
- Avant de faire l'ACP, j'ai utilisé une transformation logarithmique pour réduire le biais dans les variables.
- J'ai utilisé l'algorithme ROBPCA de Mia Hubert, tel qu'implémenté par le package rrcov dans R, (PcaHubert), pour trouver les principaux composants robustes.
J'utilise la forme générale de la courbe ROC, la forme de la courbe de rappel de précision et la zone sous la courbe ROC (AUC) comme mes mesures de performance, et j'aimerais obtenir des résultats similaires pour les deux jeux de données A et B Je m'attendais à obtenir un bien meilleur résultat en utilisant les composants principaux robustes, mais à ma grande surprise, la première méthode a fait mieux: meilleure valeur AUC pour les deux jeux de données A et B, plus de similitude entre les courbes ROC et rappel de précision plus similaire courbes.
Quelle est l'explication pour ça? Et comment puis-je utiliser des composants principaux robustes, au lieu d'essayer de donner à mes données un aspect normal? Y a-t-il des méthodes PCA particulièrement robustes que vous recommanderiez au lieu de ROBPCA?