Stata中MCA分析后e(sample)在R中的等效实现方法问询
在R中复现Stata MCA的
e(sample)筛选功能 要在R的FactoMineR包中实现Stata里predict var4 if e(sample)的效果(仅对参与MCA分析的观测生成预测值,其余观测设为NA),可按以下步骤操作:
- 标记参与MCA分析的观测
FactoMineR执行MCA时会自动排除含缺失值的观测,分析结果里的mca_result$row$coord仅保留实际参与计算的样本。通过行名匹配,可生成原始数据中参与分析的观测标记:
library(FactoMineR) # 假设已完成MCA分析 mca_result <- MCA(your_data, quali.sup = c(...), # 可选:定性补充变量 quanti.sup = c(...), # 可选:定量补充变量 na.rm = TRUE) # 默认自动剔除含缺失值的观测 # 生成参与分析的样本逻辑标记向量 used_sample <- rownames(your_data) %in% rownames(mca_result$row$coord)
- 生成并筛选预测值
用predict.mca获取所有观测的坐标值,再通过标记向量筛选,仅保留参与分析的观测的预测值,其余设为NA:
# 获取所有维度的预测坐标 pred_coords <- predict(mca_result, newdata = your_data, type = "coord") # 提取指定维度(如第1维度)的预测值,对应Stata的var4 your_data$var4 <- NA your_data$var4[used_sample] <- pred_coords$coord[, 1]
处理后,your_data$var4的结果和Stata中predict var4 if e(sample)完全一致:仅参与MCA分析的观测有有效预测值,其余观测为NA。
内容的提问来源于stack exchange,提问作者komh13
相关产品推荐
相关产品推荐

