IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> Matlab第四天打卡——线性回归 -> 正文阅读

[数据结构与算法]Matlab第四天打卡——线性回归

学习Matlab的第四次

目录

一、一元线性回归。

①例题

②分析

③利用Matlab绘图

④进一步拟合

⑤获得回归方程

二、多元线性回归

Ⅰ、模型

Ⅱ、例题

Ⅲ、代码实现

三、参考文档


一、一元线性回归。

一元回归方程比较简单,我们只需要自变量x,因变量y的部分数据,经过绘出散点图,就可以进行拟合。

①例题

②分析

x=[168 145 128 138 145 135 127 111 102 94];
y=[661 631 610 588 583 575 567 502 446 379];

③利用Matlab绘图

clc;
clear;
x=[168 145 128 138 145 135 127 111 102 94];
y=[661 631 610 588 583 575 567 502 446 379];
for i=1:10
    plot(x(i),y(i),'or');
    %plot(X,Y) 创建 Y 中数据对 X 中对应值的二维线图。
    %o代表以圆圈为图像,r为'red'红色。
    hold on
    %添加新绘图时保留当前绘图,使所有点一起绘出。
end
xlabel('x');%x轴元素为x
ylabel('y');%同上

可以得到

?此时我们已经可以进行拟合,因为它的点大致处于一条直线附近,但是我们可以发现,x与y似乎是对数关系,所以可以进行进一步的精细。

④进一步拟合

由此经过观察我们可以另作z=ln(x),对z与x进行绘图。

clc;
clear;
x=[168 145 128 138 145 135 127 111 102 94];
y=[661 631 610 588 583 575 567 502 446 379];
z=zeros(size(x));
%获得向量x的大小
n=length(x);
%获得向量x的长度
for i=1:n
    z(i)=log(x(i));
    plot(x(i),z(i),'or');
    %plot(X,Y) 创建 Y 中数据对 X 中对应值的二维线图。
    %o代表以圆圈为图像,r为'red'红色。
    hold on
    %添加新绘图时保留当前绘图,使所有点一起绘出。
end
xlabel('x');%x轴元素为x
ylabel('z');%同上

可以得到

现在可以看出它的拟合效果更加直观。

⑤获得回归方程

根据第④步得到的图像,我们可以近似看为一条y=ax+b的直线。

因此

clc;
clear;
x=[168 145 128 138 145 135 127 111 102 94];
y=[661 631 610 588 583 575 567 502 446 379];
z=zeros(size(x));
%获得向量x的大小
n=length(x);
%获得向量x的长度
for i=1:n
    z(i)=log(x(i));
end
%p = polyfit(x,y,n)返回次数为 n 的多项式 p(x) 的系数
p=polyfit(x,z,1)

可以得到

因此a=3.8238,b=0.0079? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 所以y=3.8238x+0.0079?

二、多元线性回归

Ⅰ、模型

基础为最小二乘法

在Matlab中可以用到函数

[b,bint,r,rint,stats]=regress(y,x,alpha)

①alpha为显著性水平,默认值为0.05

②b为多元线性回归的系数估计值,以数值向量形式返回

③bint系数估计值的置信边界下限和置信边界上限,以数值矩阵形式返回

④r为残差,以数值向量形式返回

⑤rint为用于诊断离群值的区间,以数值矩阵形式返回

⑥stats为模型统计量,以数值向量形式返回

Ⅱ、例题

Ⅲ、代码实现

clc;
clear;
x1=[1.376 1.375 1.387 1.401 1.412 1.428 1.445 1.477];
x2=[0.450 0.475 0.485 0.5 0.535 0.545 0.55 0.575];
x3=[2.17 2.554 2.676 2.713 2.823 3.088 3.122 3.262];
x4=[0.8922 1.161 0.5346 0.9589 1.0239 1.0499 1.1065 1.1387];
y=[5.19 5.3 5.6 5.82 6 6.06 6.45 6.95];
%数据输入
y=y';
%变为列向量
x=[ones(size(x1')),x1',x2',x3',x4'];
%构造成矩阵
[b,bint,r,rint,stats]=regress(y,x)
    

?

因此由b的返回值可得? ? ? ? ? ? ? ? ? ? ? ? ? ? ??y=-13.9849+13.1920x_{1}+2.4228_{2}+0.0754x_{3}-0.1897x_{4}

三、参考文档

来自Matlab自带文档

%[b,bint,r,rint,stats]=regress(y,x)
https://ww2.mathworks.cn/help/stats/regress.html?s_tid=doc_ta
%plot
https://ww2.mathworks.cn/help/matlab/ref/plot.html?s_tid=srchtitle_plot_1
%ployfit
https://ww2.mathworks.cn/help/matlab/ref/polyfit.html?searchHighlight=ployfit&s_tid=srchtitle_ployfit_1
%hold on
https://ww2.mathworks.cn/help/matlab/ref/hold.html?searchHighlight=hold%20on&s_tid=srchtitle_hold%20on_1

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-11-18 11:25:30  更:2021-11-18 11:26:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/9 1:35:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码