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?
la source
Réponses:
En bref, et d'après votre description, vous comparez la pomme aux oranges ... de deux manières.
Considérez cet exemple:
Maintenant, placez les deux modèles (ROBPCA et pca classique sur le journal des données):
Maintenant, considérons l'axe de la plus petite variation trouvée par chaque méthode (ici, pour plus de commodité, je le trace sur l'espace transformé en log mais vous obtiendriez les mêmes conclusions sur l'espace d'origine).
Visiblement, ROBPCA gère mieux la partie non contaminée des données (les points verts):
Mais maintenant, j'arrive à mon deuxième point.
vous avez cela (c'est calme visible dans l'intrigue ci-dessus):
Mais vous semblez surpris que:
--la façon dont vous avez décrit votre procédure de test, vous calculez le critère d'évaluation de l'ajustement sur l'ensemble de données, donc votre critère d'évaluation est une fonction monotone de (2) où vous devez utiliser une fonction monotone de (1) -
En d'autres termes, ne vous attendez pas à ce qu'un ajustement robuste ait une plus petite somme de résidus orthogonaux au carré qu'une procédure non robuste sur votre ensemble de données complet: l'estimateur non robuste est déjà le minimiseur unique du SSOR sur l'ensemble de données complet.
la source