数学建模算法学习笔记

作为建模Man学习数学建模时做的笔记

参考文献:
《数学建模姜启源第四版》
网上搜罗来的各种资料,侵删


1.线性预测

levinson durbin算法,自相关什么的,搞不懂

https://max.book118.com/html/2018/1231/8056037133001142.shtm

统计检验量R2(决定系数,接近1为最好)、F(方差统计量,越大越好,R2=1时为无穷,要求远大于临界值,临界值与置信概率α有关,具体查表)、p(p=0.05表示拟合关系有5%是由偶然造成的)、s2(方差)是啥

1.1 简单的线性拟合
  1. 找出因变量y和所有自变量x
  2. 分析各个自变量对y的图像,决定影响关系是什么函数,然后将其加起来,得到拟合方程,例如下面这个

y=β0+β1x1+β2x2+β3x22+εy = β_0+β_1x_1+β_2x_2+β_3x_2^2+ε y=β0​+β1​x1​+β2​x2​+β3​x22​+ε

ε指随机误差(在计算模型参数的时候一般是忽略的,因为如果模型取得好,随机误差是很小的,满足均值为0的正态分布)

  1. 直接用Matlab求出参数的值
  2. 检查参数置信区间,如果有包含0的,说明不合理,需要改进
  3. 使用残差分析,检查每个自变量与残差的图像分布,结合经验找出需要添加的结合项xixjx_ix_jxi​xj​,添加到拟合方程中
  4. 重复以上步骤,直到结果令人满意
  5. 如果出现不合理的数据,需要去除
1.2 简单的指数拟合

指数规律有以下两种模型

  1. Michaelis-Menten模型

y=f(x,β)=β1xβ2+xy = f(x,β)=\frac{β_1x}{β_2+x} y=f(x,β)=β2​+xβ1​x​

  1. 指数增长模型

y=f(x,β)=β1(1−e−β2x)y = f(x,β) = β_1(1-e^{-β_2x}) y=f(x,β)=β1​(1−e−β2​x)

其实可以用线性化将非线性模型化为线性模型进行处理,但没必要,详见书本P339

定好模型后直接用matlab算就好

对于模型1来说β1β_1β1​指曲线趋近值,β2β_2β2​指曲线y一半时对应的x值

此外也可以引入0-1变量建混合模型,例如
y=f(x,β)=(β1+γ1x2)x1(β2+γ2x2)+x1y = f(x,β) = \frac{(β_1+γ_1x_2)x_1}{(β_2+γ_2x_2)+x_1} y=f(x,β)=(β2​+γ2​x2​)+x1​(β1​+γ1​x2​)x1​​

指数模型的判定看的是标准差,R2和s依然可用

改善可看书本P345

1.3 数据自相关

一般按时间序列进行采样的数据都可能会自相关,即前面的数据会对后面的数据有影响。所以对这类数据,先按正常进程进行建模,然后要对自相关性进行诊断,以此决定是否需要对模型进行改进

自相关在模型中一般在随机误差εtε_tεt​中表示,如果存在自相关性,则εtε_tεt​可如下表示
εt=ρεt−1+utε_t = ρε_{t-1}+u_t εt​=ρεt−1​+ut​

  1. 粗看残差之差

将正常建模的残差之差et−et−1e_t-e_{t-1}et​−et−1​散点图画出,如果能看出是分布于一三象限或者二四象限,则说明具有自相关性

  1. Durbin-Watson检验(D-W检验)

首先得到残差计算DW统计量
DW=∑i=2n(et−et−1)2∑i=2net2DW=\frac{\sum\limits_{i=2}^{n}(e_t-e_{t-1})^2}{\sum\limits_{i=2}^ne_t^2} DW=i=2∑n​et2​i=2∑n​(et​−et−1​)2​
当n较大时,可做如下近似
DW≈2(1−∑i=2netet−1∑i=2net2)DW \approx 2(1-\frac{\sum\limits_{i=2}^ne_te_{t-1}}{\sum\limits_{i=2}^{n}e_t^2}) DW≈2(1−i=2∑n​et2​i=2∑n​et​et−1​​)
∑i=2netet−1∑i=2net2\frac{\sum_{i=2}^ne_te_{t-1}}{\sum_{i=2}^{n}e_t^2}∑i=2n​et2​∑i=2n​et​et−1​​这个为自相关系数ρρρ的估计值ρ^\hatρρ^​,所以
DW≈2(1−ρ^)DW \approx 2(1-\hat{ρ}) DW≈2(1−ρ^​)
当算出了DW值之后,就要根据样本容量n和模型的变量数K查D-W分布表,得到dld_ldl​和dud_udu​的值

https://blog.csdn.net/no1stevewang/article/details/50237049

最后根据下图确定εtε_tεt​是否自相关

当我们确定存在自相关性之后,可将ρ^\hat{ρ}ρ^​表示如下
ρ^=1−DW2\hat{ρ} = 1-\frac{DW}{2} ρ^​=1−2DW​
之后做变换(广义差分变换)
yt∗=yt−ρyt−1y_t^* = y_t-ρy_{t-1} yt∗​=yt​−ρyt−1​

