You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提取factoextra包中MCA因子贡献度柱状图的数值?

获取MCA变量维度贡献度数值的方法

你之前的错误在于使用get_mca_ind()提取了个体的信息,但你需要的是变量的维度贡献度(cos2值),正确操作如下:

1. 直接提取变量的cos2值

使用get_mca_var()函数获取变量相关的MCA结果,从中提取维度1和2的cos2值:

# 获取MCA分析中的变量信息
var <- get_mca_var(res.mca)
# 提取维度1和2的cos2值(即变量对各维度的贡献度)
var_cos2 <- var$cos2[, 1:2]
# 查看前几行数据
head(var_cos2)

2. 整理为带变量名的表格

如果需要更清晰的结构化表格,可将结果转换为带变量名称的数据框:

# 转换为数据框并添加变量名列
var_cos2_df <- as.data.frame(var_cos2)
var_cos2_df$variable <- rownames(var_cos2_df)
# 调整列顺序,将变量名放在首位
var_cos2_df <- var_cos2_df[, c("variable", "Dim.1", "Dim.2")]
# 打印完整表格
print(var_cos2_df)

3. 手动计算验证cos2值

cos2的计算逻辑是:变量在某维度上的坐标值平方,除以该变量的总惯量(inertia),公式为:
cos2 = (坐标值)^2 / 总惯量
你可以手动计算验证结果:

# 提取变量的坐标值和总惯量
var_coord <- var$coord[, 1:2]
var_inertia <- var$inertia
# 手动计算各维度的cos2值
cos2_dim1 <- (var_coord[, "Dim.1"])^2 / var_inertia
cos2_dim2 <- (var_coord[, "Dim.2"])^2 / var_inertia
# 合并为数据框
manual_cos2 <- data.frame(Dim.1 = cos2_dim1, Dim.2 = cos2_dim2)
head(manual_cos2)

内容的提问来源于stack exchange,提问作者WindSur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 12:30:53