簡體   English   中英

如何在PCA后計算T2 Hotelling?

[英]How can I compute T2 Hotelling after PCA?

在PCA分析之后,我需要計算Hotelling T2和SPE(Q)。 我是使用庫mdatools中的pca函數完成的,但是我看到計算的PC與prcomp或princomp函數計算的不同。 為什么?

library(mdatools)
NF4.3.pca4 <- pca(NF4.3, ncomp = 15, center = T, scale = T)
res <- NF4.3.pca4$calres

NF4.3.pca <- prcomp(NF4.3, center = T, scale. = T) #different eigenvalues

還有另一種從主成分計算T2和SPE的方法嗎?

數據:

ASSORB_CAT1;ASSORB_CAT3;ASSORB_VOLANO;AZOTO_IN
0.03662109;23.55957;-12.30469;39.3
0;25.36621;-11.09619;39.2
-0.02441406;21.92383;-11.26709;39.2
-0.02441406;23.10791;-11.07178;39.1
-0.04882813;22.81494;-10.57129;39.59975
0;24.24316;-11.23047;39.89737
0;22.63184;-11.43799;39.8
-0.04882813;24.34082;-13.61084;39.5
0;21.83838;-11.1084;39.4
0;24.3042;-12.08496;39.3
0;24.67041;-12.40234;39.3

我將解釋另一個數據集,因為我無法訪問您正在分析的內容。 您在我的數據集上應用的兩種方法是相同的。 可能令人困惑的是,如果你看一下stats_pca$sdev它是特征值向量的根平方 ,而mdatools_pca$eigenvals自己報告特征值。

library(mdatools)
data("mtcars")
stats_pca <- prcomp(mtcars, center=TRUE, scale.=TRUE)
mdatools_pca <- mdatools::pca(mtcars, center=TRUE, scale=TRUE)

all.equal(sqrt(mdatools_pca$eigenvals)[1:length(stats_pca$sdev)], stats_pca$sdev)
# TRUE

如果你想繼續使用Hotelling的T2,我會推薦這個: PCA和Hotelling的T ^ 2,用於R中的置信度

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM