使用R的princomp做PCA,如何确定第一主成分对应的变量?
PCA分析:找到主成分对应的原始变量及方差解释
你的理解误区
主成分不是单个原始变量,而是所有原始变量的线性组合。第一主成分是能最大化解释数据方差的线性组合,你要找的是这个组合里权重最高的原始变量,而非“对应”的单个变量。
查看主成分与原始变量的关联
用princomp完成PCA后,主成分的载荷(即每个原始变量在主成分中的权重)存储在pca$loadings对象中,直接调用就能看到所有变量在各主成分上的系数:
# 查看所有主成分的载荷矩阵 print(pca$loadings) # 单独提取第一主成分的载荷,按绝对值降序排序,快速定位权重最高的变量 first_pc_loadings <- pca$loadings[, 1] sort(abs(first_pc_loadings), decreasing = TRUE)
绝对值越大的系数,说明该原始变量对第一主成分的贡献越大。
查看方差解释率
summary(pca)的输出里,Proportion of Variance列就是各主成分的方差解释比例,第一行对应的数值就是第一主成分的方差解释率——也就是你要找的“解释最大方差”的具体占比。
补充说明
你是基于协方差矩阵做的PCA,变量的量纲会直接影响载荷结果。如果你的31个变量量纲差异较大,建议先对数据做标准化处理(比如用scale()函数)后再计算协方差矩阵,或者直接使用prcomp函数(默认会对数据标准化),避免量纲干扰分析结果。
内容的提问来源于stack exchange,提问作者Johnny
相关产品推荐
相关产品推荐

