Les méthodes robustes sont-elles vraiment meilleures?

17

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 ]α[t1,t2]α>00t1<t2[t1,t2]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:[t3,t4][t1,t2][t3,t4]=

  • 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?

user765195
la source
«J'ai regroupé les prédicteurs associés», pouvez-vous mieux expliquer quelles étapes cela implique? "Je m'attendais à obtenir un bien meilleur résultat en utilisant les composants principaux robustes" Pouvez-vous expliquer comment vous mesurez les résultats?
user603
Pourquoi pensez-vous qu'il est préférable de combiner les ensembles de données? Je ne suis pas d'accord du tout. Une difficulté que ce genre de problème a est de trop s'appuyer sur les données particulières. Tester le modèle sur un autre ensemble de données est une bonne idée.
Peter Flom - Réintègre Monica
Dans quel sens l'APC régulière sur les variables de journal était-elle "meilleure"? Est-ce que cela avait un sens plus intuitif? At-il donné un meilleur résultat dans le deuxième ensemble de données?
Peter Flom - Réintègre Monica
Merci @PeterFlom pour vos commentaires! J'ai mis à jour la question selon vos commentaires.
user765195
Merci @ user603 pour votre commentaire! J'ai mis à jour la question pour refléter votre commentaire.
user765195

Réponses:

17

En bref, et d'après votre description, vous comparez la pomme aux oranges ... de deux manières.

Journal

Considérez cet exemple:

library("MASS")
library("copula")
library("rrcov")
p<-2;n<-100;

eps<-0.2
l1<-list()
l3<-list(rate=1)
#generate assymetric data
model<-mvdc(claytonCopula(1,dim=p),c("unif","exp"),list(l1,l3));
x1<-rMvdc(ceiling(n*(1-eps)),model);
#adding 20% of outliers at the end:
x1<-rbind(x1,mvrnorm(n-ceiling(n*(1-eps)),c(7,3),1/2*diag(2))) 

Les données

Maintenant, placez les deux modèles (ROBPCA et pca classique sur le journal des données):

x2<-log(x1)
v0<-PcaClassic(x2)
v1<-PcaHubert(x2,mcd=FALSE,k=2)

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).

modèle

Visiblement, ROBPCA gère mieux la partie non contaminée des données (les points verts):

Mais maintenant, j'arrive à mon deuxième point.

Huzjewje

vous avez cela (c'est calme visible dans l'intrigue ci-dessus):

jeHu(zje)2<jeHu(wje)2(1)

Mais vous semblez surpris que:

je=1n(zje)2>je=1n(wje)2(2)

--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.

user603
la source
1
Merci pour votre réponse. Il m'a fallu un certain temps pour expérimenter d'autres données et réfléchir à votre réponse pour vraiment la comprendre.
user765195