prcomp
位於 stats
包(package)。 說明
對給定的數據矩陣執行主成分分析,並將結果作為類 prcomp
的對象返回。
用法
prcomp(x, ...)
## S3 method for class 'formula'
prcomp(formula, data = NULL, subset, na.action, ...)
## Default S3 method:
prcomp(x, retx = TRUE, center = TRUE, scale. = FALSE,
tol = NULL, rank. = NULL, ...)
## S3 method for class 'prcomp'
predict(object, newdata, ...)
參數
formula |
沒有響應變量的公式,僅引用數字變量。 |
data |
包含公式 |
subset |
用於選擇數據矩陣 |
na.action |
一個函數,指示當數據包含 |
... |
傳遞給其他方法或從其他方法傳遞的參數。如果 |
x |
為主成分分析提供數據的數字或複雜矩陣(或 DataFrame )。 |
retx |
指示是否應返回旋轉變量的邏輯值。 |
center |
一個邏輯值,指示變量是否應移動到以零為中心的位置。或者,可以提供長度等於 |
scale. |
一個邏輯值,指示在進行分析之前是否應將變量縮放為具有單位方差。默認值為 |
tol |
指示大小的值,低於該值的分量應被忽略。 (如果組件的標準差小於或等於 |
rank. |
可選地,指定最大等級的數字,即要使用的主成分的最大數量。可以設置為 |
object |
繼承自 |
newdata |
一個可選的 DataFrame 或矩陣,用於查找用於預測的變量。如果省略,則使用分數。如果原始擬合使用具有列名稱的公式或 DataFrame 或矩陣,則 |
細節
計算是通過(中心且可能縮放的)數據矩陣的奇異值分解來完成的,而不是通過在協方差矩陣上使用eigen
來完成。這通常是保證數值精度的首選方法。這些對象的 print
方法以良好的格式打印結果,而 plot
方法生成屏幕圖。
與 princomp
不同,方差是使用常用除數 計算的。
請注意,如果變量為零或常量(對於 center = TRUE
),則無法使用 scale = TRUE
。
值
prcomp
返回類 "prcomp"
的列表,其中包含以下組件:
sdev |
主成分的標準差(即協方差/相關矩陣的特征值的平方根,盡管計算實際上是使用數據矩陣的奇異值完成的)。 |
rotation |
變量載荷矩陣(即,其列包含特征向量的矩陣)。函數 |
x |
如果 |
center, scale |
使用的居中和縮放,或 |
注意
旋轉矩陣的列的符號是任意的,因此不同的 PCA 程序之間,甚至不同的 PCA 版本之間可能會有所不同。R.
例子
C <- chol(S <- toeplitz(.9 ^ (0:31))) # Cov.matrix and its root
all.equal(S, crossprod(C))
set.seed(17)
X <- matrix(rnorm(32000), 1000, 32)
Z <- X %*% C ## ==> cov(Z) ~= C'C = S
all.equal(cov(Z), S, tolerance = 0.08)
pZ <- prcomp(Z, tol = 0.1)
summary(pZ) # only ~14 PCs (out of 32)
## or choose only 3 PCs more directly:
pz3 <- prcomp(Z, rank. = 3)
summary(pz3) # same numbers as the first 3 above
stopifnot(ncol(pZ$rotation) == 14, ncol(pz3$rotation) == 3,
all.equal(pz3$sdev, pZ$sdev, tolerance = 1e-15)) # exactly equal typically
## signs are random
require(graphics)
## the variances of the variables in the
## USArrests data vary by orders of magnitude, so scaling is appropriate
prcomp(USArrests) # inappropriate
prcomp(USArrests, scale. = TRUE)
prcomp(~ Murder + Assault + Rape, data = USArrests, scale. = TRUE)
plot(prcomp(USArrests))
summary(prcomp(USArrests, scale. = TRUE))
biplot(prcomp(USArrests, scale. = TRUE))
參考
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
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.
也可以看看
相關用法
- R predict.smooth.spline 通過平滑樣條擬合進行預測
- R predict 模型預測
- R profile.nls 分析 nls 對象的方法
- R predict.HoltWinters 擬合 Holt-Winters 模型的預測函數
- R proj 模型預測
- R predict.loess 預測黃土曲線或表麵
- R preplot 繪圖對象的預計算
- R printCoefmat 打印係數矩陣
- R profile 分析模型的通用函數
- R prop.test 等比例或給定比例檢驗
- R profile.glm 分析 glm 對象的方法
- R print.ts 時間序列對象的打印和格式化
- R prop.trend.test 檢驗比例趨勢
- R predict.Arima ARIMA 的預測適合
- R predict.lm 線性模型擬合的預測方法
- R princomp 主成分分析
- R predict.nls 根據非線性最小二乘擬合進行預測
- R predict.glm GLM 擬合的預測方法
- R print.power.htest 假設檢驗和功效計算對象的打印方法
- 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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。