使用R语言pls包做PLSR分析:查看6个成分的变量映射
PLSR成分对应变量的查看方法
你用loadings()函数的方向是对的,可能是输出显示或参数使用的细节问题导致没得到预期结果,以下是具体操作步骤:
1. 正确提取并打印前6个成分的载荷矩阵
运行以下代码,提取完整的载荷信息并避免输出截断:
# 提取前6个成分的载荷矩阵 loadings_mat <- loadings(posamodel, ncomp = 6) # 完整打印矩阵,指定显示精度和间距 print(loadings_mat, digits = 3, print.gap = 2)
输出结果中,每一列对应一个PLSR成分,每一行是输入变量,数值的绝对值越大,说明该变量对对应成分的贡献(关联程度)越强。
2. 可视化载荷更直观分析
如果想更清晰地看到每个成分对应的关键变量,可以用pls包自带的可视化工具:
# 绘制前6个成分的载荷图 plot(posamodel, "loadings", comps = 1:6, legendpos = "topright", cex = 0.7)
也可以用tidyverse整理数据后自定义绘图,更灵活:
library(tidyverse) # 将载荷矩阵转换为长格式数据框 loadings_df <- as.data.frame(loadings_mat) %>% rownames_to_column("变量名") %>% pivot_longer(cols = starts_with("Comp"), names_to = "成分", values_to = "载荷值") # 分面展示每个成分的变量载荷 ggplot(loadings_df, aes(x = 变量名, y = 载荷值)) + geom_bar(stat = "identity", fill = "#2c3e50") + facet_wrap(~成分, scales = "free_x") + theme(axis.text.x = element_text(angle = 60, hjust = 1, size = 8))
注意事项
- 若你之前在
plsr()命令中指定了ncomp=6,后续loadings()默认就会提取前6个成分,无需重复指定,但显式指定ncomp=6更稳妥。 - 载荷值的正负代表变量与成分的关联方向,核心看绝对值大小判断贡献强度。
内容的提问来源于stack exchange,提问作者Dr. Elliot Gavin Keenan
相关产品推荐
相关产品推荐

