Ho due gruppi di soggetti, A e B, ciascuno con una dimensione di circa 400 e circa 300 predittori. Il mio obiettivo è costruire un modello di previsione per una variabile di risposta binaria. Il mio cliente vuole vedere il risultato dell'applicazione del modello costruito da A su B. (Nel suo libro "Regressione Modeling Strategies", @FrankHarrell menziona che è meglio combinare i due set di dati e costruire un modello su quello, poiché così facendo aggiunge potenza e precisione --- vedi pagina 90, Convalida esterna. Tendo a concordare con lui, considerando che la raccolta del tipo di dati che ho è molto costosa e richiede tempo, ma non ho scelta su ciò che il cliente desidera .) Molti dei miei predittori sono altamente correlati e anche molto distorti. Sto usando la regressione logistica per costruire il mio modello predittivo.
I miei predittori provengono principalmente dalla meccanica. Ad esempio, il tempo totale in cui il soggetto è stato sottoposto a una sollecitazione superiore alla soglia per il periodo di tempo , per vari valori di e . È chiaro che proprio dalle loro definizioni, molti di questi tempi totali sono algebricamente correlati tra loro. Molti dei predittori che non sono algebricamente correlati sono correlati a causa della loro natura: i soggetti che sono sottoposti a stress elevato durante un periodo di tempo tendono ad essere stressati durante il periodo di tempo , anche se. Per ridurre la dimensione dei dati, ho raggruppato insieme i predittori correlati (ad esempio, tutti i tempi di sollecitazione totali insieme) e ho usato l'analisi dei componenti principali per rappresentare ciascun cluster. Dato che le variabili erano inclinate, ho provato due percorsi alternativi:
- Prima di fare il PCA, ho usato una trasformazione logaritmica per ridurre l'inclinazione delle variabili.
- Ho usato l'algoritmo ROBPCA di Mia Hubert, implementato dal pacchetto rrcov in R, (PcaHubert), per trovare i principali componenti principali.
Sto usando la forma generale della curva ROC, la forma della curva di richiamo di precisione e l'area sotto la curva ROC (AUC) come misura delle mie prestazioni, e mi piacerebbe ottenere risultati simili per entrambi i set di dati A e B Mi aspettavo di ottenere un risultato molto migliore dall'utilizzo dei componenti principali robusti, ma con mia sorpresa, il primo metodo ha funzionato meglio: migliore valore AUC per entrambi i set di dati A e B, più somiglianza tra le curve ROC e richiamo di precisione più simile curve.
Qual è la spiegazione per questo? E come posso utilizzare componenti principali robusti, invece di provare a far sembrare i miei dati normali? Esistono metodi PCA particolarmente robusti che consiglieresti invece di ROBPCA?