回归分析(数据拟合---MATLAB和1stopt软件)

article/2025/8/18 22:22:26

回归分析(regression analysis)指的是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。
回归分析按照涉及的变量的多少,分为一元回归和多元回归分析;
按照因变量的多少,可分为简单回归分析和多重回归分析;
按照自变量和因变量之间的关系类型,可分为线性回归分析和非线性回归分析。

非线性拟合

离散参数非线性拟合的基本方法:
① 获得离散点数据;
② 确定函数模型,即确定想要拟合关联式的形式;
③ 确定选用函数模型中的未知参数
④ 即可确定拟合函数的具体形式
⑤ 还可画出拟合曲线

多元非线性拟合,依托nlinfit函数
基本语法
和方差(SSE)和均方差(MSE):其中MSE=SSE/n,SSE表示的是拟合数据和原始数据对应点的误差的平方和,其越接近0说明模型选择和拟合更好数据预测也越成功
残差:真实值和估计值之间的差。
确定系数(R-square):通过数据的变化来表征一个拟合的好坏,其范围为{0,1},越接近1,表明方程的变量对y的解释能力越强,这个模型对数据拟合的也越好。

实例1—一元非线性拟合

① 使用MATLAB

X=2:16;
Y=[6.42 8.20 9.58 9.5 9.7 10 9.93 9.99 10.49 10.59 10.60 10.80 10.60 10.90 10.76];
mymodel=inline('beta(1)*exp(beta(2)./X)','beta','X');
beta0 = [1, 1]; % 初值的选取可能会导致结果具有较大的误差
beta=nlinfit(X,Y,mymodel,beta0);

结果:
beta=11.6036
-1.0641
其中初值的选择会影响最终的拟合结果,不同的初值最终拟合出来的拟合参数是不一样的,即不同的初值会拟合出“一套”对应的拟合参数,这一套拟合参数会得到精确的结果。
但是在拟合过程中,MATLAB会发出Warning,提示,拟合出来的公式预测结果不可靠。但是在本人经过多次尝试下,发现拟合出来的结果还行,因此后续在使用这个拟合公式时,可以通过校核数据的方法来进行校核,这样确保拟合公式的准确性。

② 使用1stopt软件

Parameter b1, b2; //拟合参数
Variable x,y; // 变量
Function y=b1*exp(b2/x);//数学模型
Data;//数据
2      6.42
3      8.20
4      9.58
5      9.5
6      9.7
7      10
8      9.93
9      9.99
10     10.49
11     10.59
12     10.60
13     10.80
14     10.60
15     10.90
16    10.76

计算结果:
b1=11.6036;
b2=-1.0641;
相比于MATLAB,1stopt软件中的非线性拟合功能,最大的好处就是摆脱了初值的影响,因为其根本不需要初值,据说其开发了一套独一无二的全局性优化算法,很好地解决了MATLAB存在的这一最大的局限。
当然该软件的使用方法极其简单,非常容易掌握。
但是非常遗憾,这个软件很难在网上找得到免费版,能找到的极限也就是有参数限制(四个拟合参数限制)的试用版,后面也询问了该公式的价格,几千元左右吧。对于学生来说,还是蛮贵的。
本人这里只有一个四参数试用版,如果有同学愿意学习一下,烦请发送邮件至3453126994@qq.com。(本人也是得到网络前辈的照顾,将之传递下去,不存在任何利益,如果有侵权,立马删除。)

实例2—多元非线性拟合

多元非线性拟合,依托lsqcurvefit函数
格式:lsqcurvefit(f,a,x,y)

f: 符号函数句柄,如果是以m文件的形式调用的时候,别忘记加@.这里需要注意,f函数的返回值是和y匹对的,即拟合参数的标准是(f-y)^2取最小值,具体看下面的例子
a:最开始预估的值(预拟合的未知参数的估计值)。如上面的问题如果我们预估A为1,B为2,C为3,则a=[1 2 3]
x:我们已经获知的x的值
y:我们已经获知的x对应的y的值

