精华内容
下载资源
问答
  • 数学建模模型检验
    千次阅读
    2022-03-05 10:19:32

    2021年数学建模国赛C题问题四详细思路和代码

    小编本次建模虽然没能获得国奖,但是还是想把思路分享给大家,希望大家多多批评与指正

    1 问题分析

    问题四要求确定企业每周产能可以提高多少,从题意来看,企业每周的产能是描述其生产能力和实力的指标,应当是企业长期的体现。并且题目中明确给出了企业当前情况下每周的产能为2.82万立方米,故我们认为:企业每周的产能应当是一个固定值,体现其本身的生产能力和综合情况。

    确定概念后,我们对问题进行了分析,发现题目中实际上是要求我们对未来24周企业每周的产能进行优化,在相应的订购方案和转运方案下,达到尽量提高的目的。确定优化任务后,我们需要对优化目标进行量化。

    结合前几个问题的分析,我们发现优化出来的订购方案和转运方案其实每周都可以满足企业当前的产能(2.82万立方米),为了找到企业到底能提高多少,我们对某一个订购方案和转运方案进行了分析,发现每周原材料都有剩余,数量各不相同。库存原料主要是为了防止未来某一周原料不够时出现停产情况,但是目前的情况是:每一周都有剩余,所以不会出现停产情况。那么,如果我们记录下24周中最小的库存量,然后在此基础上,每周均多用最小库存量的原料,这样该企业在每周的产能就得到了提高,且不会出现停线情况。

    在这里插入图片描述
    分析后,我们又发现只要找到不同方案下最小库存量的最大值,即可达到最大化提高企业每周产能的目的。而这个目的,完全可通过模拟退火算法得到,以最小库存量为优化目标,通过产生不同的订购和转运方案,优化最小库存量,使其最大化。问题三的具体思路如图8.1所示。

    2 产能模型与方案产生

    为了能优化企业每周的产能,我们给定的订购方案和转运方案下,通过每周原料的库存量构建了产能目标函数,下面给出第 周库存产能的计算方法:
    在这里插入图片描述
    关于订购方案,首先我们基于402家供应商后24周的订货数据,结合AdaBoost算法对未来24周的订购量进行了预测,然后采用与问题三中公式(7-3)一致的初始化条件,但是不再采用优先级初始化方法,随机对订货数据进行初始化,得到订购方案。

    关于转运方案,也需要基于已经初始化得订购方案进行初始化,其初始化方法和满足的条件与问题二一致,我们可参考公式(6-8)给出,这里不再赘述。

    下面给出本问题优化的目标函数和相关限制条件:
    在这里插入图片描述

    3 优化结果

    在实际优化过程中,我们选取外循环500次,内循环100次,初始温度 给定为1000,温度衰减系数 为0.98。最后通过模拟退火算法,优化出企业的最优产能为3万立方米左右,比起原产能2.82万立方米提高了6.4%左右。
    在这里插入图片描述
    对应的订购方案和转运方案如下表所示:
    在这里插入图片描述

    模型的评估与检验

    本文主要建立了经济效益模型与损耗模型,借助模拟退火算法对建立的模型进行了优化,给出了对应的订购和转运方案。

    模型优点

    (1)引入了随机森林算法构建经济效益模型,用随机森林算法训练时,各属性节点的权重量化解决了时间序列对经济效益的影响,同时利用了模型的预测概率量化了供应商的供货能力,一举两得。
    (2)通过分析发现了数据呈周期性变化的特点,并以最后14周的数据为支撑,引入AdaBoost集成学习算法,对未来24周的订货量、供货量和损耗率进行了预测,模型回归系数高,可信性高。
    (3)借助AdaBoost算法预测的未来24周的损耗率数据,构建了损耗模型;
    (4)对于问题三中的双目标优化问题,提出“线性加权”的思路,实现优化问题的简化;
    (5)引入灰度关联分析算法验证了供应商重要性模型的正确性;

    模型缺点

    随机森林模型、AdaBoost均是以预测为主,预测结果虽然精度高,但实际产生的意义难以准确说明,“黑盒性”比较大。

    模型的检验

    本部分旨在说明经济效益模型算法和AdaBoost算法选择的合理性:

    (1)随机森林经济效益模型

    为了衡量时间序列对经济效益的影响,我们考虑使用决策树类或者神经网络类算法,能够在训练结束后返回属性节点(即训练集中各维度)的重要性,得到时间序列权重。下表反映了在训练集:测试集为“8:2”的情况下,利用随机森林、决策树和多层感知机神经网络的精度:
    在这里插入图片描述
    比起其他两种算法随机森林算法用于经济效益模型训练时,随机森林在测试时能达到更高的精度和更高的F1值,故选择了随机森林算法具有合理性。

    (2)AdaBoost集成学习回归模型

    在前期算法选择上,我们尝试了常见的用于回归的算法:岭回归、支持向量机、Logistic回归,但是拟合效果均很差,所以尝试使用集成学习的强学习算法AdaBoost进行回归预测,上述算法的回归系数如下表:
    在这里插入图片描述
    从回归系数来看,AdaBoost在性能上远超其他常用的拟合预测算法,这是也是集成学习器是强学习器的体现。故我们选择AdaBoost算法用于拟合预测未来24周订货量、供货量和损耗率。

    模型的推广

    对于国内生产企业原材料的订购和转运场景,可以将本文所建立的模型经过一定的改进与优化,用到实际生产中。可为企业定制订购和转运方案,将算法模型写入企业管理系统中,实际嵌入到企业的管理平台中,对原材料的订购和转运问题进行实时管控,进而达到助工助产的目的。

    随机初始化转运方案代码

    % 随机初始化转运方案
    function [trans_plan] = Init_trans(order_plan, waste)
    trans_plan = zeros(402, 8 * 24);
    for i = 1:24
        waste_week = waste(:, i);
        ranp = zeros(8, 1);
        transporter = [];
        for t = 1:8
            if waste_week(t) ~= 0
                transporter = [transporter, t];
            end
        end
        
        for j = 1:402
            if order_plan(j, i) ~= 0
                rand_num = transporter(randperm(numel(transporter), 1)); 
                if ranp(rand_num) + order_plan(j, i) < 6000
                    ranp(rand_num) = ranp(rand_num) + order_plan(j, i);
                    trans_plan(j, (i - 1) * 8 + rand_num) = order_plan(j, i);
                else
                    surplus = ranp(rand_num) + order_plan(j, i) - 6000;
                    ranp(rand_num) = 6000;
                    trans_plan(j, (i - 1) * 8 + rand_num) = order_plan(j, i) - surplus;
                    
                    rand_num = transporter(randperm(numel(transporter), 1));
                    while ranp(rand_num) + surplus > 6000
                        if ranp(rand_num) < 6000
                            surplus = surplus - (6000 - ranp(rand_num));
                            trans_plan(j, (i - 1) * 8 + rand_num) = (6000 - ranp(rand_num));
                            ranp(rand_num) = 6000;
                        end
                        rand_num = transporter(randperm(numel(transporter), 1)); 
                    end
                    ranp(rand_num) = ranp(rand_num) + surplus;
                    trans_plan(j, (i - 1) * 8 + rand_num) = surplus;
                end
            end
        end
    end
    end
    
    
                
    
    

    退火代码

    load('..\predict_402.mat');
    load('..\predict_waste.mat');
    load('..\prob.mat');
    class = prob(:, 3);
    
    %% 模拟退火算法寻找产能最大
    T0 = 1000;
    T = T0;
    maxOutTimes = 500;  % 外循环
    maxInTimes = 100;  % 内循环
    alfa = 0.98; 
    %随机产生初始解
    [x10, x20, capacity0] = t4_init(predict_402, predict_waste, class);
    y0 = min(capacity0);
    
    %% 定义一些保存中间过程的量
    max_y = y0;   
    MAXY = zeros(maxOutTimes, 1);
    temp = zeros(maxOutTimes, 1);
    
    %% 模拟退火过程
    % 外循环
    for iter = 1 : maxOutTimes  
        % 内循环
        for i = 1 : maxInTimes 
            %% 随机产生新解
            [x1, x2, capacity] = t4_init(predict_402, predict_waste, class);
            
            %% 记录新解,并计算新解的函数值,保存最优解
            y1 = min(capacity);
            % 如果新解函数值大于当前解的函数值
            if y1 > y0    
                % 更新当前解为新解
                x10 = x1; 
                x20 = x2;
                y0 = y1;
                capacity0 = capacity;
                
            %%根据Metropolis准则计算一个概率
            else
                p = exp(-(y0 - y1) / T); 
                if rand(1) < p
                    % 更新当前解为新解
                    x10 = x1; 
                    x20 = x2;
                    y0 = y1;
                    capacity0 = capacity;
                end
            end
            
            % 判断是否要更新找到的最佳的解
            if y0 > max_y  
                max_y = y0;  
                best_x1 = x10; 
                best_x2 = x20; 
                best_c = capacity;
            end
        end
        
        % 记录本次外循环结束后找到的最优解
        MAXY(iter) = max_y; 
        T = alfa * T; 
        temp(iter) = T;
    end
    
    disp('该企业每周的产能为:'); 
    disp(max_y);
    xlswrite('..\附件A 订购方案数据结果.xlsx', best_x1, '问题4的订购方案结果', 'B7:Y408');
    xlswrite('..\附件B 转运方案数据结果.xlsx', best_x2, '问题4的转运方案结果', 'B7:GK408');
    
    %% 画出每次迭代后找到的最小值的图形
    fig = figure;
    X = 1:maxOutTimes;
    yyaxis left
    plot(X, MAXY);
    ylabel('产能');
    yyaxis right
    plot(X, temp);
    ylabel('温度');
    xlabel('迭代次数');
    title('模拟退火算法寻找企业最优产能');
    legend('产能', '温度');
    
    更多相关内容
  • 数学建模模型案例解析-商品的广告与销售的数学模型
  • 数学建模模型案例解析-血样分组检验的数学模型
  • 数学建模模型案例解析-血样分组检验的数学模型
  • 数学建模学习方法-干预分析模型
  • 清风数学建模~灵敏度分析、模型检验和误差分析、模型的评价改进和推广

    推荐文章:数学建模灵敏度分析是什么?为什么获奖论文基本都有!【科研交流】

    1. 视频地址:18数学建模论文写作方法:灵敏度分析
    2. 视频地址:19数学建模论文写作方法:模型检验和误差分析
    3. 视频地址:20数学建模论文写作方法:模型的评价改进和推广

    目录

    18数学建模论文写作方法:灵敏度分析

    19数学建模论文写作方法:模型检验和误差分析

    20数学建模论文写作方法:模型的评价改进和推广


    18数学建模论文写作方法:灵敏度分析

    灵敏度分析:高中——控制变量法

      

     斜率         a变化,y敏感/稳定

     

     

     

    19数学建模论文写作方法:模型检验和误差分析

    泰勒展开

    20数学建模论文写作方法:模型的评价改进和推广

     

     

     

    展开全文
  • 实际应用中,数学模型是否合适,必须对其解的意义进行分析、检验。为进一步优化模型,从量纲一致性分析、参数灵敏度分析、临界值分析、假设合理性检验分析、误差分析...模型检验主要包括实际可行性检验,模型的改进与完善。
  • 数学建模常用模型

    千次阅读 2022-07-18 09:02:50
    数学建模十大基础方法,需要详细代码的同学可以关注私我。

    第一讲:层次分析法

     

    建模比赛中最基础的模型,主要用于解决评价类问题(例如:选择哪种方案最好,哪位运用动员或者员工的表现更优秀)。

    评价类问题主要依据权重(重要性权重)来解决:

    例如 高考选择学校时,有A和B两个学校进行学习,那么如何挑选学校就是一个问题了。

    则我们依据权重对学习氛围,就业前景,男女比例,校园景色逐一进行权重分析。

    权重分析表
    指标权重AB
    学习氛围0.40.70.3
    就业前景0.30.50.5
    男女比例0.20.30.7
    校园景色0.10.250.75

                         同一指标的权重和为一,则结果:

                             A=0.4*0.7+0.3*0.5+0.2*0.3+0.1*0.25=0.515

                             B=0.4*0.3+0.3*0.5+0.2*0.7+0.1*0.75=0.485

                                              在选择时根据这章权重分析表可以简单选出自己心仪的学校

           再引入一个例子:假如小明想去旅游。粗略的检索了网上的资料后确定了,黄山,稻城,武当山三个地方作为目标景点。                                                                                                                       请你确定评价指标形成评价体系来为小明选出最佳方案。

    首先解决此类问题,也就是评价类问题,首先要想到三个问题:

     1-我们评价的目标是什么?

     2-我们为了到达目标有几种方案?

    3-评价的准则或者说目标是什么?(根据什么来评价好坏)

           前两个问题显而易见的,从题目中可以直接读出来。但是第三个问题的答案需要我们根据题目中的背景材料,常识以及网上搜集到的参考资料结合,以此选出最合适的指标。

    对于本问题分析得出五个指标 景色,花费,居住,饮食,交通等五个指标。

          人的思想千变万化对于同一个问题的答案可能每天都不相同,所以不可能直接让小明对所有指标进行判断,所以我们分而治之,对两个指标两个指标相互比较,最终推算出权重。

    标度含义
    1表示两个因素相比,同样重要
    3表示两个因素相比,一个因素比另一个因素稍微重要
    5表示两个因素相比,一个因素比另一个因素明显重要
    7表示两个因素相比,一个因素比另一个因素强烈重要
    9表示两个因素相比,一个因素比另一个因素重要
    2,4,6,8上述相邻判断的中值
    倒数A/B=3则B/A=1/3

    对于五个指标和三个景色对应的五个指标下的权重,我们引入权重列表。

    景色话费居住饮食交通
    景色11/2433
    花费21755
    居住1/41/711/21/3
    饮食1/31/5211
    交通1/31/5311

    这是对于指标的权重分析法:上表一个5*5的方阵,我们记作A,对应元素为a_{ij}

    (1)a_{ij}的意义是,与指标j相比,i的重要程度

    (2)当i=j的时候,两个指标相同,因此同等重要记为1

    (3)当每个元素都大于0,且a_{ij}*a_{ji}=1时,我们称这个矩阵叫做正互反矩阵。

    这个矩阵也叫作层次分析法的判断矩阵。

    但填写判断矩阵可能会引发一些问题:

    景色稻城武当山黄山
    稻城121
    武当山1/212
    黄山11/21

    细心观察就会发现其中的逻辑性问题!  稻城=A 武当山=B 黄山=C                                                                                                                       则 A> B A=C B>C        出现了矛盾之处(不一致现象)

      

    景色话费居住饮食交通
    景色11/2433
    花费21755
    居住1/41/711/21/3
    饮食1/31/5211
    交通1/31/5311

              上表一个5*5的方阵,我们记作A,对应元素为a_{ij} 我们将这种没有矛盾的矩阵成为一致矩阵

    一致矩阵需要满足三个条件(1)每一个元素都大于0

                                               (2)左向下对角元素均为一

                                               (3)各行各列对应成比例

    由一致矩阵可以总结出:n阶一致矩阵的一个特征值为n,其余特征值均为零。

    当特征值为n时又可以得到,其对应的特征向量刚好为

                                                                                             \frac{1}{a_{11}}\frac{1}{a_{12}}........\frac{1}{a_{1n}}

    引理:n阶正互反矩阵A为一致矩阵时当且仅当最大特征值为n,而当A为非特征矩阵时,一定有最大特征值大于n,判断矩阵越不一致则与n的差值就越大。

    一致性检验的步骤:

    第一步:计算一致性指标CI

    CI=\frac{\lambda _{max}-n}{n-1}

    第二步:查找对应的平均随机一致性指标RI

    n123456789101112131415
    RI000.520.891.121.26

    1.36

    1.461.491.521.541.541.561.581.59

    第三步:计算一致性比例

    CR=\frac{CI}{RI}

    如果一致性比例CR<0.1,则可以认为该判断矩阵的一致性比例可以接受:否则就需要对判断矩阵修正。

    判断矩阵及计算权重

    方法一:算数平均法求权重

    景色稻城武当山黄山
    稻城125
    武当山1/212
    黄山1/51/21

    第一步:将判断矩阵按照归一化处理(每一个元素除以所在列的和)

    景色稻城武当山黄山
    稻城0.58820.57140.625
    武当山0.29410.28570.25
    黄山0.11770.14290.125

    第二步:将归一化的各行各列相(按行求和)

    权重
    稻城0.5882+0.2941+0.1177=1.7846
    武当山0.5714+0.2857+0.1429=0.8298
    黄山0.625+0.25+0.125=0.3856

    第三步:将相加后得到的数值除以n得到权重

    权重
    稻城1.7846/3=0.5949
    武当山0.8298/3=0.2766
    黄山0.3856/3=0.1285

    假设判断矩阵A

         \bg_white \begin{bmatrix} a_{11} & a_{12}& ... & a_{1n} & \\ a_{21} & a_{22} & ...& a_{2n} & \\ ... & ...& ... & ... & \\ a_{n1} &a_{n2} & ...& a_{nn} & \end{bmatrix}

    那么算数平均法求得的权重向量为\omega _{i}=\frac{1}{n}\sum_{n}^{j=1}\frac{a^{_{ij}}}{\sum_{k=1}^{n}a_{ki}}       (i=1,2,3,4...........)

    方法二:特征值求权重

    如果一致性检验可以接受那么可以仿照一致矩阵求权重的方法。

    第一步:求出矩阵A的最大特征值以及对应的特征向量

    第二步:对求出的特征向量归一化处理就可得到权重

    景色稻城武当山黄山
    稻城125
    武当山1/212
    黄山1/51/2

    1

    最大特征值为3.0055,一致性比例CR=0.0053,对应的特征向量位[-0.8902,-0.4132,-1918],对其归一化处理后,[0.5954,0.2764,0.1283]

    方法三:几何平均法求权重

    第一步:将A的元素按照行相乘得到一个新的向量

    第二步:将新向量的每个分量开n次方

    第三步:对此向量进行归一化处理即可得到权重。

    假设判断矩阵A

    \bg_white \begin{bmatrix} a_{11} & a_{12}& ... & a_{1n} & \\ a_{21} & a_{22} & ...& a_{2n} & \\ ... & ...& ... & ... & \\ a_{n1} &a_{n2} & ...& a_{nn} & \end{bmatrix}

    那么几何平均法求得的权重向量\omega _{i}=\frac{(\prod_{j=1}^{n}a_{ij})^{\frac{1}{n}}}{\sum_{k=1}^{n}(\prod_{j=1}^{n}a_{kj})^{\frac{1}{n}}}    (i=1,2,3,4...........)

     后面就是将各项权重计算而出,得到最终结果。

    总结:层次分析法第一步需要分析系统各因素关系,建立系统的递阶层次结构。

    如果用到了层次分析法一定要将层次结构图画出。

    参差分析法的局限性:

     (1)可决策层数不能太多,太多了n会很大,判断矩阵和一致矩阵差异可能会很大。

     (2)如果决策层中的指标数据已知,那么用层次分析法就不是那么准确了。

    第二讲:优劣解距离法

         承接上文参差分析法中,层次分析法当给出了精确数值时就显得不是那么准确了。当决策层中的数据已知时怎样让决策更加准确呢?

    类举一个例子:

    姓名分数
    小明89
    小王60
    小张74
    小刘99
    请你为这四名同学进行评分,该评分能合理的描述其高数成绩的高低。
    如果按照上节层次分析法的思想来求,
    姓名分数排名修正后的排名评分
    小明89230.3
    小王60410.1
    小张74320.2
    小刘99140.4

    如果保持排名不变,则可以随意修改分数,那么小王考60和考10分的结果就是相同的。这显然是不合理的。

    那么我们就必须用到本节需要学习到的优劣解距离法:
    对于列表中的数据我们在进行处理后进行归一化,我们引入这样一个公式 \frac{X-min}{max-min}
    姓名分数未归一化评分归一化评分
    小明890.740.35
    小王6000
    小张740.360.17
    小刘9910.48
    对于这个公式的解释有三点:
    (1)比较的对象一般要远大于两个。(例如比较一个班级的成绩)
      
    (2)比较的指标也往往不只是一个方面的,例如成绩、工时数、课 外竞赛得分等。
       
    (3)有很多指标不存在理论上的最大值和最小值,例如衡量经济增 长水平的指标:GDP 增速。

    所以我们引入评分的公式:\frac{X-min}{max-min}

    当我们给指标增加个数时:

    现在我们新增一个指标如表:

    姓名分数与人争吵次数
    小明892
    小王600
    小张741
    小刘993
    指标共有四种类型
    指标名称
    指标特点
    例子
    极大型指标(效益型指标)
    越大(多)越好
    成绩、 GDP 增速、企业利润
    极小型指标(成本型指标)
    越小(少)越好
    费用、坏品率、污染程度
    中间型指标
    越接近某个值越好
    水质量评估时的 PH
    区间型指标
    落在某个区间最好
    体温、水中植物性营养物量

    而对一个数据用优劣解距离法进行处理时分为三步。

    第一步:原始矩阵正向化处理

    顾名思义,所谓的将原始矩阵正向化,就是要将所有的指标类型统一转化为极大型指标。(转换的函数形式可以不唯一哦

    极小型指标转换为极大型指标:

    公式:max-X(如果所有元素都为正数,也可以实用\frac{1}{X}

    中间型转换为极大型:

    中间指标即不要太大也不要太小,取某一特定的值最好。(列如水的pH值)

    {X_{i}}是一组中间型指标序列,且最佳的数值为X_{best},那么正向化的公式有:

    M=max\left \{ \left | X_{i}-X_{best} \right | \right \}X_{i}^{'}=1-\frac{\left | X_{i}-X_{best} \right |}{M}

    区间型指标转换为极大型:

    区间型指标:指标值落在某个区间内最好,例如人的体温在36°~37°这个区间比较好。

    \left \{ X_{i} \right \}是一组区间型指标,且最适区间为\left [ a,b \right ]那么正向化的公式如下:

    M=max\left \{ a-min\left \{ X_{i} \right \},max\left \{ X_{i} \right \}-b \right \},      X_{i}^{'}=\left\{\begin{matrix} 1-\frac{a-X_{i}}{M},X_{i}<a& & \\ 1,a\leqslant X_{i}\leq b & & \\ 1-\frac{X_{i}-b}{M},X_{i}>b& & \end{matrix}\right.

    第二步:正向矩阵标准化

    标准化的目的是消除不同量纲的影响。

    假设有n个要评价的对象,m个评价指标,构成的正向化矩阵如下所示:

    X=\begin{bmatrix} x_{11} & x_{12} & ... & x_{1m} & \\ x_{21} & x_{22} & ... &... & \\ ... & ...& ...& ...& \\ x_{n1} & x_{n2} & ...& x_{nm} & \end{bmatrix}

    那么对其中每一个元素除以所在列所有元素得平方和开方:

    记标准化后的矩阵为Z,则Z_{ij}=\frac{X_{ij}}{\sqrt{\sum_{i=1}^{n}}X{_{ij}}^{2}}

    注意:标准化的方法有很多种,其主要目的就是去除量纲的影响,未来我们还可能见到更多
    种的标准化方法,例如: (x‐x 的均值 )/x 的标准差;具体选用哪一种标准化的方法在多数情况下
    并没有很大的限制,这里我们采用的是前人的论文中用的比较多的一种标准化方法。
    第三步:计算得分并归一化
    假设有n个要评价的对象,m个评价指标,构成的标准化矩阵如下所示:

    X=\begin{bmatrix} x_{11} & x_{12} & ... & x_{1m} & \\ x_{21} & x_{22} & ... &... & \\ ... & ...& ...& ...& \\ x_{n1} & x_{n2} & ...& x_{nm} & \end{bmatrix}

     定义最大值X^{+}=\left ( X_{1}^{+} , X_{2}^{+}, X_{3}^{+}..... X_{m}^{+}\right )   (X_{n}^{+}是每一列的最大值)

    定义最小值X^{-}=\left ( X_{1}^{-}, X_{2}^{-}... X_{m}^{-}\right ) (X_{m}^{-}是每一列的最小值)

    定义第i(i=1,2,3....n)个评价对象与最大值的距离D_{i}^{+}=\sqrt{\sum_{j=1}^{m}\varpi _{j}\left ( x_{j}^{+} -x_{ij}\right )^{2}}

    定义第i(i=1,2,3....n)个评价对象与最小值的距离D_{i}^{-}=\sqrt{\sum_{j=1}^{m}\varpi _{j}\left ( x_{j}^{-} -x_{ij}\right )^{2}}

    这里\omega _{i}=1

    那么,我们可以计算出第i(i=1,2,3....n)评价对象未归一化的得分:S_{i}=\frac{D_{i}^{-}}{D_{i}^{+}+D_{i}^{+}}

    然后我们可以进行归一化:S_{i}^{'}=\frac{S_{i}}{\sum_{i=1}^{n}S_{i}}

    𝒛 最小值的距离
    𝒛 与最大值的距离  +  𝒛 与最小值的距离
    注意:要区别开归一化和标准化。归一化的计算步骤也可以 消去量纲的影响,但更多时候,我们进行归一化的目的是为 了让我们的结果更容易解释,或者说让我们对结果有一个更 加清晰直观的印象。例如将得分归一化后可限制在0‐1 这个区 间,对于区间内的每一个得分,我们很容易的得到其所处的 比例位置。

    模型拓展:前面默认了所有指标的权重都是相等的,那么就有\omega _{i}=1

    而想要模型更加精确我们可以使用层次分析法再去将指标的权重计算出来,从而使模型更加精确。

    第三讲:插值算法

    数模比赛中,常常需要根据已知的函数点进行数据、模型的处理和 分析,而有时候现有的数据是极少的,不足以支撑分析的进行,这时就 需要使用一些数学的方法,“模拟产生”一些新的但又比较靠谱的值来满 足需求,这就是插值的作用。

    插值算法的方法有很多,大都受到了龙格现象的约束导致在高次幂的时候来回浮动波动巨大,为此我们通常使用,分段三次埃尔米特插值和三次样条插值两种插值的方法所求数据类似,两种在数模比赛中选择一种使用即可,

    分段三次埃尔米特插值和三次样条插值两种插值的方法原理复杂在这里不做过多解释,通常我们只要使用MATLAB来使用这两种算法即可,这两种插值算法如果不深究理论实际上就是一种编程算法,会涉及到MATLAB中的 pchip(),spline()这两种函数。

    分段三次埃尔米特插值:

    应用说明:MATLAB

    x = -pi:pi; y = sin(x); 
    new_x = -pi:0.1:pi;
    p = pchip(x,y,new_x);
    figure(1); % 在同一个脚本文件里面,要想画多个图,需要给每个图编号,否则只会显示最后一个图哦~
    plot(x, y, 'o', new_x, p, 'r-')

    三次样条插值和分段三次埃尔米特插值的对比:

    x = -pi:pi; 
    y = sin(x); 
    new_x = -pi:0.1:pi;
    p1 = pchip(x,y,new_x);   %分段三次埃尔米特插值
    p2 = spline(x,y,new_x);  %三次样条插值
    figure(2);
    plot(x,y,'o',new_x,p1,'r-',new_x,p2,'b-')
    legend('样本点','三次埃尔米特插值','三次样条插值','Location','SouthEast')   %标注显示在东南方向

    应用说明:MATLAB

    第四讲:拟合算法

            与插值问题不同,在拟合问题中不需要曲线一定经过给定的点。拟合问题的目标是寻求一个函数(曲线),使得该曲线在某种准则下与所 有的数据点最为接近,即曲线拟合的最好(最小化损失函数)。
           拟合和插值的区别在于,插值算法中,得到的多项式f(x)要经过所有样本点。但是如果样本点太多,那么这个多项式次数过高,会造成龙格现象。而尽管我们可以选择分段的方法避免这种现象, 但是更多时候我们更倾向于得到一个确定的曲线,尽管这条曲线不能经过每一个样本点,但只要保证误差足够小即可,这就是拟合的思想。 ( 拟合的结果是得到一个确定的曲线 )。
           拟合算法里最经典的数早在高中就接触的最小二乘法,最小二乘法有两种定义:
           第一种: y\hat{}=kx_{i}+b
                         k\hat{},b\hat{}=agr_{k,b}(\sum_{i=1}^{n}\left | y_{i}-y\hat{} \right |)
                          
            agr这个符号的意思是当 \sum_{i=1}^{n}\left | y_{i}-y\hat{} _{i}\right |这个值最小时k,b的值,通常我们寻找最小值时常常选用求导计算最小值,但这里含有绝对值不好计算,于是我们采用第二种,
    第二种:    y\hat{}=kx_{i}+b
       

     \bg_white k\hat{},b\hat{}=agr_{k,b}(\sum_{i=1}^{n}(y_{i}-y\hat{} _{i})^{2})

     为什么不使用更高次幂以及奇次幂

    (1)避免极端数据对拟合曲线的影响。 (2)最小二乘法得到的结果和 MLE 极大似然估计一致。
    不用奇数次方的原因:误差会正负相抵。
    最小二乘法的具体定义和由来在这里不做解释
    经过前人总结和定义我们得出最小二乘法中k,b的计算方法:
    k\hat{}=\frac{n\sum_{i=1}^{n}x_{i}y_{j}-\sum_{i=1}^{n}x_{i}\sum_{i=1}^{n}y_{i}}{n\sum_{i=1}^{n}x_{i}^{2}-(\sum_{i=1}^{n}x_{i})^{2}}
    b\hat{}=\frac{\sum_{i=1}^{n}x_{i}^{2}\sum_{i=1}^{n}y_{i}-\sum_{i=1}^{n}x_{i}\sum_{i=1}^{n}x_{i}y_{i}}{n\sum_{i=1}^{n}x_{i}^{2}-(\sum_{i=1}^{n}x_{i})^{2}}
    如何去评价拟合的好坏优劣呢?
    拟合优度(可决系数R^{2}
    总体平方和:SST=\sum_{i=1}^{n}(y_{i}-y\bar{})^{2}
    误差平方和:SSE=\sum_{i=1}^{n}(y_{i}-y\hat{}_{i})^{2}
    回归平方和:SSR=\sum_{i=1}^{n}(y\hat{_{i}}-y\bar{})
    拟合优度: R^{2}=1-\frac{SSE}{SST}    R平方越接近一拟合误差越小,说拟合的好.
    但是这种拟合优度的实用是有一定条件的,拟合优度 R^{2}只适用于线性函数,才可评价拟合的好坏)当线性函数和其他函数比较时,直接看SSE即可。
    在这里在补充线性函数的概念; 线性函数分为对变量线性,对参数线性,我们这里提到的是指对参数线性。
            
    如何判断线性于参数的函数?
    在函数中,参数仅以一次方出现,且不能乘以或除以其他任何的参数,并不 能出现参数的复合函数形式。
    在进行拟合是时,我们通常会采用MATLAB中的拟合工具箱进行拟合,从而节省编代码的功夫。

    第五讲相关系数

    本章我们将介绍皮尔逊相关系数和斯皮尔曼等级相关系数,它们可用来衡量两个变量之间的相关性的大小,根据 数据满足的不同条件,我们要选择不同的相关系数进行计算和分析。

    总体与样本

    总体 —— 所要考察对象的全部个体叫做总体 ,我们总是希望得到总体数据的一些特征(例如均值方差等)。
    样本 ——从总体抽取的一部分个体叫做样本。
    计算抽取的样本统计量来估计总体的统计量,例如使用样本方差和样本均值来估计总体的方差和均值
    总体皮尔逊相关系数
    在《概率论和数理统计》中的数理统计部分,如果有两组数据是总体数据分别为 \left \{ x_{1} , x_{2}..... x_{n} \right \}\left \{ y_{1} ,y_{2}.....y_{n} \right \}
    那么总体均值 E\left ( x \right )=\frac{\sum_{i=1}^{n}x_{i}}{n}, E(y)=\frac{\sum_{i=1}^{n}y_{i}}{n}
    总体协方差: Cov(x,y)=\frac{\sum_{i=1}^{n}(x_{i}-E(x))(y_{i}-E(x))}{n}
    直观的去看总体总体协方差,即当x都大于均值的时候,y如果也都大于均值那么总体协方差的值将大于零,那反之若两者都小于均值,变化方向相同则总体协方差一样大于零。若两者变化方向相反则总体协方差就会小于零,如果X、Y变化方向之间相互无规律,即分子中有的项为正,有的项为负,那么累加后正负抵消。
    注意:总体协方差会受到量纲的影响所以不好作比较。
    总体皮尔逊相关系数 \bg_white \rho _{xy}=\frac{Cov(x,y)}{\sigma _{x}\sigma _{y}}
    其中的 \sigma为数据X,Y的标准差 \sigma_{x} =\sqrt{\frac{\sum_{i=1}^{n}(x_{i}-E(x))^{2}}{n}}  \sigma_{y} =\sqrt{\frac{\sum_{i=1}^{n}(y_{i}-E(y))^{2}}{n}}
    可以证明的是  \left | \rho _{xy} \right |\leq 1,并且当Y=aX+b时,a的绝对值必然等于一。
    样本皮尔逊相关系数:
    总体协方差: \bg_white Cov(x,y)=\frac{\sum_{i=1}^{n}(x_{i}-E(x))(y_{i}-E(x))}{n-1}
    样本皮尔逊相关系数 \bg_white \rho _{xy}=\frac{Cov(x,y)}{S _{x}S _{y}}

     其中的S为数据X,Y的标准差S_{x} =\sqrt{\frac{\sum_{i=1}^{n}(x_{i}-E(x))^{2}}{n-1}}S_{y} =\sqrt{\frac{\sum_{i=1}^{n}(y_{i}-E(y))^{2}}{n-1}}

    通常我们需要计算这些数据包括最大值,最小值,平均值,标准差,方差,偏度和峰度。将包含这些数据的表粘如你自己的论文中。

    通常我们在使用皮尔逊相关系数时有需要先进行线性判断,去判断检验的两组数据是否存在线性关系,我们通常使用画散点图的方式去观察二者是否存在线性关系这个利用MATLAB和Python都很容易做到,更简单的是利用专业的统计软件spss去进行相关图形的绘制。

    注意这里的相关系数只是用来衡量两个变量线性相关程度的指标; 也就是说,你必须先确认这两个变量是线性相关的,然后这个相关系数才能 告诉你他俩相关程度如何。

    关于皮尔逊相关系数有几个容易犯错的地方:

    (1)非线性相关也会导致线性相关系数很大。

    (2)离群点对线性相关系数很大,所以我们要求数据需要连续

    (3)如果两个数据相关系数很大也不能说明这两个数据相关,有可能是被异常值影响,存在偶然性

    (4)相关系数计算结果为0,只能说不是线性相关,但说不定会有更复杂的相关关系(非线性相关)

    总结:

    (1)如果两个变量本身就是线性的关系, 那么皮尔逊相关系数绝对值大的就是相关性 强,小的就是相关性弱;
    (2)在不确定两个变量是什么关系的情况 下,即使算出皮尔逊相关系数,发现很大, 也不能说明那两个变量线性相关,甚至不能 说他们相关,我们一定要画出散点图来看才行。
    但因为不同情况下对于相关系数大小的判定情况不同, 所以通常我们关注的并非相关性,而是显著性这就涉及到假设检验
    假设检验:
                  
    我们举一个例子引入假设检验的概念:
    小明在一次体检中测量自己的体重上一次体检是90斤,所以小明认为自己的体重也还是90斤左右没有什么改变的。
    第一步做出假设
    H_{0}体重 W=90H_{1}体重 W\neq 90也就是 W< 90或者 W>90(有两边评判标准的俗称双侧检验)
    \beta置信水平指的是相信原假设成立的概率通常取90%,95%,99%。
    \alpha显著性水平指的是我们有多大可能拒接原假设。
    所以有: \beta =1-\alpha
    第二步构造一个分布:
    根据我们要检验的量取构造一个分布(正态分布,t分布,F分布, X^{2}分布),我们在这里使用整天分布构造一个, W\sim B(90,4)均值为90,方差为4,那么正态化检验标准为 z=\frac{W-90}{2}\sim (0,1)
    第三步画出概率密度函数图:
    连续性随机变量:设X分布于0到3之间
    P(a\sim b)=\int_{a}^{b}f(x) dx
    这其中的f(x)也就是我们所需概率密度函数,且 \int_{a}^{b}f(x) dx=1也就是图像的面积。
    我们在介绍一个累积函数 F(x)=P(x<b)=\int_{-\infty }^{b}f(x) dx
    这是一个增函数随着x的增大而增大,且 F(x)^{'}=f(x)
    所以我们求置信水平对应的x的值, x=F(0.95)^{-1}利用反函数去求x。
    我们回到问题里假设真是体重是94斤,z=2。当我们取置信水平为95%,那么利用反函数求得的x=2,而此时置信水平为95%对应的x=1.96。z>1.96所以在95%置信水平上不可信,原假设不成立。(这里的概率密度函数取的刚好是正态分布的图形对应的函数,所以直接用MATLAB计算即可)
    通常我们并不使用x取直接判断,而是使用P的值去判断,这个不可信的概率为0.05,那么我们只需要判断这个z对应的右边的区域对应的p*2(*2是因为是双侧检验)和P比较大小即可。如果P>p*2 那么我们在此置信水平上可以拒绝原假设,如果P<p*2那么我们再此置信水平上不可以拒绝原假设。
    第四步:
       将样本的值代入计算统计量使得落入规定范围
    假设检验呢介绍到这里,我讲的比较一般,关于假设检验这个博主讲的比较好,下附网址( http://t.csdn.cn/FgpN1
    对皮尔逊相关系数进行假设检验
    第一步:提出原假设和备选假设
    假设我们计算出一个皮尔逊相关系数r,我们想检验它是否显著的异于0,那么我们设原假设 \bg_white H_{0}:r=0, \bg_white H_{1}:r\neq 0(这是一个明显的双侧检验)。
    第二步:利用检验量构造一个符合某一分布的统计量
    对于皮尔逊相关系数r而言,在满足一定条件下,我们可以构造统计量:
    t=\sqrt{\frac{n-2}{1-r^{2}}}    t是满足自由度为n-2的 t分布
    (这里的一定条件会在后面的条件中提到)
    第三步:将检验值代入统计量
    假设我们计算的检验值为30,相关系数为0.5,那么我们就可以得到Z=3.0550
    第四步:画出该概率密度函数的图
    由于我们知道这个是一个t分布于是我们可以在MATLAB上画出这个图
    x = -4:0.1:4;
    y = tpdf(x,28);
    plot(x,y,'-')
    grid on % 在画出的图上加上网格线

    这里我们采用95%的置信水平,因为这是一个双侧检验所以我们需要寻找能覆盖95%的部分,我们可以通过查表来找到95%的置信水平对应的临界值2.048

    因为3.0550>2.048所以我们在95%的置信水平上可以拒绝原假设,所以也就是r是显著的不异于0的。同时我们借助MATLAB可以计算出Z对应覆盖的概率。

    disp('该检验值对应的p值为:')
    disp((1-tcdf(3.055,28))*2) 
    %双侧检验的p值要乘以2

    最后得到p=0.0049

    p<0.01,说明在99%的置信水平上拒绝原假设。

    p<0.05,说明在95%的置信水平上拒绝原假设。

    p<0.1,说明在90%的置信水平上拒绝原假设。

    我们在MATLAB中可以直接使用corrcoef()这个函数计算出相关系数和对应P值
    %% 计算各列之间的相关系数以及p值
    [R,P] = corrcoef(Test)
    R返回的是相关系数表, P 返回的是对应于每个相关系数的 p 值。
    可能现在大家不理解有皮尔逊相关系数说明两个样本的线性关系,那我们这个显著性还有什么意义吗? 显著性回答的问题是他们之间是否有关系,说明得到的结果是不是偶然因素导致的(具有统计学意义);相关系数回答的问题是相关程度强弱。
    还记得前面提到的 皮尔逊相关系数假设检验的条件吗
    第一, 实验数据通常假设是成对的来自于正态分布的总体。
    第二, 实验数据之间的差距不能太大
    第三:每组样本之间是独立抽样的。
    如何检验数据是否是正态分布?
    我们有两种检验方法正态分布JB检验和Shapiro-wilk检验
    正态分布JB检验也叫雅克贝拉检验(Jarque‐Bera test) (大样本 n>30)
    对于一个随机变量 \left \{ x_{i} \right \},假设其偏度为S,峰度为K,那么我们构造JB统计量:
    JB=\frac{n}{6}\left [ S^{2}+\frac{(K-3)^{2}}{4} \right ]
    可以证明,如果 \left \{ x_{i} \right \},是正态分布,那么在大样本情况下 JB\sim x^{2}(2)(自由度为2的卡fang分布)注:正态分布的偏度为0,峰度为3。
    于是我们再此进行假设检验 H_{0}:该随机变量符合正态分布  H_{1}:该随机变量不符合正态分布。
    然后,计算该变量的峰度和偏度得到检验值JB,并计算出对应p值将p值和0.05进行比较,小于0.05就可拒绝原假设,否则我们不能拒绝原假设。
    但是通常我们并不通过手工计算计算量过于庞大,我们借助MATLAB进行计算
    MATLAB 中进行 JB 检验的语法: [h,p] = jbtest(x,alpha)
    当输出h 等于 1 时,表示拒绝原假设; h 等于 0 则代表不能拒绝原假设。
    alpha就是显著性水平,一般取 0.05 ,此时置信水平为 1‐0.05=0.95
    x 就是我们要检验的随机变量,注意这里的 x 只能是向量。
    %% 正态分布检验
    % 检验第一列数据是否为正态分布
    [h,p] = jbtest(Test(:,1),0.05)
    % 用循环检验所有列的数据
    n_c = size(Test,2); % number of column 数据的列数
    H = zeros(1,6);
    P = zeros(1,6);
    for i = 1:n_c
    [h,p] = jbtest(Test(:,i),0.05);
    H(i)=h;
    P(i)=p;
    end
    disp(H)
    disp(P)

    当样本数量3\leqslant n\leqslant 50:我们通常采用Shapiro-wilk检验

    Shapiro‐wilk 夏皮洛 威尔克检验:

     于是我们再此进行假设检验H_{0}:该随机变量符合正态分布 H_{1}:该随机变量不符合正态分布。置信水平同样采用95%,直接使用spss软件进行计算。(软件计算方法很简单直接百度即可)

     接下来我们介绍另一种相关系数的计算方法

    斯皮尔曼spearman相关系数:
    定义:X和Y为两组数据,其斯皮尔曼(等级)相关系数:
    r_{s}=1-\frac{6\sum_{i=1}^{n}d_{i}^{2}}{n(n^{2}-1)}    其中的 d_{i}X_{i}Y_{i}之间的等级差。
            
    XYX的等级Y的等级等级差等级差的平方
    352111
    81054.50.50.25
    496300
    71044.5-0.50.25
    2612-11
    根据公式可以计算出斯皮尔曼相关系数为0.875
    我们通常使用MATLAB计算斯皮尔曼相关系数
    %% MATLAB求解皮尔逊相关系数
    RX = [2 5 3 4 1]
    RY = [1 4.5 3 4.5 2]
    R = corrcoef(RX,RY)
    两种用法
    (1) corr(X , Y , 'type' , 'Spearman') 这里的X Y 必须是列向量哦 ~
    (2) corr(X , 'type' , 'Spearman') 这时计算X 矩阵各列之间的斯皮尔曼相关系数
    斯皮尔曼相关系数的假设性检验
    分为小样本和大样本两种情况 :
    小样本情况,即n\leq 30时,直接查临界值表即可
    大样本情况,统计量 \bg_white r_{s}\sqrt{n-1}\sim (0,1)
    我们计算检验值 \bg_white r_{s}\sqrt{n-1}并求出对应p值和0.05对比即可。
    对于这个计算我们同样使用MATLAB进行计算
    % 直接给出相关系数和p值
    [R,P]=corr(Test, 'type' , 'Spearman')

    两个相关系数的比较:

    斯皮尔曼相关系数和皮尔逊相关系数选择 :
    1. 连续数据,正态分布,线性关系,用 pearson 相关系数是最恰当,当然用 spearman相关系数也可以, 就是效率没有 pearson 相关系数高。
    2. 上述任一条件不满足,就用 spearman 相关系数,不能用 pearson 相关系数。
    3. 两个定序数据之间也用 spearman 相关系数,不能用 pearson 相关系数。
    定序数据 是指仅仅反映观测对象等级、顺序关系的数据,是由定序尺度计量
    形成的,表现为类别,可以进行排序,属于品质数据。
    注:斯皮尔曼相关系数的适用条件比皮尔逊相关系数要广,只要满足单调关系就可使用(线性函数,指数函数,对数函数等)

    第六讲:典型相关系数

    研究两组变量(每组变量中都可能有多个指标) 之间相关关系的一种多元统计方法。它能够揭示 出两组变量之间的内在联系。

    典型相关分析的定义:

    典型相关分析由 Hotelling 提出,其基本思想和主成分 分析非常相似。
    首先 在每组变量中找出变量的线性组合,使得两组的 线性组合之间具有最大的相关系数;
    然后 选取和最初挑选的这对线性组合不相关的线性组 合,使其配对,并选取相关系数最大的一对;
    如此继续下去 ,直到两组变量之间的相关性被提取完 毕为止。数称为 典型相关系数 。典型相关系数度量了这两组变量之 间联系的强度

    典型相关分析的关键步骤:

    (1)数据的分布要有假设:两数据服从联合正态分布。(这个假设要在进行典型相关分析前在论文中提起)

    (2)首先要对两组变量的相关性进行检验(构造似然比统计量

               \bg_white H_{0}:r=0\bg_white H_{1}:r\neq 0 p值小于0.050.1)表示在95%90%)的置信水平下拒绝原假设,即认为两组变量有关。

    (3)确定典型相关变量的个数(直接看典型相关系数对应的 P 值即可)
    (4)利用标准化后的典型相关变量分析问题
    现在基本使用spss计算典型相关系数,同时还能计算出典型载荷,和标准化后的典型相关系数,用来判断其中某一指标对于此分类的影响。

    第七讲:多元线性回归分析

    本章将使用统计软件stata,进行对回归系数以及各种P值的计算。

    回归的思想,回归分析是研究X和Y之间的相关性的分析,但在这里要分清相关性和因果性的区别。

    这里提取上述三个关键词,X,Y,相关性。

    (1)第一个关键词是X,X是用来解释Y的相关变量,所以X成为自变量,或者成为解释变量,而回归分析的任务就是研究X和Y的相关关系,尝试解释Y的形成机制,进而通过X去预测Y的目的。

    (2)第二个关键词是Y,Y俗称因变量,实际应用中Y通常是我们需要研究的核心变量。

    (3)第三个关键词相关性,指的是X与Y之间是否存在联系称为相关性。

    回归分析的应用方面

    (1)判断那些X(自变量)是同Y(因变量)真相关,那些不是。(逐步回归法)

    (2)这些有用的X变量同Y的相关 关系是正的呢,还是负的?

    (3) 想赋予不同X不同的权重, 也就是不同的回归系数,进而我们可以知道不同变量之间的相对重要性。 

    回归分析的分类
    类型模型Y的特点例子
    线性回归ols,gls(最小二乘)
    连续数值型变量
    GDP 、产量、收入
    0-1回归logistic
    二值变量( 0‐1
    是否违约、是否得病
    定序回归probit定序回归
    定序变量
    等级评定(优良差)
    计数回归泊松回归
    计数变量
    每分钟车流量
    生存回归Cox等比例风险回归
    生存变量(截断数据
    企业、产品的寿命

    看完回归的分类后,接下来就介绍数据的分类

    数据分类
    类型定义例子
    横截面数据
    在某一时点收集的不同对象的数据
    (1)我们自己发放问卷得到的数据 (2)全国各省份 2018 GDP 的数据 (3)大一新生今年体测的得到的数据
    时间序列数据
    对同一对象在不同时间连续观察所取得的数据
    (1)从出生到现在,你的体重的数据(每年生日称一次 ) 。 (2)中国历年来GDP 的数据。
    (3)在某地方每隔一小时测得的温度数据。
    面板数据
    横截面数据与时间序列数据综合起来的一种数据资源
    2008‐2018 年,我国各省份 GDP 的数据

    针对不同数据类型的不同出力方法有:

    数据类型常见建模方法
    横截面数据
    多元线性回归
    时间序列数据
    移动平均、指数平滑、 ARIMA GARCH VAR 、协积
    面板数据
    固定效应和随机效应、静态面板和动态面板

    在本节中我们主要研究多元线性回归。

    首先介绍线性的概念,假设X是自变量,Y是因变量,并且满足线性关系:

    Y=\beta _{0}+\beta _{1}X_{i}+\mu _{i}

    X线性假定并不要求初始模型都呈上述的严格线性关系,自变量与因变量可以通过变量替换而转化为线性模型。

    Y=\beta _{0}+\beta _{1}lnX_{i}+\mu _{i}

    回归系数的解释

    Y=\beta _{0}+\beta _{1}X_{i}+\mu _{i}\beta _{0}\beta _{1}为回归系数,当表达式中只有一个自变量时称作一元线性回归方程,当其中的自变量大于等于二时,我们可以建立多元线性回归模型,当一个线性关系中牵扯到多个自变量时,如果有遗漏与y相关但是为添加到表达式自变量,而这些自变量又与已经添加得自变量相关,那么就会引发一个严重的现象——内生性

    y_{i}=\beta _{0}+\beta _{1}x_{1i}+\beta _{2}x_{2i}....\beta _{k}x_{ki}+\mu _{i}

    通常我们不可考虑\beta _{0}的具体意义,因为自变量通常不会全为0,\beta _{i}:控制其他自变量不变的情况下,相应的自变量X没增加一个单位,对Y造成的变化。

    这个时候就涉及到特殊情况,取对数是的回归系数如何解释?

    一元线性回归 𝑦 𝑎 𝑏𝑥 𝜇 x 每增加 1 个单位, y 平均变化 b 个单位
    双对数模型 𝑙𝑛𝑦 𝑎 𝑏𝑙𝑛𝑥 𝜇 x 每增加 1% y 平均变化 b%
    半对数模型 𝑦 𝑎 𝑏𝑙𝑛𝑥 𝜇 x 每增加 1% y 平均变化 b/100 个单位
    半对数模型 𝑙𝑛𝑦 𝑎 𝑥 𝜇 x 每增加 1 个单位, y 平均变化 (100b)%
    什么时候我们才会将自变量或是因变量取对数呢?
    伍德里奇的《计量经济学导论,现代观点》里,第六章176-177页有详细的论述; 取对数意味着原被解释变量对解释变量的弹性,即百分比的变化而不是数值的变化;
    目前,对于什么时候取对数还没有固定的规则,但是有一些经验法则:
    (1)与市场价值相关的,例如,价格、销售额、工资等都可以取对数;
    (2)以年度量的变量,如受教育年限、工作经历等通常不取对数;
    (3)比例变量,如失业率、参与率等,两者均可;
    (4)变量取值必须是非负数,如果包含0,则可以对y取对数ln(1+y);
    取对数的好处: (1)减弱数据的异方差性(2)如果变量本身不符合正态分布,取 了对数后 可能渐近服从正态分布(3)模型形式的需要,让模型具有经济学意义。

    内生性:

    \mu不满足与所有自变量均不相关时,该模型具有内生性,而内生性会导致回归系数的不准确,具体表现为不满足无偏和一致性。

    无内生性(no endogeneity)要求所有解释变量均与扰动项不相关。这个假定通常太强,因为解释变量一般很多(比如,5‐15个解释变量), 且需要保证它们全部外生,所以我们选择弱化这个条件。

    核心解释变量: 我们最感兴趣的变量,因此我们特别希望得到对其系数的 一致估计(当样本容量无限增大时,收敛于待估计参数的真值 )。
    控制变量: 我们可能对于这些变量本身并无太大兴趣;而之所以把它们也 放入回归方程,主要是为了 “控制住” 那些对被解释变量有影响的遗漏因素。
    在实际应用中,我们只要保证核心解释变量与 𝝁 不相关即可。
    我们在计算回归系数时通常使用stata或者MATLAB进行计算,在这里我们使用stata去计算回归系数。
    数据的描述性统计
    (1)定量数据
    summarize 变量1 变量2 ......

    (2)定性数据

    tabulate 变量名,gen(A)
    返回对应的这个变量的频率分布,并生成对应的虚拟变量(以A开头)
    

    (3)stata中回归的语句

    regress 因变量 自变量1 自变量2 自变量3 ......
    (默认使用的是ols:普通的最小二乘法)

    生成的数据里有几个重要的参数,F(m,n)和Prob>F这两个值是联合显著检验,原假设为 \beta _{0}=\beta _{1}=........=\beta _{k}=0

    而cofe对应的数就是我们以求的回归系数,p>|t|对应的是P值,假设检验对应的P值,原假设为该回归系数显著的不异于0

    我们也可以假如定性数据但是需要将定性数据转化为虚拟变量。但是加入虚拟变量需要注意完全多重共线性的问题。

    R-squared对应的为拟合优度,Adj R-squared是调整后的拟合优度。

    拟合优度 R^{2} 较低怎么办
    (1)回归分为解释型回归和预测型回归。 预测型回归一般才会更看重 R^{2}

     解释型回归更多的关注模型整体显著性以及自变量的统计显著性和经济意义显著 性即可。

    (2)可以对模型进行调整,例如对数据取对数或者平方后再进行回归。

    (3)数据中可能有存在异常值或者数据的分布极度不均匀。
    补充:关于拟合优度和调整后的拟合优度:
    我们引入的自变量越多,拟合优度会变大。但我们倾向于使用调整后的拟合优度, 如果新引入的自变量对SSE 的减少程度特别少,那么调整后的拟合优度反而会减小。
    为了更为精准的研究影响评价量的重要因素(去除量纲的影响), 我们可考虑使用 标准化回归系数 。 对数据进行标准化,就是将原始数据减去它的均数后,再除以该变 量的标准差,计算得到新的变量值,新变量构成的回归方程称为标准化 回归方程,回归后相应可得到标准化回归系数。 标准化系数的绝对值越大,说明对因变量的影响就越大(只关注显 著的回归系数哦)。
    下面是标准化的回归系数代码
    regress 因变量 自变量1 自变量2 自变量3 ......,beta

    线性方程中的线性系数介绍完了,接下来介绍的是扰动项\mu _{i},\mu _{i}为无法观测的且满足一定条件的扰动项。横截面数据容易出现异方差的问题;时间序列数据容易出现自相关的问题。

     异方差:

    如果扰动项存在异方差:
    (1) OLS 估计出来的回归系数是无偏、一致的。
    (2)假设检验无法使用(构造的统计量失效了)。
    (3) OLS 估计量不再是最优线性无偏估计量( BLUE )。
    怎么解决异方差:
    (1)使用 OLS +  稳健的标准误
    (2)广义最小二乘估计法 GLS
    原理:方差较小的数据包含的信息较多,我们可以给予信息量大的数据更大的权重(即方差较小的数据给予更大的权重)
    解决之前我们要先判断异方差:
    我们可以使用BP检验和怀特检验,BP检验是怀特检验的一种特例。
    BP检验在stata上的代码为
    estat hettest , rhs iid

    但是需要注意在回归结束后使用

    BP检验的结果,原假设:扰动项不存在异方差

    怀特检验

    estat imtest,white

    我们在数据分析完后重点关注的是 Prob所接的系数,也就是假设检验的P值

    如果扰动项存在异方差:
    (1) OLS 估计出来的回归系数是无偏、一致的。
    (2)假设检验无法使用(构造的统计量失效了)。
    (3) OLS 估计量不再是最优线性无偏估计量( BLUE )。
    怎么解决异方差:
    1 )使用 OLS +  稳健的标准误
    如果发现存在异方差,一 种处理方法是,仍然进行 OLS  回归,但使用稳健标 准误。这是最简单,也是目前通用的方法。只要样本容量较大,即使在异方差的 情况下,若使用稳健标准误,则所 有参数估计、假设检验均可照常进行。换言之, 只要使用了稳健标准误,就可以与异方差“和平共处”了。
    2 )广义最小二乘法 GLS
    原理:方差较大的数据包含的信息较少,我们可以给予信息量大的数据(即方差较小的数据更大的权重) 缺点:我们不知道扰动项真实的协方差矩阵,因此我们只能用样本数据来估计, 这样得到的结果不稳健,存在偶然性。
    Stock and Watson (2011) 推荐,在大多数情况下应该使用“ OLS +  稳健标准误”。
    ols+稳健的标准误差
    regress 因变量 自变量1 自变量2 自变量3 ......,robust

    我们在代入定性数据时引入虚拟变量,而会引发多重共线性。

    如果发现存在多重共线性,可以采取以下处理方法。
    (1) 如果不关心具体的回归系数,而只关心整个方程预测被解释变量的能力,则 通常可以 不必理会多重共线性(假设你的整个方程是显著的)。这是因为,多 重共线性的主要后果是使得对单个变量的贡献估计不准,但所有变量的整体效 应仍可以较准确地估计。
    (2) 如果关心具体的回归系数,但多重共线性并不影响所关心变量的显著性,那 么也可以不必理会。即使在有方差膨胀的情况下,这些系数依然显著; 如果没有 多重共线性,则只会更加显著。
    (3)  如果多重共线性影响到所关心变量的显著性,则需要增大样本容量,剔除导 致严重共线性的变量(不要轻易删除哦,因为可能会有内生性的影响),或对 模型设定进行修改。
    在stata中有专门检验多重共线性的代码
    estat vif

    同样的需要在回归结束后去使用,一个经验规则是VIF>10,则认为该回归方程存在严重的多重共线性。

    逐步回归分析

    向前逐步回归 Forward selection 将自变量逐个引入模型,每引入一个自变量 后都要进行检验,显著时才加入回归模型。 (缺点:随着以后其他自变量的引入,原来显著的自变量也可能又变为不显著了, 但是,并没有将其及时从回归方程中剔除掉。)
    向后逐步回归 Backward elimination 与向前逐步回归相反,先将所有变量均 放入模型,之后尝试将其中一个自变量从模型中剔除,看整个模型解释因变量的 变异是否有显著变化,之后将最没有解释力的那个自变量剔除;此过程不断迭代, 直到没有自变量符合剔除的条件。(缺点:一开始把全部变量都引入回归方程, 这样计算量比较大。若对一些不重要的变量,一开始就不引入,这样就可以减少 一些计算。当然这个缺点随着现在计算机的能力的提升,已经变得不算问题了)
    pe(#1)specifies the significance level for addition to the model;terms with p<#1 are eligible for addition(向前逐步回归:显著才加入到模型中)
    
    pe(#1)specifies the significance level for removal from the model;terms with p>=#1 are eligible for removal(向后逐步回归:不显著踢逐出模型中)

    #1对应的是需要的置信水平对应的P值,例如置信水平为95%,则#1值为0.05

    如果你觉得筛选后的变量仍很多,你可以减小 #1 或者 #2 ,如果你觉得筛选后的变量太少了,你可以增加#1 或者 #2.
    逐步回归的说明
    (1)向前逐步回归和向后逐步回归的结果可能不同。
    (2)不要轻易使用逐步回归分析,因为剔除了自变量后很有可能会产生新的问
    题,例如内生性问题。
    (3)有没有更加优秀的筛选方法?有的,那就是每种情况都尝试一次,最终一
    共巨多 种可能。如果自变量很多,那么计算相当费时。

    第八讲:图论最短路径问题

    本节介绍图论基本概念,并主要讲解图论中的最短路径问题,根据图的不同我们将学习两种不同算法。Dijkstra和Bellman-Ford算法。

    图的基本概念:

    图论中的图( Graph )是由若干给定的点及连接两点的线 所构成的图形,这种图形通常用来描述某些事物之间的某种 特定关系,用点代表事物,用连接两点的线表示相应两个事 物间具有这种关系。 一个图可以用数学语言描述为G(V(G),E(G)) V(vertex) 指 的是图的顶点集,E(edge) 指的是图的边集。 根据边是否有方向,可将图分为有向图和无向图。 另外,有些图的边上还可能有权值,这样的图称为有权图。

    在MATLAB中有专门做出这一部分的函数;

    graph(s,t)%可在s和t的对应节点之间创建边,并生成一个图
    G=graph(s,t)
    plot(G)
    
    graph(s,t,w)%可在 s 和 t 中的对应节点之间以w的权重创建边,并生成一个图
    G=graph(s,t)
    plot(G2, 'linewidth', 2)  % 设置线的宽度
    set( gca, 'XTick', [], 'YTick', [] )% 下面的命令是在画图后不显示坐标轴

    以上都是无向图,如果需要做有向图的话要把函数graph置换为digragh,由s中的元素指向对应的t中的元素。

    对于上面提到的两种算法这里原理不做解释,他们的区别在于Bellman‐Ford(贝尔曼‐福特)算法可以计算含有负权的图但是Dijkstra算法不可以,同时这两者也有共同的特点,就是都不支持计算含有负权回路的图!!!

    什么是负权回路呢:

    在一个图里每条边都有一个权值(有正有负) 如果存在一个环(从某个点出发又回到自己的路径),而且 这个环上所有权值之和是负数,那这就是一个负权环,也叫负权回路。存在负权回路的图是不能求两点间最短路的,因为只要在负权回路上不断兜圈子,所得的最短路长度可以任意小。
    注意: 贝尔曼 福特算法实际上处理的是具有负权重的 有向图 (且该有向图也不能含有负权回路)
    庆幸的是,含有负权重的图特别少见,且一旦出现负权重,也往往是在有向图中。 因此大家不用担心算法求解不出来的问题
    接下来我们用MATLAB去求解计算最短路径
    [P,d] = shortestpath(G,start,end [,'Method',algorithm] )
    功能: 返回图 G start 节点到 end 节点的最短路径
    输入参数:
    (1) G ‐ 输入图( graph  对象 | digraph  对象)
    (2) start  起始的节点
    (3) end  目标的节点
    (4) [,‘Method’,algorithm] 是可选的参数,表示计算最短路径的算法。一般我
    们不用手动设置,默认使用的是“ auto
    输出参数:
    (1) P – 最短路径经过的节点
    (2) d – 最短距离
    auto是默认算法,这个选项会自动选择算法,有 unweighted算法,positive算法,mixed'算法。
    unweighted算法;广度优先计算,将所有边权重都视为 1
    positive算法;Dijkstra 算法,要求所有边权重均为非负数。
    mixed'算法;适用于有向图的 Bellman‐Ford 算法,要求图没有负循环。尽管对于相同的问题,'mixed' 的速度慢于 'positive',但mixed' 更为通用,因为它允许某些边权重为负数。
    当我们想返回任意两点的距离矩阵时可以使用MATLAB进行操作
    d = distances(G [,'Method',algorithm])

    同时我们还能指定范围找到在范围内的所有点

    [nodeIDs,dist] = nearest(G,s,d [,'Method',algorithm])
    nodeIDs 是符合条件的节点,Dist是这些节点与 s 的距离

    第九讲:分类模型

    本讲介绍分类模型。对于二分类魔性,我们使用逻辑回归(logistic regression)和Fisher线性判别两种分类算法;对于多分类模型,我们也可以使用上面的模型。

    对于二分类问题,我们同常使用ogistic regression也叫0-1回归,我们把对于因变量为分类变量的情况,我们可以使用逻辑回归进行处理。 把y看成事件发生的概率,y=>0.5表示发生;y<0.5表示不发生。

    如果我们使用之前使用的线性回归,就会引发内生性的问题:y只能取0或者1,这就意味着扰动项

    u_{i}=\left\{\begin{matrix} 1- X_{i}\beta _{i},y=1 & & \\ -X_{i}\beta _{i} ,y=0 & & \end{matrix}\right.

    显然扰动项和自变量的相关性并不为0,所以会导致回归系数不一致有偏。

    y\hat{}=\beta \hat{}_{0}+\beta \hat{}_{1}X_{1}+\beta \hat{}_{2}X_{2}+......+\beta \hat{}_{i}X_{i},预测值可能会出现>1或者0<的不实情况

    两点分布(伯努利分布)

    事件10
    概率P1-P

    在x给定的情况下,考虑y的两点分布

    F(X,\beta )称作连接函数,通常取标准正态分布的累积密度函数,或者Sigmoid函数,为了方便计算通常使用第二个函数。

    \left\{\begin{matrix} P(y=1|x)=F(x,\beta ) & & \\ P(y=0|x)=1-F(x,\beta ) & & \end{matrix}\right.

    我们只需要保证F(x,\beta )是定义在[0,1]上的函数,那么就可以保证预测概率在0到1之间,可以理解为y=1时的概率。

    连接函数取法:

    (1)F(x,\beta )=S(x_{i}^{'}\beta )=\frac{e^{X_{i}^{'}\beta _{i}}}{1+e^{X_{i}^{'}\beta _{i}}}

    这里我们可以看出这是一个非线性模型,使用极大似然估计方法进行估计

    样本的对数似然函数:lnL(\beta |y,x)=\sum_{i=1}^{n}y_{i}ln[S(X_{i}^{'}\beta )]+\sum_{i=1}^{n}(1-y_{i})ln[1-S(X_{i}^{'}\beta )]

    当用于分类时:

    在给定X的情况下,考虑y的两点分布概率

    \left\{\begin{matrix} P(y=1|x)=F(x,\beta ) & & \\ P(y=0|x)=1-F(x,\beta ) & & \end{matrix}\right.

     E(y|X)=1*P(y=1|x)+0*P(y=1|X)=P(y=1|x),所以我们可以把y\hat{}理解为y=1时发生的概率。

    如果y\hat{}>0.5或者y\hat{}=0.5,则认为期预测的y=1,否则就认为其预测的y=0。

    我们使用专业的统计软件spss去计算预测的类别,当数据量过少时,我们想提高预测的准确率时,我们可以添加处理过得变量,将原有的数据平方或者取对数等处理。

    但虽然预测能力提高了,但是容易发生过拟合现象。对于样本数据的预测非常好,但是对于样本外 的数据的预测效果可能会很差。

    对此的解决方案是

    把数据分为 训练组 测试组 ,用训练组的数据来估计出模型,再用测试组的数据来进行测试。(训练组和测试组的比例一般设置为80% 20%)
    已知分类结果的水果 ID 1‐38 ,前 19 个为苹果,后 19 个为橙子。 每类水果中随机抽出3 ID 作为测试组,剩下的 16 ID 作为训练组。 (比如:17‐19 36‐38 这六个样本作为测试组)比较设置不同的自变量后的模型对于测试组的预测效果。
    (注意:为了消除偶然性的影响,可以对上述步骤多重复几次,最终对每个模型求一个平均的准确率,这个步骤称为 交叉验证 。)

    下面介绍Fisher线性判别分析

    LDA(Linear Discriminant Analysis) 是一种经典的线性判别方法,又称 Fisher 判别 分析。该方法思想比较简单: 给定训练集样例,设法将样例投影到一维的直线上,使得同类样例的投影点尽可能接近和密集,异类投影点尽可能远离。
    详细的就不多介绍,这个模型基本直接在spss上面进行操作即可。
    而多分类同样以这两个方法进行参考,具体的操作可以上网搜索,或者直接询问我。

    第十讲:聚类模型

    所谓聚类,就是将样本划分为由类似的对象组成的多个类得过程。聚类后,我们可以更加准确的在每个类中单独使用统计模型进行估计,分析和预测。也可以探究不同类之间的相关性和主要差异。

    聚类和上一讲分类的区别是:聚类是未知类别,分类是已知类别。

    K-means聚类算法

    流程:

    (1)指定需要划分的簇的个数K值(类的个数);

    (2)随机地选择K个数据对象作为初始的聚类中心不一定要是我们的样本点);

    (3)计算其余的各个数据对象到这K个初始聚类中心 的距离,把数据对象划归到距离它最近的那个中心所处在的簇类中;

    (4)调整新类并且重新计算出新类的中心;

    (5)循环步骤三和四,看中心是否收敛(不变),如果收敛或达到迭代次数则停止循环;

    (6)结束。

    通常使用这个算法是我们都会绘制算法流程图,但K-means聚类算法具有以下几个缺点和优点。

    优点:
    (1)算法简单、快速。
    (2)对处理大数据集,该算法是相对高效率的。
    缺点:
    (1)要求用户必须事先给出要生成的簇的数目 K
    2 )对初值敏感。
    3 )对于孤立点数据敏感。
    所以我们通常并不使用这个算法,而是使用它的进阶算法 K‐means++算法,K‐means++ 算法可解决 2 3 这两个缺点。
    K-means++算法
    k-means++算法选择初始聚类中心的基本原则是: 初始的聚类中 心之间的相互距离要尽可能的远。
    算法描述如下:
    (只对K-means算法“初始化K个聚类中心” 这一步进行了优化)
    步骤一: 随机选取一个样本作为第一个聚类中心;
    步骤二: 计算每个样本与当前已有聚类中心的最短距离(即与最 近一个聚类中心的距离),这个值越大,表示被选取作为聚类中 心的概率较大;最后,用轮盘法(依据概率大小来进行抽选)选
    出下一个聚类中心;
    步骤三: 重复步骤二,直到选出K个聚类中心。选出初始点后,就继续使用标准的K-means算法了。
    通常使用这个算法是我们也同样需要绘制算法流程图。我们使用spss软件进行求解,spss默认的 K-means算法,是优化过的K-means算法。
    具体操作步骤可以网上咨询,或者询问我本人也可。
    关于K-means算法的一些问题:
    (1) 聚类的个数 K 值怎么定?
    答:分几类主要取决于个人的经验与感觉,通常的做法是多尝试几个 K 值,看分成几类的结果更好解释,更符合分析目的等。
    (2)数据的量纲不一致怎么办?
    答:如果数据的量纲不一样,那么算距离时就没有意义。例如:如果 X1 单位是米,X2 单位是吨,用距离公式计算就会出现“米的平方”加上“吨的平方” 再开平方,最后算出的东西没有数学意义,这就有问题了。
    系统(层次)聚类
    系统聚类的合并算法通过计算两类数据点间的距离,对最为接近的两类数据点进行组合,并反复迭代这一过程,直到将所有数据点合成一类,并生成聚类谱系图。
    流程:
    一、将每个对象看作一类,计算两两之间的最小距离;
    二、将距离最小的两个类合并成一个新类;
    三、重新计算新类与所有类之间的距离;
    四、重复二三两步,直到所有类最后合并成一类;
    五、结束。
    同样的我们需要制作流程图,应为流程图是避免查重率过高的有效办法。
    同样的这个算法在spss中同样有一步操作,这里简单介绍一下操作方法,SPSS第一行中分析对应的下选一列,点击分类,然后选择系统聚类,如果量纲不同需要在方法选项中勾选标准化后的Z得分,同时还需要在图选项中勾选系谱图。
    在系谱图上我们可以看到系统(层次)聚类的每一步分类过程,此时你想分几类就可以从图上画出和几条横线相交的直线。
    但是这和我们 K-means算法 的第一个缺点相同,同样需要自己给出K的值。但是系统(层次)聚类可以进行肘部法则去估计最佳的分类K值。
    肘部法则( Elbow Method ):通过图形大致的估计出最优的聚类数量。
    各个类畸变程度之和:各个类的畸变程度等于该类重心与其内部成员距离的平方和,假设一共将n个样本划分到K个类中,用C_{k}表示第k个类(k=1,2,3......K),且该类重心的位置记为u_{k}
    那么第k个类的畸变程度为: \sum_{i\in C_{k}}^{}\left | X_{i}-u_{k} \right |^{2}
    定义总体畸变程度: J=\sum_{k=1}^{K}\sum_{i\in C_{k}}^{}\left | X_{i}-u_{k} \right |^{2} J被称作聚合系数。
    通常在用spss进行聚类后,每个类的聚合系数都会给出,此时需要利用个各类的聚合系数绘制折线图,通常我们取转折的点K值,看起来类似肘部,所以这个方则称作:肘部法则。

    第十一讲:灰色预测模型

    首先介绍三个系统的概念:白色系统,灰色系统,黑色系统,

    白色系统:系统的信息是完全明确的。

    灰色系统:系统信息部分已知,部分未知。

    黑色系统:系统的内部信息是未知的。

    灰色预测是对既含有已知信息又含有不确定信息的系统进行预测,就是对在一定范围内变化的、与时间有关的灰色过程进行预测。
    灰色预测对原始数据进行生成处理来寻找系统变动的规律,并生成有较强规律性的数据序列,然后建立相应的 微分方程模型,从而预测事物未来发展趋势的状况。
    我们在这里介绍灰色预测中最简单的模型GM(1,1)模型:Grey(Gray)Model
    GM(1,1) 是使用原始的离散非负数据列,通过一次累加生成削弱随机性的较有规律的新的离散数据列,然后通过建立微分方程模型,得到在离散点处的解经过累减生成的原始数据的近似估计值,从而预测原始数据的后续发展。
    这里我们研究GM(1,1)模型,这里第一个‘1’表示微分方程是一阶的,后面的‘1’表示只有一个变量。
    这里我们来看一个数据:
    时期原始数据(a)累加数据(b)
    112.212.2
    215.227.4
    310.932.8
    415.053.2
    514.769.7
    614.482.3
    719.8102.1
    817.2119.3
    917.5136.8
    1017.9154.8
    1114.4169.2
    1216.3185.5

    这里的累加数据b_{n}=a_{n}+b_{n-1}所得。

    这是一次累加,这里我们引入GM(1,1)模型的原理
    x^{0}=(x^{0}_{1},x^{0}_{2}...x^{0}_{n})是最初的 非负数据列,我们对其进行一次累加得到新的数据列 x^{1}x^{0}的1-AGO序列)
        x^{1}=(x^{1}_{1},x^{1}_{2}...x^{1}_{n})
    其中, x_{m}^{1}=\sum_{i=1}^{m}x^{0}_{i},m=1,2,3...n
    这个时候我们引入数列 x^{1}的紧邻均值生成数列 z^{1},即 z^{1}=(z^{1}_{2},z^{1}_{3}....z^{1}_{n}),其中 z^{1}_{m}=\delta x^{1}_{m}+(1-\delta )*x^{1}_{m-1},m=2,3,,n,且 \delta =0.5,由此我们更新一下刚才的数据表
    时期原始数据(a)累加数据(b)紧邻均值生成序列
    112.212.2
    215.227.419.8
    310.932.832.8
    415.053.245.7
    514.769.760.6
    614.482.375.1
    719.8102.193.2
    817.2119.3110.7
    917.5136.8128.1
    1017.9154.8145.8
    1114.4169.2162.0
    1216.3185.5177.3

    我们称x^{0}_{k}+a*z^{1}_{k}=b为GM(1,1)模型的基本形式(k=2,3,4...n)其中b表示灰作用量,-a表示发展系数:

    下面引入矩阵形式:

    u=(a,b)^{T},Y=\begin{bmatrix} x^{0} _{2}& & \\ x^{0} _{3} & & \\ ....& & \\ x^{0} _{n}& & \end{bmatrix},B=\begin{bmatrix} -z^{1} _{2},1& & \\ -z^{1} _{3} ,1& & \\ .... & & \\ -z^{1} _{n},1 & & \end{bmatrix}

    于是,GM(1,1)模型​​​​​​x^{0}_{k}+a*z^{1}_{k}=b可以表示为:

    Y=B*u

     我们可以利用最小二乘法得到参数a,b的估计值为:

    u^{\hat{}}=\binom{a\hat{}}{b\hat{}}=(B^{T}B)^{-1}B^{T}Y

     我们为了让其更好理解,将x^{0}序列视为因变量,z^{1}序列视为自变量,进行回归。

    x^{0}_{k}=-a*z^{1}_{k}+b

    这里我们对矩阵进行最小二乘法求出a和b,这里涉及对矩阵的求导,在此我们做深究,只需要知道u^{\hat{}}=\binom{a\hat{}}{b\hat{}}=(B^{T}B)^{-1}B^{T}Y,这个答案即可。

    u^{\hat{}}=\binom{a\hat{}}{b\hat{}}=(B^{T}B)^{-1}B^{T}Y,这个答案有一个显而易见的要求,B^{T}B是必需可逆的。

    假设我们考虑有常数项的k个自变量的多元回归模型,那么X是n*(K+1)的方阵,B^{T}B

    可逆可以推出 r(B^{T}B)=k+1 \Leftarrow \Rightarrow k+1\Leftrightarrow r(X)=k+1\Leftrightarrow n\geqslant k +1,x的列向量组线性无关。所以这里又得出样本的数量必须大于自变量。 

    利用OLS估计我们能得到a和b,即x^{0}_{k}=-a*z^{1}_{k}+b\Rightarrow x^{1}_{k}-x^{1}_{k-1}=-a*z^{1}_{k}+b(k=2,3,,,n)x^{1}_{k}-x^{1}_{k-1}=\int_{k-1}^{k}\frac{dx^{1}(t)}{dt}dt(牛顿-莱布尼兹公式)

    z^{1}_{k}=\frac{x^{1}_{k}+x^{1}_{k-1}}{2}\approx \int_{k-1}^{k}x^{1}(t)dt(定积分几何意义)

    最终我们得到GM(1,1)模型的白化方程:\frac{dx^{1}(t)}{dt}=-a*x^{1}+bx^{0}_{k}=-a*z^{1}_{k}+b

    被称为灰色微分方程。 

    我们通常无法用灰色微分方程进行求解,通常我们使用白化方程进行计算,这里涉及到求解微分方程,这里也不做介绍不懂得可以去高等数学(同济)上册看一看,GM(1,1)模型的本质是有条件的指数拟合:f(x)=C_{1}e^{C_{2}(x-1)}(这里的指数规律针对的是x^{1}序列而言原始序列是做差的结果)

    准指数规律的检验

     发展系数与预测情形的探究

     当|a|>2时模型没有意义,当|a|<2时模型才具有意义。

    当-a<0.3时,此模型适合短期和长期预测。

    当0.3<-a<=0.5时,此模型适合短期,中长期预测应该谨慎使用。

    当0.5<-a<=0.8时,此模型对短期预测应该谨慎使用。

    当-a>1时,不宜用此模型进行预测。

    总的来说应该是发展系数越小预测的越精确。

    对于GM(1,1)模型进行检验,有两种检验方法,残差检验和级比偏差检验。

    使用GM(1,1)模型对于未来的数据进行预测时,我们要先对原数据的拟合程度进行检验。

    (1)残差检验

    绝对残差:\varepsilon (k)=x^{0}_{k}-x\hat{}^{0}_{k}

    相对残差:\varepsilon _{r}(k)=\frac{|x^{0}_{k}-x\hat{}^{0}_{k}|}{x^{0}_{k}}*100%,k=2,3,....n

    平均相对残差:\varepsilon _{r}=\frac{1}{n-1}\sum_{k=2}^{n}|\varepsilon _{r}(k)|

    如果平均相对残差小于百分之20,则认为GM(1,1)对原始数据的拟合达到一般要求。

    如果平均相对残差小于百分之10,则认为GM(1,1)对原始数据的拟合效果非常不错。

    注意:这个百分之10和百分之20并不一定,需要更据预测的场景。

    (2)及比偏差检验(专门对于灰色预测模型)

    首先更据原始数据计算出的级比\sigma (k)=\frac{x^{0}_{k}}{x^{0}_{k-1}}(k=2,3.....n)

    在利用预测出来的发展系数计算出相应的级比偏差和平均级比偏差

    \eta (k)=\left | 1-\frac{1-0.5a}{1+0.5a*\sigma(k) } \right |,\beta =\sum_{k=2}^{n}\eta (k)/(n-1)

    如果\beta <0.2,则认为GM(1,1)对原始数据的拟合达到一般要求。

    如果\beta <0.1,则认为GM(1,1)对原始数据的拟合效果非常不错。

    十二主成分分析法

    本讲将介绍主成分分析 (Principal Component Analysis,PCA) , 主成分分析是一种降维算法,它能将多个指标转换为少数几 个主成分,这些主成分是原始变量的线性组合,且彼此之间互不相关,其能反映出原始数据的大部分信息。一般来说, 当研究的问题涉及到多变量且变量之间存在很强的相关性时,我们可考虑使用主成分分析的方法来对数据进行简化。
    当遇到多变量问题时,我们想在相关分析的基础上 用较少 的新变量代替原来较多的旧变量,而且使这些较少的新变量尽可能多地保留原来变量所反映的信息, 从数学角度来看,这是一种 降维 处理技术。
    数据降为的好处:
    (1)使数据集更易使用
    (2)降低算法的计算量
    (3)取出无关数据
    (4)使结果更容易理解。
    举个例子:一个人去定做一双鞋子,做一双好的鞋子需要测量很多指标,比如脚长,脚背的高度,各个脚趾的长度,脚踝的宽度,等等等。我们将这些指标进行主成分分析,最后总结为若干项指标。
    主成分分析的基本思想:
    假设有n个样本,p个指标,可以构成大小为n*p的样本矩阵X: x= \begin{bmatrix} x_{11} & x_{12} & ...& x_{1p} \\ x_{21}& x_{22} & ... & x_{2p} \\ ...& ...& ... &... \\ x_{n1}& x_{12}&... & x_{np} \end{bmatrix}
    假设我们想找到新的一组变量 z_{1}, z_{2},....z_{m},且他们满足:
    \left\{\begin{matrix} z_{1}=l_{11} x_{1}+l_{12}x_{2}+...+l_{1p} x_{p}& & & \\ z_{2}=l_{21} x_{1}+l_{22}x_{2}+...+l_{2p} x_{p}& & & \\ ...& & & \\ z_{m}=l_{m1} x_{1}+l_{m2}x_{2}+...+l_{mp} x_{p}& & & \end{matrix}\right.
    系数 l_{ij}的确定原则:
    (1) z_{i}z_{j}相互无关
    (2) z_{1}x_{1},x_{2},...x_{p}的线性组合中的方差的最大者;
    (3) z_{2}是与 z_{1}不相关的 x_{1},x_{2},...x_{p}的所有线性组合中的方差最大者

    (4)以此类推,z_{m}z_{1},z_{2},...,z_{m-1}不相关的x_{1},x_{2},...x_{p}的所有线性组合中方差最大者。

    (5)新变量就是z_{1},z_{2},...,z_{m}分别称为原指标x_{1},x_{2},...x_{p}标量的第一,第二,...第m主成分

     PCA的计算步骤

    1.我们首先对样本矩阵进行标准化处理:

    按列计算均值x_{j}=\frac{1}{n}\sum_{i=1}^{n}x_{ij}和标准差S_{j}=\sqrt{\frac{\sum_{i=1}^{n}(x_{ij-x_{j}})^{2}}{n-1}}计算得标准化数据X_{ij}=\frac{x_{ij}-x_{j}}{S_{j}}

    当我们将原始矩阵经过标准化变为新的矩阵:X=\begin{bmatrix} X_{11} & X_{12} & ... &X_{1p} \\ X_{21} & X_{22} & ... &X_{2p} \\ ...& ...& ... &... \\ X_{n1} & X_{n2} & ... & X_{np} \end{bmatrix} 

     2.计算标准化样本的协方差矩阵

    R=\begin{bmatrix} R_{11} & R_{12} & ... &R_{1p} \\ R_{21} & R_{22} & ... &R_{2p} \\ ...& ...& ... &... \\ R_{n1} & R_{n2} & ... & R_{np} \end{bmatrix}

    其中r_{ij}=\frac{1}{n-1}\sum_{k=1}^{n}(x_{ki}-x_{i}^{-})(x_{ki}-x_{j}^{-})=\frac{1}{n-1}\sum_{k=1}^{n}X_{ki}X_{kj}

    3.计算矩阵R的特征值和特征向量

    4.计算主成分贡献率以及累积贡献率

    贡献率=\frac{\lambda _{i}}{\sum_{k=1}^{p}\lambda _{k}}

    累积贡献率=\frac{\sum_{k=1}^{i}\lambda _{k}}{\sum_{k=1}^{p}\lambda _{k}}

    5.写出主成分

    一般我们取累积贡献率超过80%的特征值对应的主成分。

    6.根据系数分析主成分代表的意义

    对于主成分而言,指标系数越大,表示对该主成分影响最大。

    X=zscore(x);#x为样本矩阵
    R=cov(X);#计算样本协方差矩阵
    [V,D] = eig(R);
    lambda = diag(D);
    lambda = lambda(end:-1:1);
    contribution_rate = lambda / sum(lambda);
    cum_contribution_rate = cumsum(lambda)/ sum(lambda);
    V=rot90(V);

     详细代码如上,MATLAB代码。

    对于主成分分析就我个人来说,我认为最难的是对于分析过后的主成分进行解释说明,解释的不好这个方法也就失去作用。

    展开全文
  • 数学建模之稳定性模型详解

    千次阅读 多人点赞 2022-03-14 12:04:19
    对象仍是动态过程,而建模目的是研究时间充分长以后过程的变化趋势 ——平衡状态是否稳定。 不求解微分方程,而是用微分方程稳定性理论研究平衡状态的稳定性。 目录 捕鱼业的持续收获 产量模型 假设 建模 ...

    码字总结不易,老铁们来个三连:点赞、关注、评论
    作者:[左手の明天]
     原创不易,转载请联系作者并注明出处
    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    对象仍是动态过程,而建模目的是研究时间充分长以后过程的变化趋势 ——平衡状态是否稳定。

    不求解微分方程,而是用微分方程稳定性理论研究平衡状态的稳定性。

    目录

    捕鱼业的持续收获

    产量模型

    假设

    建模

    一阶微分方程的平衡点及其稳定性

    效益模型

    捕捞过度

    捕鱼业的持续收获

    matlab验证

    军备竞赛

    目的

    假设

    建模

     线性常系数微分方程组

    模型的定性解释

    种群的相互竞争

    模型假设

    模型建立 

    模型分析​

     线性常系数微分方程组

    判断稳定性的方法——直接法 

     平衡点稳定性分析

    种群竞争模型的平衡点及稳定性

    平衡点稳定性的相轨线分析

    matlab验证

    种群的相互依存

    模型假设

    模型建立

    种群依存模型的平衡点及稳定性 

    平衡点P2稳定性的相轨线

    matlab验证

    食饵-捕食者模型(种群的弱肉强食)

    食饵-捕食者模型(Volterra)

    Volterra模型的平衡点及其稳定性

    MATLAB求微分方程数值解

    用相轨线分析P(d/b, r/a)点稳定性 

     模型解释

    食饵-捕食者模型(Volterra)的缺点与改进

    matlab验证

    两种群模型的几种形式 

    差分形式的阻滞增长模型 

    模型分析

    离散形式阻滞增长模型的平衡点及其稳定性

    倍周期收敛——x*不稳定情况的进一步讨论

    混沌现象

    matlab验证


    捕鱼业的持续收获

    背景

    • 再生资源(渔业、林业等)与 非再生资源(矿业等)
    • 再生资源应适度开发——在持续稳产前提下实现最大产量或最佳效益

    问题及分析

    • 捕捞量稳定的条件下,如何控制捕捞使产量最大或效益最佳?
    • 如果使捕捞量等于自然增长量,渔场鱼量将保持不变,则捕捞量稳定

    产量模型

    x(t) ~ 渔场鱼量

    假设

    • 无捕捞时鱼的自然增长服从 Logistic规律.

    r~固有增长率, N~最大鱼量

    • 单位时间捕捞量与渔场鱼量成正比.

    建模

     有捕捞情况下渔场鱼量满足

     不需要求解x(t),只需知道x(t)稳定的条件.

    一阶微分方程的平衡点及其稳定性

    一阶非线性自治(右端不含t)方程

     

     

     设x(t)是方程的解,若从x0 某邻域的任一初值出发,都有称x0是方程(1)的稳定平衡点.

    直接法

     (1)的近似线性方程

     

     

     

     

    图解法

    在捕捞量稳定的条件下,控制捕捞强度使产量最大.

    效益模型

    在捕捞量稳定的条件下,控制捕捞强度使效益最大.

    捕捞过度

     

    捕鱼业的持续收获

    在自然增长和捕捞情况的合理假设下建模.

    用平衡点稳定性分析确定渔场鱼量稳定条件,讨论产量、效益和捕捞过度3个模型.

    matlab验证

    捕鱼业的持续收获 ——产量模型

    产量模型:

     其中,

    • x(t)为t时刻渔场中的鱼量。
    • r是固有增长率。
    • N是环境容许的最大鱼量。
    • E是捕捞强度,即单位时间捕捞率。
    clear; clc;
    %无捕捞条件下单位时间的增长量:f(x)=rx(1-x/N)
    %捕捞条件下单位时间的捕捞量:h(x)=Ex
    %F(x)=f(x)-h(x)=rx(1-x/N)-Ex
    %捕捞情况下渔场鱼量满足的方程:x'(t)=F(x)
    %满足F(x)=0的点x为方程的平衡点
    %求方程的平衡点
    
    syms r x N E; %定义符号变量
    Fx=r*x*(1-x/N)-E*x; %创建符号表达式
    x=solve(Fx,x) %求解F(x)=0(求根)
    
    %得到两个平衡点,记为:
    % x0= -N*(-r+E)/r  , x1= 0 
    
    x0=x(2);
    x1=x(1);%符号变量x的结构类型成为<2×1sym>
    
    %求F(x)的微分F'(x)
    
    syms x; %定义符号变量x的结构类型为<1×1sym>
    dF=diff(Fx,'x'); %求导
    dF=simple(dF) %简化符号表达式
    
    %得 F'(x)= r-2*r*x/N-E 
    %求F'(x0)并简化
    
    dFx0=subs(dF,x,x0); %将x=x0代入符号表达式dF
    dFx0=simple(dFx0) 
    
    %得 F' (x0)= -r+E 
    %求F' (x1)
    
    dFx1=subs(dF,x,x1)
    
    %得 F' (x1)= r-E 
    %若 E<r,有F'(x0)<0,F'(x1)>0,故x0点稳定,x1点不稳定(根据平衡点稳定性的准则);
    %若 E>r,则结果正好相反。
    %在渔场鱼量稳定在x0的前提下(E<r),求E使持续产量h(x0)达到最大hm。
    %通过分析(见教材p216图1),只需求x0*使f(x)达到最大,且hm=f(x0*)。
    
    syms r x N
    fx=r*x*(1-x/N); %fx=dF
    df=diff(fx,'x');
    x0=solve(df,x)
    
    %得 x0*= 1/2*N 
    
    hm=subs(fx,x,x0)
    
    %得 hm= 1/4*r*N 
    %又由 x0*=N(1-E/r),可得 E*= r/2 
    %产量模型的结论是:
    %将捕捞率控制在固有增长率的一半(E=r/2)时,能够获得最大的持续产量。

    军备竞赛

    目的

    • 描述双方(国家或国家集团)军备竞赛过程.
    • 解释(预测)双方军备竞赛的结局.

    假设

    • 1)由于相互不信任,一方军备越大,另一 方军备增加越快;
    • 2)由于经济实力限制,一方军备越大,对自己军备增长的制约越大;
    • 3)由于相互敌视或领土争端,每一方都存在增加军备的潜力.

    进一步假设

    1)2)的作用为线性;3)的作用为常数.

    建模

     线性常系数微分方程组

     

     

    模型的定性解释

     


    种群的相互竞争

    一个自然环境中有两个种群生存,它们之间的关系:相互竞争;相互依存;弱肉强食

    当两个种群为争夺同一食物来源和生存空间相互竞争时,常见的结局是,竞争力弱的灭绝,竞争力强的达到环境容许的最大容量。

    建立数学模型描述两个种群相互竞争的过程,分析产生这种结局的条件。

    模型假设

    模型建立 

    模型分析

     线性常系数微分方程组

    判断稳定性的方法——直接法 

     

     平衡点稳定性分析

    种群竞争模型的平衡点及稳定性

    平衡点稳定性的相轨线分析

    matlab验证

    模型:

     

    其中,

    • x1(t), x2(t)分别是甲乙两个种群的数量。
    • r1, r2是它们的固有增长率。
    • N1, N2是它们的最大容量。
    • σ1:单位数量乙(相对N2)消耗的供养甲的食物量为单位数量甲(相对N1)消耗的供养甲的食物量的σ1倍。对σ2可作相应解释。
    clear; clc;
    %甲乙两个种群满足的增长方程:
    % x1'(t)=f(x1,x2)=r1*x1*(1-x1/N1-k1*x2/N2)
    % x2'(t)=g(x1,x2)=r2*x2*(1-k2*x1/N1-x2/N2)
    %求方程的平衡点,即解代数方程组)
    %  f(x1,x2)=0
    %  g(x1,x2)=0
    
    %编写出该程序段。
    syms x1 x2 r1 r2 N1 N2 k1 k2;
    f=r1*x1*(1-x1/N1-k1*x2/N2);
    g=r2*x2*(1-k2*x1/N1-x2/N2);
    [x1,x2]=solve(f,g,x1,x2);
    P=[x1([2,3,4,1]),x2([2,3,4,1])];
    
    x1x2=[x1,x2]  %显示结果
    disp(' '); P
    %调整位置后的4个平衡点:
    % P(1,:)=P1(N1,0)
    % P(2,:)=P2(0,N2)
    % P(3,:)=P3(N1*(-1+k1)/(-1+k2*k1),N2*(-1+k2)/(-1+k2*k1))
    % P(4,:)=P4(0,0)
    %平衡点位于第一象限才有意义,故要求P3:k1, k2同小于1,或同大于1。
    %判断平衡点的稳定性
    syms x1 x2; %重新定义
    fx1=diff(f,'x1');  fx2=diff(f,'x2');
    gx1=diff(g,'x1');  gx2=diff(g,'x2');
    disp(' '); A=[fx1,fx2;gx1,gx2] %显示结果
    p=subs(-(fx1+gx2),{x1,x2},{P(:,1),P(:,2)}); %替换
    p=simple(p);%简化符号表达式p 
    q=subs(det(A),{x1,x2},{P(:,1),P(:,2)});
    q=simple(q);
    disp(' '); [P p q] %显示结果


    种群的相互依存

    自然界中处于同一环境中的两个种群相互依存而共生.

    • 受粉的植物与授粉的昆虫.

    以植物花粉为食物的昆虫不能离开植物独立生存,而昆虫的授粉又可以提高植物的增长率.

    • 人类与人工饲养的牲畜.

    种群甲可以独自生存,种群乙不能独自生存;甲乙一起生存时相互提供食物、促进增长.

    甲乙两种群的相互依存有三种形式

    • 1) 甲可以独自生存,乙不能独自生存;甲乙一起生存时相互提供食物、促进增长。
    • 2) 甲乙均可以独自生存;甲乙一起生存 时相互提供食物、促进增长。
    • 3) 甲乙均不能独自生存;甲乙一起生存时相互提供食物、促进增长。

    模型假设

    • 甲可以独自生存,数量变化服从Logistic规律; 甲乙一起生存时乙为甲提供食物、促进增长。
    • 乙不能独自生存;甲乙一起生存时甲为乙提供食物、促进增长;乙的增长又受到本身的阻滞作用 (服从Logistic规律)。

    模型建立

    种群依存模型的平衡点及稳定性 

    平衡点P2稳定性的相轨线

     

    matlab验证

    模型:

     其中,

    • x1(t), x2(t)分别是甲乙两个种群的数量。
    • r1, r2是它们的固有增长率。
    • N1, N2是它们的最大容量。
    • σ1:单位数量乙(相对N2)提供的供养甲的食物量为单位数量甲(相对N1)消耗的供养甲的食物量的σ1倍。对σ2可作相应解释。
    clear; clc;
    syms x1 x2 r1 r2 N1 N2 k1 k2;
    f=r1*x1*(1-x1/N1+k1*x2/N2);
    g=r2*x2*(-1+k2*x1/N1-x2/N2);
    [x1,x2]=solve(f,g);
    P=[x1([2,4,1,3]),x2([2,4,1,3])];
    
    syms x1 x2; %重新定义
    fx1=diff(f,'x1');  fx2=diff(f,'x2');
    gx1=diff(g,'x1');  gx2=diff(g,'x2');
    A=[fx1,fx2;gx1,gx2];
    p=subs(-(fx1+gx2),{x1,x2},{P(:,1),P(:,2)}); %替换
    p=simple(p);%简化符号表达式p 
    q=subs(det(A),{x1,x2},{P(:,1),P(:,2)});
    q=simple(q);
    [P p q] %显示结果


    食饵-捕食者模型(种群的弱肉强食)

    种群甲靠丰富的天然资源生存,种群乙靠   捕食甲为生,形成食饵-捕食者系统,如   食用鱼和鲨鱼,美洲兔和山猫,害虫和益虫.

    模型的历史背景——一次世界大战期间地中海   渔业的捕捞量下降(食用鱼和鲨鱼同时捕捞),   但是其中鲨鱼的比例却增加,为什么?

    食饵-捕食者模型(Volterra)

    Volterra模型的平衡点及其稳定性

    MATLAB求微分方程数值解

     

    用相轨线分析P(d/b, r/a)点稳定性 

     

     

     

     模型解释

     

     

    食饵-捕食者模型(Volterra)的缺点与改进

     

    matlab验证

    函数M文件

    function xdot=shier(t,x)
    r=1; d=0.5; a=0.1 ; b=0.02 ;
    xdot=[(r-a*x(2)).*x(1); (-d+b*x(1)).*x(2)];

    命令M文件:

    ts=0 :0.1 :15;
    x0=[25, 2];
    [t,x]=ode45('shier',ts,x0); [t,x],
    plot(t,x), grid, gtext('x(t)'), gtext('y(t)'), %运行中在图上标注
    pause, 
    plot(x(:,1),x(:,2)), grid, 

    x(t), y(t)图形

     相轨线y(x)图形:


    两种群模型的几种形式 

    差分形式的阻滞增长模型 

    模型分析

    离散形式阻滞增长模型的平衡点及其稳定性

     

     

     

    倍周期收敛——x*不稳定情况的进一步讨论

     

    混沌现象

     

     

    matlab验证

    x0=0.2,分别取b = 1.7, 2.6, 3.3, 3.45, 3.55, 3.57,对方程

     计算出x1 ~ x100的值,显示x81 ~ x100的值。观察收敛与否。

    clc; clear all; format compact;
    b=[1.7,2.6,3.3,3.45,3.55,3.57];
    x=zeros(100,length(b));
    x0=0.2; %初值
    x(1,:)=b*x0*(1-x0);
    for k=1:99
        x(k+1,:)=b.*x(k,:).*(1-x(k,:));
    end
    K=(81:100)’; %将取81~100行
    disp(num2str([NaN,b; K,x(K,:)],4));%取4位有效数字,NaN表示不是数值

     

    clear; clc; close all;
    f=@(x,b)b.*x.*(1-x); %定义f是函数的句柄,函数b*x*(1-x)含两个变量x,b
    b=[1.7,2.6,3.3,3.45,3.55,3.57];
    x=ones(101,length(b));
    x(1,:)=0.2;
    for k=1:100
        x(k+1,:)=f(x(k,:),b);
    end
    for n=1:length(b)
        figure(n);%指定图形窗口figure n
        subplot(1,2,1);%开始迭代的图形
        fplot(@(x)[f(x,b(n)),x],[0 1 0 1]);%x是自变量,画曲线y=bx(1-x)和直线y=x
        axis square; hold on;
        x0=x(1,n); y0=0; %画迭代轨迹线
        for k=2:5
            x1=x(k,n); y1=x(k,n);
            plot([x0+i*y0, x0+i*y1, x1+i*y1], 'r');%实部为横坐标,虚部为纵坐标
            x0=x1; y0=y1;
        end
        title(['图解法:开始迭代的图形(b=' num2str(b(n)) ')']);
        hold off;
     
        subplot(1,2,2); %最后迭代的图形
        fplot(@(x)[f(x,b(n)),x],[0 1 0 1]);
        axis square; hold on;
        xy(1:2:41)=x(81:101,n)+i*x(81:101,n);%尽量不用循环
        xy(2:2:40)=x(81:100,n)+i*x(82:101,n);
        plot(xy,'r');
        title(['图解法:最后迭代的图形(b=' num2str(b(n)) ')']);
        hold off;
    end

    运行程序并给出结果(对应不同的b值)

     

    展开全文
  • 2020年东三省数学建模A题_论文展示。 采用了topsis和lstm长短期记忆人工神经网络深度学习模型。 研究新冠病毒疫情传播和世界主要国家疫情聚类和疫情管控评价。 内含问题解决 matlab ,python 代码
  • 数学建模常见模型

    万次阅读 多人点赞 2021-08-30 19:37:36
    数学建模中比较常见的几种模型: (一)、预测与预报 1、灰色预测模型(必须掌握) 满足两个条件可用: ①数据样本点个数少,6-15个 ②数据呈现指数或曲线的形式 例如:可以通过极值点和稳定点来预测下一次稳定点和...
  • 针对问题一,综合考虑到传染病的各类数据的片面性,本文建立了两种针对传染病 数据搜集程度强弱的两种模型。其一,对于较为精细全面的数据,首先采用层次分析法, 将不同的影响因素标准化成数据,再将这些数据作用...
  • 和最劣结果: J 大队, M 大队, G 大队,在模型检验中,使用了新的模型优劣解 距离模型求取了一次新的熵权,验证了结果的可靠性。 第四问中我们综合前两问中对于报警器的准确率,故障率及其工作原理给出多 种报警...
  • 投篮问题的数学建模.pdf
  • 数学建模中的常见模型

    万次阅读 多人点赞 2020-08-29 22:38:30
    数学建模中比较常见的几种模型: (一)、预测与预报 1、灰色预测模型(必须掌握) 满足两个条件可用: ①数据样本点个数少,6-15个 ②数据呈现指数或曲线的形式 2、微分方程预测(高大上、备用) 无法直接找到原始...
  • 数学建模之统计回归模型详解

    千次阅读 多人点赞 2022-03-17 11:43:37
    由于客观事物内部规律的复杂及人们认识程度的限制,无法分析实际对象内在的因果关系,建立合乎机理规律的数学模型。通过对数据的统计分析,找出与数据拟合最好的模型。 回归模型是用统计分析方法建立的最常用的一类...
  • 数学建模】评价模型

    千次阅读 2021-06-13 20:07:43
    它把人的思维过程层次化、数量化,并用数学为分析、决策、评价、预报和控制提供定量的依据。 基本步骤: 构建层次结构模型;构建成对比较矩阵;层次单排序及一致性检验(即判断主观构建的成对比较矩阵在整体上是否有...
  • 数学建模模型预测

    2022-06-09 14:02:04
    本文根据网上有关新冠疫情的材料提供的数据进行统计,并引入基于随机数的概率学动态仿真模拟,并在此基础上结合MATLAB 编程,拟合...建立了一个能够快速找出病毒携带者以及能为疫情控制提供可靠、足够的信息的模型。...
  • 数学建模之优化模型详解

    万次阅读 多人点赞 2022-03-09 21:51:29
    全文共8090个字,码字总结不易,老铁们来个三连:点赞、关注、评论作者:[左手の明天] 原创不易,转载请联系作者并... 这些问题都是“最优化问题”,也是数学建模中的典型问题,解决最优化问题的数学方法就是“最优化..
  • 数学建模
  • 数学建模国赛常用模型以及相关算法的思维导图
  • 神经网络本身就是数学的逼近模型,网络最早是由数学中的函数逼近技术而来,按照统计学规律,组合成线性叠加网络,从中分析出一些现实中高度非线性的模型,神经网络本身就是个数学建模,只是经过整理后更容易进行工程...
  • 预测模型数学建模

    千次阅读 2022-05-11 21:42:32
    灰色系统 灰色预测是对既含有已知信息又含有不确定信息...灰色预测对原始数据进行生成处理来寻找系统变动的规律,并生成有较强规律性的数据序列,然后建立相应的微分方程模型,从而预测事物未来发展趋势的状况。 ...
  • 数学建模:传染病模型

    千次阅读 2022-04-04 14:39:55
    文章目录传染病模型SI模型SIS模型SIR模型 传染病模型 SI模型 假设考察地区的总人数N基本保持不变,时刻t(单位:天)的易感染者(susceptible)和已感染者(infective)的比例分别为s(t)和i(t)。设易感者每天被感染的几率...
  • 数学建模——五大类模型

    千次阅读 2021-08-08 17:39:13
    五大类模型1:综合评价模型主观评价客观评价其它评价模型综合评价法的“两两集成”基于主观评价(层次分析法AHP)对客观评价的集成基于客观评价(模糊综合评判)对主观评价的集成 1:综合评价模型 主观评价 模糊...
  • 数学建模:线性回归模型

    千次阅读 2021-07-30 10:00:21
    数学建模:线性回归模型 1.多重线性回归模型 1.1 引入 线性回归分类 简单线性回归(一个自变量) 多重线性回归(多个自变量) 线性回归的前提条件: 线性(散点图,散点图矩阵) 独立性 正态性(回归分析过程中...
  • 数学建模 数理统计模型

    千次阅读 2021-01-17 22:21:19
    一.参数估计与假设检验 二.Bootstrap方法 三.方差分析 四.回归分析 五.大规模定制质量控制方法
  • 本文总结了常用的数学模型方法和它们的主要用途,主要包括数学和统计上的建模方法,关于在数学建模中也挺常用的机器学习算法暂时不作补充,以后有时间就补。至于究竟哪个模型更好,需要用数据来验证,还有求解方法也...
  • 数学建模中,评价类模型是一类比较基础的数学模型之一,往往是对应生活中的一些实际问题。最常见的数学模型包括:层次分析法、模糊综合评价、熵值法、TOPSIS法、数据包络分析、秩和比法、灰色关联法。......

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,215
精华内容 11,286
关键字:

数学建模模型检验