Pca

健壯的方法真的更好嗎?

  • August 2, 2012

我有兩組受試者,A 和 B,每組的大小約為 400,以及大約 300 個預測變量。我的目標是建立一個二元響應變量的預測模型。我的客戶希望看到在 B 上應用從 A 構建的模型的結果。(在他的《回歸建模策略》一書中,@FrankHarrell 提到最好將兩個數據集組合起來並在此基礎上構建模型,因為這樣做會增加功率和精度 — 見第 90 頁,外部驗證。我傾向於同意他的觀點,考慮到收集我擁有的數據類型非常昂貴且耗時。但我無法選擇客戶想要什麼.) 我的許多預測指標都高度相關,而且非常偏斜。我正在使用邏輯回歸來構建我的預測模型。

我的預測主要來自力學。例如,受試者處於高於閾值的壓力下的總時間對於時間段, 對於不同的值和. 很明顯,僅從它們的定義來看,這些總時間中的許多都是在代數上相互關聯的。許多在代數上不相關的預測因子是相關的,因為它們的性質:在一段時間內處於高壓力下的受試者在一段時間內往往處於高壓力之下, 即使. 為了減少數據的維度,我將相關的預測變量聚集在一起(例如,所有的總壓力時間放在一起),並使用主成分分析來表示每個集群。由於變量是傾斜的,我嘗試了兩種替代路徑:

  • 在進行 PCA 之前,我使用了對數變換來減少變量的偏斜。
  • 我使用 Mia Hubert 的 ROBPCA 算法(由 R 中的 rrcov 包(PcaHubert)實現)來找到穩健的主成分。

我使用 ROC 曲線的整體形狀、精確召回曲線的形狀和 ROC 曲線下面積 (AUC) 作為我的性能指標,並且我希望對數據集 A 和 B 獲得相似的結果. 我原以為使用穩健的主成分會得到更好的結果,但令我驚訝的是,第一種方法做得更好:數據集 A 和 B 的 AUC 值更好,ROC 曲線之間的相似性更高,精確召回率更相似曲線。

對此有何解釋?我怎樣才能使用健壯的主成分,而不是試圖讓我的數據看起來像正常的?您是否推薦任何特別強大的 PCA 方法來代替 ROBPCA?

簡而言之,根據您的描述,您將蘋果與橙子進行比較……以兩種方式。

讓我簡要地解決第一個可比性問題。對數變換沒有解決異常值問題。但是,它可以幫助使嚴重偏斜的數據更加對稱,從而可能提高任何 PCA 方法的擬合度。簡而言之,採取您的數據不能替代進行穩健的分析,在某些情況下(偏斜數據)很可能是一種補充。撇開第一個混雜因素不談,在本文的其餘部分,我使用一些非對稱雙變量數據的對數轉換版本。

考慮這個例子:

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

數據

現在,在數據日誌中擬合兩個模型(ROBPCA 和經典 pca):

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

現在,考慮每種方法找到的最小變化軸(為了方便起見,我將其繪製在對數變換空間上,但您會在原始空間上得到相同的結論)。

模型

顯然,ROBPCA 在處理數據中未受污染的部分(綠點)方面做得更好:

但是現在,我要談第二點了。

–調用所有綠點的集合和() 對最小變化軸的穩健(經典)pca 得分——

你有這個(這在上圖中很明顯):

但你似乎很驚訝:

–按照您描述測試過程的方式,您計算整個數據集的擬合評估標準,因此您的評估標準是 (2) 的單調函數,您應該使用 (1) 的單調函數–

換句話說,不要期望穩健擬合的正交殘差平方和小於完整數據集上的非穩健過程:非穩健估計器已經是完整數據集上 SSOR 的唯一最小化器。

引用自:https://stats.stackexchange.com/questions/33520

comments powered by Disqus