xdata=[950;1150;1350];
ydata=[200;100;50];
fun1 = @(x,xdata)x(1)+x(2)*exp(-(xdata./x(3)).^2);  %自定义函数类型
X0=[0,1120,740]; %初始参数
[X,resnorm]=lsqcurvefit(fun1,X0,xdata,ydata); %resnorm残差平方和  X是参数
disp(X) %得到所求参数

注意:因为初值对拟合速度甚至结果有一定的影响。在确定数学模型后,拟合非线性问题时,初值应该如何选取呢?
①如果已知数学模型,有一定物理意义,则建议根据物理意思选取;
②当无法确定初值时,且你的数学模型有导数(如果求导模型很复杂甚至没有导数,则可进行简单的差分构造),则可以采取如下的办法进行:
1)求出拟合函数的一阶导数;
2)使用已知数据求出近似点的一阶导数;
3)代入一阶导数函数以及原函数求得初值近似值。


http://chatgpt.dhexx.cn/article/dHipVbB7.shtml

相关文章

利用Excel的LINEST计算线性拟合的斜率和截距的不确定性

目录 线性拟合的斜率和截距的不确定性Excel数组函数LINESTLINEST结果的含义LINEST输出的10个统计参数含义如下: 模型预测 y ^ \widehat{y} y ​ m x b mxb mxbReferences 线性拟合的斜率和截距的不确定性 利用熟悉的Excel绘图功能,可以根据距离-高程散…

机器学习算法——Kmeans

1.k-mean算法的原理 1、选取K个点做为初始聚集的簇心 2、分别计算每个样本点到K个簇核心的距离(这里的距离一般取欧氏距离或余弦距离),找到离该点最近的簇核心,将它归属到对应的簇 3、所有点都归属到簇之后,M个点就分为了K个簇…

【时序】Reformer:局部敏感哈希(LSH)实现高效 Transformer 论文笔记

论文名称:Reformer: The Efficient Transformer 论文下载:https://arxiv.org/abs/2001.04451 论文年份:ICLR2020 论文被引:706(2020/04/20) 论文代码:https://github.com/google/trax/tree/mast…

损失函数MSE和MAE的区别以及如何选择

1、均方误差(L2损失) 均方误差(MSE)是最常用的回归损失函数,计算方法是求预测值与真实值之间距离的平方和,公式如下: M S E 1 m ∑ m i 1 ( y i − y ^ i ) 2 MSE\frac{1}{m} \sum_{m}^{i1}\left(y_{i}-\hat{y}_{i}…

连载|GBDT如何进行回归和分类

GBDT 在前几年的机器学习竞赛以及工作中,人们使用着各种传统算法进行调参取得性能的提升,突然有一天杀出了一种名为GBDT的算法,改变了当前的格局,该算法在不同的场景中总是能够产生很好的效果,本文就让我们来了解一下…

最小二乘法多项式曲线拟合数学原理及其C++实现

目录 0 前言1 最小二乘法概述2 最小二乘法求解多项式曲线系数向量的数学推导2.1 代数法2.2 矩阵法 3 代码实现4 总结参考 0 前言 自动驾驶开发中经常涉及到多项式曲线拟合,本文详细描述了使用最小二乘法进行多项式曲线拟合的数学原理,通过样本集构造范德…

GB和GBDT 算法流程及分析

1、优化模型的两种策略: 1)基于残差的方法 残差其实就是真实值和预测值之间的差值,在学习的过程中,首先学习一颗回归树,然后将“真实值-预测值”得到残差,再把残差作为一个学习目标,学习下一棵回…

机器学习和深度学习性能指标

这里写目录标题 1、声明2、机器学习评估性能指标2.1、回归(Regression)算法指标2.1.1、平均绝对误差 MAE2.1.2、均方误差 MSE2.1.3、均方根误差 RMSE2.1.4、决定系数R^22.1.5、解决评估指标鲁棒性问题 2.2、分类(Classification)算…

多模态信息融合研究