xt∗=xt−ρxt−1x_t^* = x_t-ρx_{t-1} xt∗​=xt​−ρxt−1​

β0∗=β0(1−ρ)β_0^*=β_0(1-ρ) β0∗​=β0​(1−ρ)

就能得到新的,已经考虑了自相关的模型如下(一阶自相关模型)
yt∗=β0∗+β1x1t∗+β2x2t∗+μty_t^*=β^*_0+β_1x_{1t}^*+β_2x_{2t}^*+μ_t yt∗​=β0∗​+β1​x1t∗​+β2​x2t∗​+μt​
μtμ_tμt​是和一般的εεε一样的随机误差

然后用matlab算这个新的模型就好

算完之后再进行一次自相关性检验,如果还有问题,就再来一遍(可能有其他处理办法)

最后将新模型用上面那个变换换回来,用不带*的符号表示即可

如果DW落在无法确定自相关性的区间,可以设法增加数据量,或者换其他方法

1.4 逐步回归

逐步回归是一种从众多自变量中选取重要变量(对因变量影响大)的方法

matlab有工具可用,原理略

1.5 Y为多分类的情况

例如书本上的冠心病模型,用π(x)\pi(x)π(x)表示在年龄x下患冠心病概率
π(x)=P(Y=1∣x)\pi(x)=P(Y=1|x) π(x)=P(Y=1∣x)
因为从图像可得π(x)\pi(x)π(x)类似于S型曲线,所以采用logit(logistic)模型进行拟合
π(x)=eβ0+β1x1+eβ0+β1x\pi(x) = \frac{e^{β_0+β_1x}}{1+e^{β_0+β_1x}} π(x)=1+eβ0​+β1​xeβ0​+β1​x​
先写出反函数
lnπ(x)1−π(x)=β0+β1xln\frac{\pi(x)}{1-\pi(x)}=β_0+β_1x ln1−π(x)π(x)​=β0​+β1​x
左边这一块就是logit模型了logit(π(x))=lnπ(x)1−π(x)logit(\pi(x))=ln\frac{\pi(x)}{1-\pi(x)}logit(π(x))=ln1−π(x)π(x)​,当π(x)\pi(x)π(x)在[0,1]取值时,logit(π(x))logit(\pi(x))logit(π(x))的取值为(−∞,+∞)(-\infty,+\infty)(−∞,+∞),能弥补线性模型算出来概率超过1的缺点

这个时候,只需要根据数据算出每个x对应的π(x)\pi(x)π(x),再求出两个参数β0β_0β0​和β1β_1β1​即可

扔进matlab算就好

可以考虑在右边加入x2x^2x2项,可能可以增加准确度,算出来看p值的变化,变小则更好,否则不用加这一项

处理这种问题还有另一种模型,为probit模型,差不多,详见P363

当变量不止一个时,详见P365

2. 数据预处理

  1. 移动平均滤波:用于减少随机干扰对数据采集的影响

此外还要加权移动滤波

  1. 快速傅里叶变换(FFT):用于检测得到的数据中是否有高频噪声,以决定是否使用FIR滤波

使用对数坐标图会使现象更明显

  1. 多分类Y

例如冠心病模型中,Y只有1(患病)和0(不患病)的情况,这个时候很难直接建模。所以可以采用分组法,将每一个年龄段的1的概率作为新的Y进行建模

3. 元胞自动机

暂略,让程序负责

4.模糊综合评价

这是一个比较主观的用于判断一个事物好坏的方法

以下参考:https://www.bilibili.com/video/BV1LK411P7Qv?from=search&seid=11974302579866908995&spm_id_from=333.337.0.0

下面介绍方法的几个概念

  1. 因素:想要判断方法A好不好,需要找到几个衡量的指标,这些指标叫做因素,集合为因素集
  2. 评语:评价方法好坏的等级,好,一般,差等等

下面要对因素1进行评价,例如有α1\alpha_1α1​(这里指概率)的人认为方法A有具备这个指标,α2\alpha_2α2​的人认为可能有,α3\alpha_3α3​的人认为没有,那么可以列出评价矩阵
v1=[α11,α12,α13]v_1=[\alpha_{11}, \alpha_{12},\alpha_{13}] v1​=[α11​,α12​,α13​]
接下来对因素2进行评价,同理得到评价矩阵
v2=[α21,α22,α23]v_2=[\alpha_{21}, \alpha_{22},\alpha_{23}] v2​=[α21​,α22​,α23​]
把这两个拼在一起组成综合评价矩阵
R=[α11α12α13α21α22α23]R=\begin{bmatrix} \alpha_{11} &\alpha_{12} &\alpha_{13}\\ \alpha_{21} &\alpha_{22} &\alpha_{23}\\ \end{bmatrix} R=[α11​α21​​α12​α22​​α13​α23​​]
接下来列出因素1和因素2的权重集
A=[β1,β2]A=[\beta_1 ,\beta_2] A=[β1​,β2​]
(权重和为1)

后面开始计算

得到最终结果
B=[0.6,0.2,0.1]B=[0.6,0.2,0.1] B=[0.6,0.2,0.1]
如果相加不为1,同除以和0.9即可

