R语言用replicate运行逐步回归时如何每次更换不同随机seed
代码调整方案
1. 生成指定范围的100个seed
如果你需要123~12300范围内的100个等间隔整数seed,使用如下代码生成:
# 取等间隔值后取整,保证seed为合法整数 ss <- round(seq(123, 12300, length.out = 100))
如果你需要从123开始的100个连续整数seed,使用如下代码生成:
ss <- seq(123, by = 1, length.out = 100)
2. 调整运行逻辑,每个seed仅运行1次
原代码中的model_run函数用到的replicate是重复执行的控制逻辑,你不需要每个seed重复运行的话可以直接去掉这一层,直接遍历调用model_forw即可,完整运行代码如下:
# 生成目标seed序列 ss <- round(seq(123, 12300, length.out = 100)) # 每个seed运行1次,结果以列表形式存储,每个元素对应1个seed的返回值 result <- lapply(ss, model_forw)
可选调整
- 如果你需要结果返回矩阵/向量而非列表,可将
lapply替换为sapply - 若要同时对比前向、后向逐步回归的结果,只需要在
model_forw函数中补充前向回归的逻辑,同步返回两个模型的选中变量即可做差异统计
内容的提问来源于stack exchange,提问作者Oliver Kanner
相关产品推荐
相关产品推荐