1、主要研究方向 多模态学习可以划分为以下五个研究方向: 多模态表示学习 Multimodal Representation:主要研究如何将多模态的数据所蕴含的语义信息通过embedding的方式实现向量化,便于后续的计算; 模态转化 Translation&#…

【时序】DeepGLO:可以学习全局依赖和局部信息的多时间序列预测模型

论文名称:Think Globally, Act Locally: A Deep Neural Network Approach to High-Dimensional Time Series Forecasting 论文下载:https://arxiv.org/abs/1905.03806 论文年份:NeurIPS 2019 论文被引:134(2022/04/21&…

独立性检验(卡方检验)

独立性检验(Test for Independence)是根据频数来判断两类因子是彼此独立还是彼此相关的一种假设检验。假如对某一个数据集有X(值域为x1, x2)跟Y(值域为y1, y2)变量,下面是他们的频数表: x1 x2 汇总 y1 …

列联表分析——独立性检验(卡方检验)

第一步:建立原假设和备择假设 H0:两变量相不立;H1:u两变量相互b独立 第二步:计算自由度和理论频数 第三步:计算卡方统计量 实际观察次数与理论次数之差的平方再除以理论次数得到的统计量近似服从卡方分布…

列联表分析-独立性检验

用SPSS分析甲乙丙三名推销员的对ABC三类产品的销售数据是否独立 原假设:他们之间相互独立 数据如下: 导入数据 将销量进行加权 点击分析-描述统计–交叉表; 结果 当表格是2X2的时候得到结果如下:

第15章卡方检验:拟合优度和独立性检验

第1章统计学入门 第2章频数分布略 第3章集中趋势的测量 第4章变异性 第5章分数的位置及标准化分布 第6章概率和正态分布 第7章概率和样本:样本均值的分布 第8章假设检验介绍 第9章t检验介绍 第10章两个独立样本的t检验 第11章两个相关样本的t检验…

独立样本t检验、方差齐性检验

什么是独立样本t检验? t检验是比较两组数据之间的差异,有无统计学意义;t检验的前提是,两组数据来自正态分布的群体,数据的方差齐,满足独立性。 独立样本t检验(各实验处理组之间毫无相关存在&am…

卡方列联表的独立性检验

1.列联表是按两个或多个特征分类的频数数据,一般以表格形式组成。 2.判断两个或多个属性之间有无关联,即判别属性之间是否独立。 3.检验步骤 建立原假设 H0: 两属性相互独立 H1: 两属性之间不独立 计算自由度 计算卡方统计量 拒绝域 对照卡方分布…

SPSS学习(五)独立样本t检验

参考书籍:《SPSS其实很简单》 应用场景:当对两个独立分组中感兴趣的一个连续因变量的均值进行比较时使用。 目标:检验两个组别中关于某些感兴趣的因变量的均值是否存在显著差异 数据要求:具有两个不同组别的一个自变量&#xf…

统计之 - 独立性检验

独立性检验(Testfor Independence)是根据频数来判断两类因子是彼此独立还是彼此相关的一种假设检验。假如对某一个数据集有X(值域为x1,x2)跟Y(值域为y1,y2)变量,下面是他们的频数表: x1x2汇总y1ababy2cdcd汇…

SAS学习第9章:卡方检验之适合性检验与独立性检验

卡方检验就是统计样本的实际观测值与理论推断值之间的偏离程度,实际观测值与理论推断值之间的偏离程度就决定卡方值的大小,如果卡方值越大,二者偏差程度越大;反之,二者偏差越小;若两个值完全相等时&#xf…

入门必学 | R语言数据的独立性,正态性及方差齐性检验

参数分析的三大前提检验 检验数据独立性的方法Chisq检验Fisher检验Cochran-Mantel-Haenszel检验 检验数据正态性的方法shapiro.test函数qqnorm函数ksnormTest函数lillie.test函数ks.test函数 方差齐性检验的方法bartlett.test()检验leveneTest ()检验 完整代码 参数检验-显著性…