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

请求提供R语言mRMRe包实现生存数据MRMR特征选择的代码

使用mRMRe包进行生存数据的MRMR特征选择

步骤1:安装并加载依赖包

先安装并加载mRMRe和survival包(后者用于获取标准生存数据集):

install.packages(c("mRMRe", "survival"))
library(mRMRe)
library(survival)

步骤2:准备生存数据集

以survival包内置的lung数据集为例,先做数据清理和编码调整:

# 加载数据集
data(lung)
# 移除含缺失值的样本
lung_clean <- na.omit(lung)
# 将分类变量转为因子
lung_clean$sex <- as.factor(lung_clean$sex)
# 统一生存状态编码:1=事件发生(死亡),0=无事件(存活)
lung_clean$status <- ifelse(lung_clean$status == 1, 1, 0)

步骤3:创建mRMRe专用数据对象

核心是指定生存型目标变量,需传入时间列和状态列的索引,并设置target_types = "survival":

# 创建mRMRe数据对象
# target_indices顺序:先时间列(第2列),后状态列(第3列),不可颠倒
mr_data <- mRMRe.data(
  data = lung_clean,
  target_indices = c(2, 3),
  target_types = "survival"
)

步骤4:运行MRMR特征选择

经典MRMR方法(单组特征结果)

选择5个与生存结局最相关且冗余度最低的特征:

# 执行经典MRMR,指定要选择的特征数量
mr_classic <- mRMR.classic(data = mr_data, feature_count = 5)

# 查看选中的特征信息
selected_idx <- mr_classic@solutions[[1]]
cat("选中的特征索引:", selected_idx, "\n")
cat("选中的特征名称:", colnames(lung_clean)[selected_idx], "\n")

集成MRMR方法(稳健性更高)

通过bootstrap多次采样生成多组特征,统计各特征的入选频率:

# 集成MRMR:10次bootstrap采样,每次选5个特征
mr_ensemble <- mRMR.ensemble(
  data = mr_data,
  feature_count = 5,
  bootstrap_count = 10
)

# 按入选频率降序展示特征
freq_table <- mr_ensemble@frequency
print(freq_table[order(freq_table, decreasing = TRUE), ])

关键注意事项

  • 目标变量索引必须遵循时间列在前,状态列在后的顺序,且状态列需统一为0(无事件)/1(事件发生)编码。
  • mRMRe对缺失值敏感,需提前清理含缺失值的样本。
  • feature_count参数可根据实际需求调整要选择的特征数量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 09:05:21