最终得到
B=[0.67,0.22,0.11]B=[0.67,0.22,0.11] B=[0.67,0.22,0.11]
取最大的0.67,根据前面指标中概率的排序方式,0.67指的就是评价为好的概率

这时可知为好的概率比较大

数学建模算法学习笔记相关推荐

  1. matlab中x从0到5不含0,关于MATLAB的数学建模算法学习笔记

    关于MATLAB的数学建模算法学习笔记 目录 线性规划中应用: (3) 非线性规划: (3) 指派问题;投资问题:(0-1问题) (3) 1)应用fmincon命令语句 (3) 2)应用指令函数:bi ...

  2. 数学建模算法学习笔记 已完结

    这是为了准备国赛突击学习的模型算法,我在原有的基础上加上自己的理解虽然不知道对不对,就是为了记录下自己学的模型他究竟是个什么东西,语言通俗,但是极不准确,只适合做一个大概的了解,建议大家详细的还是要看 ...

  3. 如何用matlaab把csv转为mat文件_数学建模竞赛学习笔记:用TOPSIS模型进行综合评价

    笔记整理来自清风老师的数学建模课程(可以在B站里搜索到,头条无法放站外链接,我就不放了):TOPSIS教程 目录 1. 层次分析法的局限性(主观求权重方法) 2. TOPSIS法引入 2.1 一个指标 ...

  4. 数学建模算法笔记(2)——主成分分析

    数学建模算法笔记(2)–主成分分析 目的:主成分分析的主要目的是希望用较少的变量去解释原来资料中的大部分变异,将我 们手中许多相关性很高的变量转化成彼此相互独立或不相关的变量,实际上是一种降维方法. ...

  5. 数学建模算法与应用学习day1——线性规划问题整数规划问题

    以下内容来自司守奎编写的数学建模算法与应用学习,主要是记录自己的学习历程,转载还请标明出处! 一.线性规划 知识点 1.1线性规划问题 1.1.2线性规划解的概念 f = [-2 ; -3 ; 5]; ...

  6. Python最优化算法学习笔记(Gurobi)

    微信公众号:数学建模与人工智能 github地址:https://github.com/QInzhengk/Math-Model-and-Machine-Learning Python最优化算法学习笔 ...

  7. 数学建模日常心得笔记

    本文章是个人学习数学建模的日常心得笔记 学习资料: B站视频: [零基础教程]老哥:数学建模算法.编程.写作和获奖指南全流程培训!_哔哩哔哩_bilibili 参考书籍:<MATLAB R201 ...

  8. Python预测 数据分析与算法 学习笔记(特征工程、时间序列)

    微信公众号:数学建模与人工智能 GitHub - QInzhengk/Math-Model-and-Machine-Learning 第3章 探索规律 3.1 相关分析 相关关系是一种与函数关系相区别 ...

  9. LL1分析构造法_数学建模算法--最优赋权法(含代码)

    数学建模算法--最优赋权法(含代码) 作者:郑铿城 本次介绍数学建模和科研写作的方法--最优赋权法最优赋权法经常用于分析评价类问题,从该算法的名称就可以看到,该算法首先要体现"最优" ...

最新文章

  1. macbook和 windows共享文件
  2. restful api与传统api的区别(方式及语法)
  3. 【多线程】线程池拒绝策略详解与自定义拒绝策略
  4. WebRTC详解-zz
  5. 程序猿到了30岁以后,是如何把自己逼死的
  6. 【JavaScript】判断一个字符串是否是数值 / 判断是否包含字母(附常用正则表达式)
  7. 关于页面动态添加控件(转)
  8. 猜数字(HDU-2178)
  9. 别再抱怨 TensorFlow2.0 辣鸡了,会了是“真香”
  10. mysql交给spring管理_Mysql事务结合spring管理
  11. inotify实时同步工具理论和实战
  12. JAVA遇上HTML-----JSP 篇基本概念
  13. window 2008r2 无法访问 Ox80004005
  14. 各大物联网平台对比之百度IoT云平台
  15. java商城答辩_java网上商城系统毕业设计答辩.ppt
  16. 磁碟机病毒(VcingT)越来越变态——最新分析报告发布
  17. 台式机计算机上的无线开关,台式机无线网络开关在哪
  18. Core的.mli文件在哪里
  19. 不用找,你想要的游戏成套3d模型素材都在这里
  20. 2022年武汉市都市田园综合体申报条件时间及奖励补贴情况

热门文章

  1. Echars使用指南
  2. kafka学习(六)
  3. 利用思维导图,快速整理小学语文复习重点,建议为孩子收藏!
  4. 免费个人网站制作离不开参考
  5. mysql is running but_MySQL: mysql is not running but lock exists 的解决方法
  6. java氧气版,氧气呼吸器属于( )。
  7. 红米note7找android,红米Note 7
  8. Linux jinfo报错 Doesn’t appear to be a HotSpot VM
  9. ValueError: binary mode doesn‘t take an encoding argument
  10. 【RL-TCPnet网络教程】第30章 RL-TCPnet之SNTP网络时间获取