princomp
位於 stats
包(package)。 說明
princomp
對給定的數值數據矩陣執行主成分分析,並將結果作為類 princomp
的對象返回。
用法
princomp(x, ...)
## S3 method for class 'formula'
princomp(formula, data = NULL, subset, na.action, ...)
## Default S3 method:
princomp(x, cor = FALSE, scores = TRUE, covmat = NULL,
subset = rep_len(TRUE, nrow(as.matrix(x))), fix_sign = TRUE, ...)
## S3 method for class 'princomp'
predict(object, newdata, ...)
參數
formula |
沒有響應變量的公式,僅引用數字變量。 |
data |
包含公式 |
subset |
用於選擇數據矩陣 |
na.action |
一個函數,指示當數據包含 |
x |
為主成分分析提供數據的數字矩陣或 DataFrame 。 |
cor |
一個邏輯值,指示計算是否應使用相關矩陣或協方差矩陣。 (隻有在沒有常量變量的情況下才能使用相關矩陣。) |
scores |
一個邏輯值,指示是否應計算每個主成分的分數。 |
covmat |
協方差矩陣,或由 |
fix_sign |
是否應該選擇載荷和分數的符號,以便每個載荷的第一個元素都是非負的? |
... |
傳遞給其他方法或從其他方法傳遞的參數。如果 |
object |
繼承自 |
newdata |
一個可選的 DataFrame 或矩陣,用於查找用於預測的變量。如果省略,則使用分數。如果原始擬合使用具有列名稱的公式或 DataFrame 或矩陣,則 |
細節
princomp
是具有"formula"
和"default"
方法的通用函數。
計算是使用 eigen
在相關或協方差矩陣上完成的,由 cor
確定。這樣做是為了與 S-PLUS 結果兼容。首選的計算方法是在 x
上使用 svd
,如 prcomp
中所做的那樣。
請注意,默認計算使用除數 N
作為協方差矩陣。
這些對象的 print
方法以良好的格式打印結果,plot
方法生成碎石圖 ( screeplot
)。還有一個biplot
方法。
如果 x
是公式,則標準 NA-handling 將應用於分數(如果需要):請參閱 napredict
。
princomp
僅處理所謂的R-mode PCA,即變量的特征提取。如果提供數據矩陣(可能通過公式),則要求至少有與變量一樣多的單位。對於 Q-mode PCA 使用 prcomp
。
值
princomp
返回類 "princomp"
的列表,其中包含以下組件:
sdev |
主成分的標準差。 |
loadings |
變量載荷矩陣(即,其列包含特征向量的矩陣)。這是 |
center |
減去的平均值。 |
scale |
應用於每個變量的縮放。 |
n.obs |
觀察的數量。 |
scores |
如果 |
call |
匹配的調用。 |
na.action |
如果相關。 |
注意
載荷和分數列的符號是任意的,因此不同的 PCA 程序之間,甚至不同的 PCA 版本之間可能會有所不同。R:fix_sign = TRUE
緩解了這一點。
例子
require(graphics)
## The variances of the variables in the
## USArrests data vary by orders of magnitude, so scaling is appropriate
(pc.cr <- princomp(USArrests)) # inappropriate
princomp(USArrests, cor = TRUE) # =^= prcomp(USArrests, scale=TRUE)
## Similar, but different:
## The standard deviations differ by a factor of sqrt(49/50)
summary(pc.cr <- princomp(USArrests, cor = TRUE))
loadings(pc.cr) # note that blank entries are small but not zero
## The signs of the columns of the loadings are arbitrary
plot(pc.cr) # shows a screeplot.
biplot(pc.cr)
## Formula interface
princomp(~ ., data = USArrests, cor = TRUE)
## NA-handling
USArrests[1, 2] <- NA
pc.cr <- princomp(~ Murder + Assault + UrbanPop,
data = USArrests, na.action = na.exclude, cor = TRUE)
pc.cr$scores[1:5, ]
## (Simple) Robust PCA:
## Classical:
(pc.cl <- princomp(stackloss))
## Robust:
(pc.rob <- princomp(stackloss, covmat = MASS::cov.rob(stackloss)))
參考
Mardia, K. V., J. T. Kent and J. M. Bibby (1979). Multivariate Analysis, London: Academic Press.
Venables, W. N. and B. D. Ripley (2002). Modern Applied Statistics with S, Springer-Verlag.
也可以看看
summary.princomp
、screeplot
、biplot.princomp
、prcomp
、cor
、cov
、eigen
。
相關用法
- R printCoefmat 打印係數矩陣
- R print.ts 時間序列對象的打印和格式化
- R print.power.htest 假設檢驗和功效計算對象的打印方法
- R predict.smooth.spline 通過平滑樣條擬合進行預測
- R predict 模型預測
- R profile.nls 分析 nls 對象的方法
- R predict.HoltWinters 擬合 Holt-Winters 模型的預測函數
- R proj 模型預測
- R predict.loess 預測黃土曲線或表麵
- R preplot 繪圖對象的預計算
- R prcomp 主成分分析
- R profile 分析模型的通用函數
- R prop.test 等比例或給定比例檢驗
- R profile.glm 分析 glm 對象的方法
- R prop.trend.test 檢驗比例趨勢
- R predict.Arima ARIMA 的預測適合
- R predict.lm 線性模型擬合的預測方法
- R predict.nls 根據非線性最小二乘擬合進行預測
- R predict.glm GLM 擬合的預測方法
- R plot.stepfun 繪製階躍函數
- R pairwise.t.test 成對 t 檢驗
- R plot.profile.nls 繪製 profile.nls 對象
- R plot.isoreg isoreg 對象的繪圖方法
- R plot.HoltWinters HoltWinters 對象的繪圖函數
- R ppoints 概率圖的坐標
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Principal Components Analysis。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。