如何在MATLAB R2014b中用LASSO模型分析变量相关性并构建回归预测模型
在MATLAB R2014b中使用LASSO模型实现单自变量回归分析与预测
1. 生成示例数据
运行以下代码生成题目指定的数据集:
% 生成30个样本的自变量X(取值范围1-5)和因变量Y(取值范围1-10) X = randi([1,5],30,1); Y = randi([1,10],30,1);
2. 执行LASSO回归分析
MATLAB R2014b统计工具箱自带的lasso函数可直接用于线性回归的正则化分析,运行以下代码获取回归系数及模型关键信息:
% 执行LASSO回归,返回系数数组B和模型信息结构体FitInfo [B, FitInfo] = lasso(X, Y);
B:存储不同lambda值对应的回归系数,因仅含1个自变量,B为一维数组FitInfo:包含lambda序列、交叉验证误差、最优lambda索引等核心参数
3. 选择最优正则化参数Lambda
通过交叉验证结果筛选最小均方误差(MSE)对应的lambda值,确定最优回归系数:
% 获取最小MSE对应的lambda索引 idx_min = FitInfo.IndexMinMSE; % 提取最优lambda值 lambda_opt = FitInfo.Lambda(idx_min); % 获取最优lambda对应的回归系数 b_opt = B(idx_min);
4. 构建模型并完成预测
基于最优系数构建回归模型,对X对应的Y值进行预测:
% 计算预测值 Y_pred = b_opt * X; % (可选)使用官方预测函数实现预测 % Y_pred = lassoPredict(B, FitInfo, X, lambda_opt);
5. 可视化预测结果(可选)
通过绘图对比实际值与预测值,直观评估模型效果:
scatter(X, Y, 'b', 'filled'); hold on; plot(X, Y_pred, 'r--', 'LineWidth', 1.5); xlabel('自变量X'); ylabel('因变量Y'); legend('实际值', '预测值'); title('LASSO回归预测结果'); hold off;
注意事项
- 因仅包含1个自变量,LASSO的正则化效果体现为:要么保留该变量的系数,要么将其收缩至0(当lambda值过大时)
- MATLAB R2014b中
lasso函数默认采用10折交叉验证,若需调整验证策略可通过'CV'参数指定
内容的提问来源于stack exchange,提问作者Sorena
相关产品推荐
相关产品推荐

