我正在研究使用LASSO(最小绝对收缩和选择算子)和Cox模型的生存分析。我使用 R 包 penalized 和 optL1 函数来找到最佳收缩参数 lambda。 我的问题是:为什么最优收缩参数 lambda 这么大?
library(penalized)
optsurve <- optL1(Surv(time_to_death, status),penalized =data_liver_pmm[,1:38], fold = 3)
opt$lambda
lambda= 5313.442 cvl= -2269.811
lambda= 8597.33 cvl= -2273.799
lambda= 3283.888 cvl= -2266.93
lambda= 2029.554 cvl= -2265.553
lambda= 1254.334 cvl= -2262.509
lambda= 775.2208 cvl= -2244.824
lambda= 479.1128 cvl= -2222.419
lambda= 296.108 cvl= -2504.873
lambda= 592.216 cvl= -2232.645
lambda= 409.2112 cvl= -2243.957
lambda= 514.9051 cvl= -2223.641
lambda= 473.5484 cvl= -2222.652
lambda= 487.732 cvl= -2222.333
lambda= 485.6333 cvl= -2222.326
lambda= 485.859 cvl= -2222.326
lambda= 485.8129 cvl= -2222.326
lambda= 486.5745 cvl= -2222.327
lambda= 486.1323 cvl= -2222.326
lambda= 485.9634 cvl= -2222.326
optsurve$lambda
#> [1] 485.859
请您向我解释一下为什么会这样?
如果没有看到你的数据,很难说。您是否缩放了所有预测变量?如果不是,那么大的预测变量值可能会导致大的 lambda。尝试标准化您的预测变量,使其均值为零,标准差为一。例如使用
scale(data_liver_pmm)
另一种可能性是您的数据中存在大量噪音。较高的 lambda 可以通过将不相关预测变量的系数缩小到零来提供帮助。