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

LASSO回归绘图异常问题排查与解决咨询

关于LASSO回归系数图与交叉验证图的异常问题

异常现象

  • 系数图问题:部分系数随lambda值变化先增大后减小,与已发表文献中系数随lambda值递减的趋势不符。
  • 交叉验证图问题:红线存在一段不连续的情况。

相关数据与代码

数据集

  • 预处理后数据集:train3.csv
  • 预处理前数据集:train2.csv

LASSO回归代码

library(readr)
library(glmnet)

train3 <- read_csv('train3.csv')

x <- as.matrix(train3[,-1])
y <- train3$CustomLabel
cvlasso <- cv.glmnet(x, y, alpha = 1, family = 'binomial')
plot(cvlasso)
plot(cvlasso$glmnet.fit)

变量预处理代码(移除相关系数>0.9的变量)

# 读取数据集
train2 <- read_csv('train2.csv')

# 筛选非正态分布变量
non_norm_vars <- train2 %>% 
  summarise(across(1:(ncol(train2)-1), ~shapiro.test(.x)$p.value)) %>% 
  t() %>% 
  as.data.frame() %>% 
  filter(V1 < 0.05) %>% 
  rownames()

# 筛选正态分布变量
norm_vars <- colnames(train2)[!colnames(train2) %in% non_norm_vars] %>% 
  head(-1)

# 重排数据集,将正态分布变量放在前面
df_nonnorm <- train2[, non_norm_vars]
df_norm <- train2[, norm_vars]
train3 <- bind_cols(df_norm, df_nonnorm)

# 计算变量相关系数:正态变量用Pearson,其余用Spearman
cor_norm <- cor(df_norm, method = 'pearson')
cor_all <- cor(train3, method = 'spearman')
num_norm <- dim(cor_norm)[1]
cor_all[1:num_norm, 1:num_norm] <- cor_norm

# 统计每个变量与其他变量相关系数绝对值>0.9的数量,并按降序排列
var_seq <- cor_all %>% 
  as_tibble() %>% 
  reframe(across(everything(), ~sum(abs(.x) > 0.9))) %>% 
  t() %>% 
  as.data.frame() %>% 
  arrange(desc(V1)) %>% 
  rownames()

# 重新排列相关系数矩阵,将高相关变量放在前面
slice_seq <- match(var_seq, colnames(cor_all))
cor_all <- cor_all %>% 
  as_tibble() %>% 
  select(all_of(var_seq)) %>% 
  slice(slice_seq) %>% 
  as.matrix()
rownames(cor_all) <- colnames(cor_all)

# 将矩阵转换为下三角形式,避免重复判断
cor_all[upper.tri(cor_all)] <- 0
diag(cor_all) <- 0

# 保留与其他变量相关系数绝对值均≤0.9的变量
cor_vars <- cor_all %>% 
  as_tibble() %>% 
  summarise(across(everything(), ~any(abs(.x) > 0.9))) %>% 
  t() %>% 
  as.data.frame() %>% 
  filter(V1 == F) %>% 
  rownames()

# 生成最终用于LASSO的数据集train3
train3 <- train2 %>% 
  select(CustomLabel, all_of(cor_vars))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 05:37:17