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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。