数学建模学习笔记
目录
[TOC]
评价类方法
层次分析法
搜索引擎
虫部落‐快搜 : https://search.chongbuluo.com/
算法步骤
1.写出判断矩阵
2.判断矩阵一致性检验
3.判断矩阵求权重
算术平均法
几何平均法
==特征值法(最常用)==
4.计算权重和
算法代码
1 | %% 注意:在论文写作中,应该先对判断矩阵进行一致性检验,然后再计算权重,因为只有判断矩阵通过了一致性检验,其权重才是有意义的。 |
F4锁定单元格
优劣解距离法
算法步骤
正向化
将所有的指标转化为极大型指标
正向化矩阵标准化
标准化的目的是为了消除量纲的影响
计算得分
归一化
用excel对数据进行可视化
算法代码
主函数:
1 | %% 第一步:把数据复制到工作区,并将这个矩阵命名为X |
Positivization 函数
1 | % function [输出变量] = 函数名称(输入变量) |
正向化函数
1 | function [posit_x] = Inter2Max(x,a,b) |
自输入权重代码
主函数
1 | %% 第一步:把数据复制到工作区,并将这个矩阵命名为X |
基于熵权法权重的代码
1 | %% 第一步:把数据复制到工作区,并将这个矩阵命名为X |
增添功能函数
1 | function [W] = Entropy_Method(Z) |
灰色关联分析
传统数理统计的不足之处
该方法的好处
算法步骤
- 画统计图(excel)
- 确定分析数列(即确定参考数列(母序列)和比较数列(子序列))
- 对变量进行预处理(目的:1.去量纲;2.缩小变量范围简化计算)
- 计算子序列中多个指标与母序列的关联系数
- 求每个指标对于母指标的关联度(关联系数求平均)
- 比较关联度大小得出结论(关联度越大表示联系越紧密)
算法代码
1 | %% 灰色关联分析用于系统分析例题的讲解 |
基于灰色关联度权重的代码
1 | %% 灰色关联分析用于综合评价模型例题的讲解 |
模糊综合评价
算法步骤
- 确定因素集(评价指标)(分类来划分层级),评语集(评价度量),因素集权重(指标权重)
- 确定模糊综合判断矩阵(分别建立每个指标的隶属函数(指标正向化))
- 模糊向量=权重集 * 模糊综合判断矩阵
- 综合评判得出结果
用excel绘制图形
饼图
柱状图
双向柱状图
条形图
双向条形图
直方图
折线图
双轴折线图
类别折线图
散点图
分类散点图
箱线图
excel技巧
数据透视表(便于数据交互分析)
常见问题
1.数据透视表有空白
2.日期或时刻为文本型
3.数值为文本型
解决方法:
- 分列功能
- 用.txt文件
强大的工具
方方格子:可以用于多文件处理
VBA
插值算法(常用于数据缺失值处理)
低阶插值方法
分段插值(低级但好用)
分段多项式插值
多项式插值(不好用)
中阶插值方法(龙格现象)(导数不符合)
- 拉格朗日插值
- 牛顿插值
高阶插值方法(导数保持一致)
- 埃尔米特插值(一般为三次)
- 样条插值(一般为三次)
算法代码
1 | % 分段三次埃尔米特插值 |
插值方法可以进行短期预测
数据缺失值处理
【缺失值处理】如何利用spss做均值替代、中位数替代与多重插补?
拟合算法
拟合优度(线性函数的评价指标)
算法代码
最小二乘法
1 | clear;clc |
拟合工具箱使用
1 | population = [3.9,5.3,7.2,9.6,12.9,17.1,23.2,31.4,38.6,50.2,62.9,76.0,92.0,106.5,123.2,131.7,150.7,179.3,204.0,226.5,251.4,281.4]; |
相关学术名词解释 (word文件)
相关分析
Pearson相关系数
算法代码
1 | clear;clc |
SPSS
数据可视化
分析统计
矩阵散点图
假设检验
基本概念
- 原假设H
0 - 备择假设H
1 - 置信水平β
- 显著性水平α
- P值
等式:α+β=1
双侧检验的P值是单侧检验P值的两倍
当计算出的P值小于对应的显著性水平的时候,拒绝原假设,选择备择假设
置信水平一般取95%,显著性水平一般为5%
Pearson相关系数假设检验
Pearson假设检验条件
正态分布检验
JB检验
夏皮洛—威尔克检验
Q—Q图检验
Spearman相关系数
假设检验
两种相关系数的比较
图论
1 | %% Matlab作无向图 |
迪杰斯特拉算法(广度优先算法)
贝尔曼福特算法
算法代码
1 | % 注意哦,Matlab中的图节点要从1开始编号,所以这里把0全部改为了9 |
弗洛伊德算法
算法代码
1 | function [dist,path] = Floyd_algorithm(D) |
1 | function [] = print_path(path,dist,i,j) |
1 | function [] = print_all_path(D) |
主函数
1 | % PPT第七页的例子 |
多元回归分析
回归分析的分类
数据类型
数据收集
一元线性回归
解释变量模型
多元线性回归
自变量不充分产生内生性
内生性:因为自变量个数不充分引起的
外生性:自变量个数恰好可以完全解释因变量
多重共线性:自变量过多,引起自变量之间存在相关性
核心解释变量和控制变量解救内生性
回归模型解释
交互项
回归方法
软件
处理语法
数据描述
- summarize 定量数据
- tabulate 定性数据
- regress y x1 x2 … x
k
原假设:回归系数不显著异于0
当P<0.05时拒绝原假设,认为回归系数显著异于0,回归系数有效
联合显著性检验:验证回归模型的正确性
原假设同上
代码
1 | // 按键盘上的PageUp可以使用上一次输入的代码(Matleb中是上箭头) |
虚变量
R^2^较低处理方法
- 预测性回归看重R^2^、解释性回归不看重R^2^
- 调整模型,将自变量或者因变量取对数,或者交互项(解释不清楚)
- 数据存在异常值,或者数据分布不均匀。调整数据
标准化回归消除量纲(度量影响力)
异方差
异方差:扰动项方差不一致
截面数据容易出现异方差
定义
异方差的影响和解决
影响
- 导致回归系数失效
- 假设检验无法使用
- OLS估计量不是最优线性无偏估计量
解决方法
- 使用OLS+稳健标准误(推荐)
- 广义最小二乘法GLS
检验异方差存在
BP检验
原假设:不存在异方差
P>0.05时说明在95%的置信水平下扰动项不存在异方差
即不拒绝原假设
怀特检验
原假设同上
异方差的解决
稳健标准误(推荐)
多重共线性
自变量之间存在相关性引起
影响:
- 多重共线性会使得回归系数估计不准确
- 总体F检验显著,但单个系数t检验不显著
多重共线性检验
VIF>10认为存在严重的多重共线性
多重共线性处理方法
- 预测回归不关注多重共线性问题,解释回归关注
- 当多重共线性不影响解释变量时,可以不考虑多重共线性的影响
- 当多重共线性影响解释变量时,增大样本容量,剔除导致严重共线性的变量或者修改模型
- 逐步回归法
逐步回归
向后逐步回归更好
岭回归和lasso回归(逐步回归升级版)(解决多重共线性)
- 逐步回归升级版
- 解决多重共线性
古典回归模型
瞒住四个假定:
- 线性假定
- 严格外生性
- 无多重共线性
- 球形扰动项
岭回归
适用于样本数量n小于指标数量的情况
λ选取
方法
- 岭迹分析
- VIF法(方差膨胀因子)
- 最小化均方误差(MPSE)
代码
lasso回归(推荐)
优点
- 可以将不重要的回归系数压缩至0
缺点
- 没有显示解,只能使用近似估计算法
K折交叉验证
压缩不重要的自变量
适用情况
代码
1 | // 清空工作区数据 |
分类模型
方法
- 逻辑回归(logistic regression)
- 费希尔线性回归(Fisher线性判别)
逻辑回归
二分类
首先:将决策变量转化为虚拟变量0-1
如果自变量是定性变量,需要对自变量进行虚拟化
提高预测精度的方法
- 加入平方项或交互项(可能会造成过拟合现象)
- 交叉验证
多分类
Fisher线性判别分析
二分类
多分类
聚类模型
注意:需要对数据进行标准化
K-means聚类算法(基于距离)
算法优劣
K-means++改进算法(基于距离)
spss操作
系统(层次)聚类(基于距离)(推荐)
算法流程
注意事项
spss操作
肘部图(估计k)
DBSCAN算法(基于密度)
基本概念
算法优劣
代码
1 | function [IDX, isnoise]=DBSCAN(X,epsilon,MinPts) |
时间序列分析
基本概念
时间序列分解
spss缺失值处理
spss数据处理(时间序列图)
操作用途和步骤
模型建立
指数平滑模型
一元时间序列分析模型
建模思路和实例
季节性数据
人口预测
股票上证指数预测
GDP增速预测
优化类方法
蒙特卡洛模拟
引例:浦丰投针实验
代码
1 | %% 蒙特卡罗用于布丰投针实验 |
概述
蒙特卡罗⽅法⼜称统计模拟法,是⼀种随机模拟⽅法
蒙特卡洛模拟是一种算法思想,不是直接的算法
三门问题
代码
1 | %% 蒙特卡罗用于模拟三门问题 |
排队问题
代码
1 | %% 蒙特卡罗模拟排队问题 |
非线性约束问题
- 写出各个自变量的大致范围
- 用随机数模拟
- 找出符合条件的最大值
代码
1 | %% 蒙特卡罗求解有约束的非线性规划问题 |
代码
1 | %% 蒙特卡罗求解非线性规划问题 |
0-1规划问题
- 类似暴力搜索
- 当穷举次数远远大于模拟次数的时候,结果不正确
- 但是它比穷举法要稳定的多
代码
1 | %% 书店买书问题的蒙特卡罗的模拟 |
导弹追踪问题
- 这类似一个差分模型
- 取时间间隔t趋近于0
- 当导弹与B船的距离小于某一值的(一般较小)时,认为它们已经相撞
代码
1 | %% 蒙特卡罗用于模拟导弹追击问题 |
旅行商问题
- 当地点过多时(大于15)蒙特卡洛模拟将很难得到比较好的结果
- 在这种情况下,智能算法更加适用问题的求解
代码
1 | %% TSP(旅行商问题) |
估计自然常数
代码
1 | %% 作业参考答案:蒙特卡罗的方法去估计自然常数e |
武器升级
代码
1 | %% 蒙特卡罗解决武器升级问题 |
选择决策方案模拟(换灯泡问题)
代码
1 | %% 选择决策方案的模拟 |






















