如何在R中量化向后逐步回归算法的正确模型选择数量
向后逐步回归模型选择的匹配统计问题
背景说明
我在58000个随机合成数据集上运行了向后逐步回归(Backward Elimination,BE),输出整理为CSV文件名与BE所选变量的对应格式。由于是蒙特卡洛模拟,每个数据集的真实回归方程已知。
我在研究项目的脚本中执行了以下R命令,将输出存储在BM2_models对象中:
> BM2_models <- read.csv("IVs_Selected_by_BE (no headers).csv", header = FALSE) > head(BM2_models, n = 5) V1 1 0-3-1-1; X1, X2, X3, X4, X7, X18 2 0-3-1-2; X1, X2, X3, X7, X13, X16, X20 3 0-3-1-3; X1, X2, X3, X6, X11, X14, X21 4 0-3-1-4; X1, X2, X3, X4, X8, X10, X16, X17, X18, X24 5 0-3-1-5; X1, X2, X3, X8, X11, X14, X20, X24, X26, X29 > tail(BM2_models, n = 2) V1 57999 1-15-9-499; X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X19, X20, X22, X23, X27 58000 1-15-9-500; X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X22, X23, X25, X26 > str(BM2_models) 'data.frame': 58000 obs. of 1 variable: $ V1: chr "0-3-1-1; X1, X2, X3, X4, X7, X18" "0-3-1-2; X1, X2, X3, X7, X13, X16, X20" "0-3-1-3; X1, X2, X3, X6, X11, X14, X21" "0-3-1-4; X1, X2, X3, X4, X8, X10, X16, X17, X18, X24" ...
字段含义
分号前的n1-n2-n3-n4代表CSV文件名,各部分定义:
n1:真实模型中回归变量的多重共线性程度n2:真实模型的变量数量kn3:误差方差n4:1到500的计数器,对应参数组合下的500种随机变体
分号后是BE算法选出的变量(候选变量共30个)。
当前问题
直接用字符串匹配(如CSM3 <- sum(sub_3_df$IV == " X1, X2, X3"))统计正确选择的模型数量时,会因变量顺序不同(比如"X2, X3, X1")漏判正确模型,需要修改代码以适配变量的所有正确排列组合。
内容的提问来源于stack exchange,提问作者Marlen
相关产品推荐
相关产品推荐

