多元回归模型与热力图绘制

代码解释

本文中首先通过不完整、不规则的数据建立多元非线性回归模型,再通过建立的回归模型生成规范的、完整的数据,进而绘制平面热力图,并生成规范化数据构成的表格文件。
在这里插入图片描述

本文通过MATLAB2020a编写。

代码

clc
clear

%% 多元非线性回归分析

x = [0.01 0.025 0.05 0.1 0.01 0.025 0.05 0.1 0.01 0.025 0.05 0.1]';
y = [0 0 0 0 0.1 0.1 0.1 0.1 0.2 0.2 0.2 0.2]';
z = [10.155 10.47 18 42 12.63 12.9 23.8 55.7 16.38 16.7 31.6 77.8]';

% 建立因变量
X = [ones(size(x)) x y x.*y x.^2 y.^2];


% 建立线性回归
[b,bint,r] = regress(z,X);

Y = model_regress(x,y,b);

%% 计算生成数据
x_axis = [0.01 0.02 0.025 0.04 0.05 0.06 0.07 0.08 0.09 0.1];
y_axis = [0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2];

[x_out, y_out] = meshgrid(x_axis, y_axis);
[R,C] = size(x_out);
z = zeros(R,C);

for i = 1:R
   for j = 1:C
      z(i,j) = model_regress(x_out(i,j),y_out(i,j),b);
   end
end
z = z';

%% 生成表格
T = table(z(:,1),z(:,2),z(:,3),z(:,4),z(:,5),z(:,6),z(:,7),z(:,8),z(:,9),z(:,10),z(:,11));
writetable(T,'Data_Out.xls')

h = heatmap(x_axis,y_axis,z');
h.CellLabelFormat = '%0.2f';
h.CellLabelColor = 'none';
grid off
colormap(jet)

%% 线性模型
function [y] = model_regress(x,y,b)
y = b(1) + b(2)*x + b(3)*y + b(4)*x.*y + b(5)*x.^2 + b(6)*y.^2;
end







  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值