数学建模——对2017年国赛C题论文的学习

2017年C题论文总结

思想和算法

回归分析

简单地说,回归分析就是对拟合问题做的统计分析。

我们根据一个样本算出的那些系数,只是它们的一个(点)估计,应该对它们作区间估计或假设检验,如果置信区间太大,甚至包含了零点,那么系数的估计值是没有多大意义的。另外也可以用方差分析方法对模型的误差进行分析,对拟合的优劣给出评价。

  • 建立因变量与自变量之间的回归模型(因变量);
  • 进行可信度检验;
  • 判断自变量对因变量的影响是否显著;
  • 回归模型是否适合这组数据;
  • 利用回归模型对因变量进行预报或控制。
数据表的基础知识
  1. 样本

    涉及的是样本点 × × ×变量类型的数据表,对 m m m个变量分别进行 n n n次采样,得到 n n n个样本点,所构成的数据表如下:
    X = ( x i j ) n × m = [ e 1 T e 2 T ⋮ e m T ] e i = [ x i 1 , x i 2 , x i 3 , ⋯   , x i n ] T m e a n   v a l u e : x ‾ = ( x 1 ‾ , x 2 ‾ , x 3 ‾ , ⋯   , x n ‾ ) T c o v a r i a n c e : C 1 = ( t i j ) m × m = a n − 1 ∑ i = 1 n ( e k − x ‾ ) ( e k − x ‾ ) c o r r e l a t i o n   m a r t r i x : C 2 = ( r i j ) m × m = ( t i j t i i t j j ) t i j = 1 n − 1 ∑ k = 1 n ( x k i − x i ‾ ) ( x k j − x j ‾ ) \begin{align} & \tag{1}X=(x_{ij})_{n\times m}=\begin{bmatrix} e_1^T\\ e_2^T\\ \vdots\\ e_m^T\\ \end{bmatrix}\\ & \tag{2}e_i=\begin{bmatrix}x_{i1},x_{i2},x_{i3},\cdots,x_{in}\end{bmatrix}^T\\ mean\ value:\\ &\tag{3} \overline{x}=(\overline{x_1},\overline{x_2},\overline{x_3},\cdots,\overline{x_n})^T\\ covariance:\\ & \tag{3}C_1=(t_{ij})_{m\times m}=\frac a{n-1}\sum_{i=1}^{n}{(e_k-\overline x)(e_k-\overline x)}\\ correlation\ martrix:\\ & \tag{4}C_2=(r_{ij})_{m\times m}=(\frac {t_{ij}}{\sqrt{{t_{ii}t_{jj}}}})\\ & \tag{5}t_{ij}=\frac{1}{n-1}\sum_{k=1}{n}{(x_{ki}-\overline {x_i})(x_{kj}-\overline{x_j})} \end{align} mean value:covariance:correlation martrix:X=(xij)n×m= e1Te2TemT ei=[xi1,xi2,xi3,,xin]Tx=(x1,x2,x3,,xn)TC1=(tij)m×m=n1ai=1n(ekx)(ekx)C2=(rij)m×m=(tiitjj tij)tij=n11k=1n(xkixi)(xkjxj)(1)(2)(3)(3)(4)(5)

    可以将e看作各变量样本点集,所有矩阵均以列向量的形式出现或复合而成。

    • 协方差 ( C o v a r i a n c e , C O V ) (Covariance,COV) (Covariance,COV)

      协方差用于衡量两个变量的总体误差,方差是协方差的一种特殊情况,即当两个变量是相同的情况

      由CSDN中有
      c o v ( X , Y ) > 0 → X ∝ Y c o v ( X , Y ) < 0 → Y ∝ X c o v ( X , Y ) = 0 → X ∝̸ Y cov(X,Y)>0\to X\propto Y\\ cov(X,Y)<0\to Y\propto X\\ cov(X,Y)=0\to X\not \propto Y cov(X,Y)>0XYcov(X,Y)<0YXcov(X,Y)=0XY
      协方差为0,两个随机变量不一定相互独立,而两个随机变量相互独立,协方差一定为0。协方差为0,只能表示他们之间不存在线性关系

      So this means that Covariance can show the correlation between two variables.

  2. 数据的标准化处理

    • 数据的中心化处理

      是指平移变换 i i j ∗ = x i j − x j ‾ i_{ij}^*=x_{ij}-\overline{x_j} iij=xijxj

    • 数据的无量纲化处理

      对不同的变量进行压缩处理 x i j ∗ = x i j / s j x_{ij}^*=x_{ij}/s_j xij=xij/sj

      其中: s j = 1 n − 1 ∑ i = 1 n ( x i j − x j ‾ ) 2 s_j=\sqrt{\frac{1}{n-1}\sum_{i=1}^n{(x_{ij}-\overline{x_j})^2}} sj=n11i=1n(xijxj)2

      解释:每一列是不同样本点的同一变量类型,用当前值减去当前列的平均值求平方和的平均值,求得当前列的方差。换句话说,求的是多次采样的某属性的标准差

    • 标准化处理

    • 对数据同时进行中心化—压缩处理:

      x i j ∗ = x i j − x j ‾ s j ,   i = 1 , 2 , ⋯   , n ,   j = 1 , 2 , ⋯   , m . x_{ij}^*=\frac{x_{ij}-\overline{x_j}}{s_j},\ i=1,2,\cdots,n,\ j=1,2,\cdots,m. xij=sjxijxj, i=1,2,,n, j=1,2,,m.

线性回归方程
  • 一元线性回归
    y = β 0 x 0 + β 1 x 1 + ε (6) \tag{6}y=\beta_0x^0+\beta_1x^1+\varepsilon y=β0x0+β1x1+ε(6)

    说明: β 0 , β 1 \beta_0,\beta_1 β0,β1 是回归系数, ε \varepsilon ε 是随机误差项,可假设 ε ∼ N ( 0 , σ 2 ) \varepsilon\thicksim N(0,\sigma^2) εN(0,σ2) 那么随机变量 y ∼ N ( β 0 + β 1 x , σ 2 ) y\thicksim N(\beta_0+\beta_1x,\sigma^2) yN(β0+β1x,σ2)

    用最小二乘法估计 β 0 \beta_0 β0 β 1 \beta_1 β1的值,即取 β 0 , β 1 \beta_0,\beta_1 β0,β1的一组估计值使 y i y_i yi y i ^ \hat{y_i} yi^的误差(error)平方和达到最小

    Q ( β 0 ^ , β 1 ^ ) = min ⁡ β 0 , β 1 Q ( β 0 , β 1 ) = ∑ i = 1 n ( y i − β 0 ^ − β i ^ x i ) 2 { β 1 ^ = ∑ i = 1 n ( x i − x ‾ ) ( y i − y ‾ ) ∑ i = 1 n ( x i − x ‾ ) 2 β 0 ^ = y ‾ − β 1 ^ x ‾ \begin{align} &\tag{7}Q(\hat{\beta_0},\hat{\beta_1})=\min_{\beta_0,\beta_1}Q(\beta_0,\beta_1)=\sum_{i=1}^n(y_i-\hat{\beta_0}-\hat{\beta_i}x_i)^2\\ &\tag{8}\begin{cases} \hat{\beta_1}=\frac{\sum\limits_{i=1}^n(x_i-\overline{x})(y_i-\overline{y})}{\sum\limits_{i=1}^{n}(x_i-\overline x)^2}\\ \hat{\beta_0}=\overline{y}-\hat{\beta_1}\overline x\\ \end{cases} \end{align} Q(β0^,β1^)=β0,β1minQ(β0,β1)=i=1n(yiβ0^βi^xi)2 β1^=i=1n(xix)2i=1n(xix)(yiy)β0^=yβ1^x(7)(8)

    对标准化数据, β 1 ^ \hat{\beta_1} β1^可以表示 y y y x x x的相关程度。 s y s_y sy s x s_x sx分别是 y y y x x x的标准差 r x y r_{xy} rxy是x,y的相关系数
    β 1 = ∑ i = 1 n ( y i − y ‾ ) 2 ∑ i = 1 n ( x i − x ‾ ) 2 ⋅ ∑ i = 1 n ( x i − x ‾ ) ( y i − y ‾ ) ∑ i = 1 n ( x i − x ‾ ) 2 ∑ i = 1 n ( y i − y ‾ ) = s y s x r x y \beta_1=\frac{\sqrt{\sum\limits_{i=1}^{n}(y_i-\overline y)^2}}{\sqrt{\sum\limits_{i=1}^{n}(x_i-\overline x)^2}}\cdot \frac{\sum\limits_{i=1}^{n}(x_i-\overline x)(y_i-\overline y)} {\sqrt{\sum\limits_{i=1}^n(x_i-\overline x)^2} \sqrt{\sum\limits_{i=1}^n(y_i-\overline{y})}}=\frac{s_y}{s_x} r_{xy} β1=i=1n(xix)2 i=1n(yiy)2 i=1n(xix)2 i=1n(yiy) i=1n(xix)(yiy)=sxsyrxy

    • 注意事项:

      必须对回归方程的质量,误差进行正确的评估和分析;

    • 拟合效果分析

      1. 残差 e i = y i − y i ^ e_i=y_i-\hat{y_i} ei=yiyi^

        • 残差的样本均值为0,样本方差MSE。(Q1:残差总和不应该为0吗?)

        • 好的拟合方程,其残差总和( ∑ i = 1 n e i \sum\limits_{i=1}^{n}e_i i=1nei)应越小越好。

          S e = M S E = 1 n − 2 ∑ i = 1 n e i 2 S_e=\sqrt{MSE}=\sqrt{\frac{1}{n-2}\sum\limits_{i=1}^{n}e_i^2} Se=MSE =n21i=1nei2

          因为残差的样本均值为零,离散范围越小,拟合的模型就越精确

      2. 判定系数(拟合优度) R 2 R^2 R2

        • 原始数据的总变异平方和与自由度:
          S S T = ∑ i = 1 n ( y i − y ‾ ) 2 , d f T = n − 1 SST=\sum\limits_{i=1}^{n}(y_i-\overline y)^2,df_T=n-1 SST=i=1n(yiy)2dfT=n1
      • 拟合直线可解释的变异平方和与自由度:
        S S R = ∑ i = 1 n ( y i ^ − y ‾ ) 2 , d f R = 1 SSR=\sum\limits_{i=1}^{n}(\hat{y_i}-\overline y)^2,df_R=1 SSR=i=1n(yi^y)2,dfR=1

        • 残差平方和与自由度:

        S S E = ∑ i = 1 n ( y i − y i ^ ) 2 , d f E = n − 2 SSE=\sum\limits_{i=1}^{n}(y_i-\hat{y_i})^2,df_E=n-2 SSE=i=1n(yiyi^)2,dfE=n2

        • S S T = S S R + S S E , d f T = d f R + d f E SST=SSR+SSE,df_T=df_R+df_E SST=SSR+SSE,dfT=dfR+dfE

        判定系数 R 2 = S S R S S T = ( 1 − S S E S S T ) R^2=\frac{SSR}{SST}=(1-\frac{SSE}{SST}) R2=SSTSSR=(1SSTSSE)

    • 显著性检验

      从逻辑上说,一般先进行F检验,通过后再进一步进行t检验

      • 回归系数的显著性检验
多元线性回归

多元线性回归分析的模型为:
{ y = β 0 + β 1 x 1 + ⋯ + β m x m + ε ε ∼ N ( 0 , σ 2 ) \begin{cases} y=\beta_0+\beta_1x_{1}+\cdots+\beta_mx_m+\varepsilon\\ \varepsilon \thicksim N(0,\sigma^2) \end{cases} {y=β0+β1x1++βmxm+εεN(0,σ2)
求解过程十分复杂,交给matlab即可

以下内容,n是样本容量,m是元的个数

  • 回归模型的假设检验:
    KaTeX parse error: Expected 'EOF', got '&' at position 2: &̲Q=\sum\limits_{…
    在显著性水平 α \alpha α下有上 α \alpha α分位数 F α ( m , n − m − 1 ) F_\alpha(m,n-m-1) Fα(m,nm1) F < F α ( m , n − m − 1 ) FF<Fα(m,nm1)接受 H 0 H_0 H0,否则拒绝

    R越大y与元相关关系越密切,R大于0.8或0.9才认为相关关系成立

  • 回归系数的假设检验和区间估计

代码说明:
多元线性回归

Matlab统计工具箱用命令regress实现多元线性回归,用的方法是最小二乘法

b=regress(Y,X)
[b,bint,r,rint,stats]=regress(Y,X,alpha)
%alpha为显著性水平(缺省时设定为0.05).
%b,bin为回归系数估计值和它们的指向区间.
%r,rint为残差(向量)及置信区间,stats是用于检验回归模型的统计量.

残差及其置信区间可以用 rcoplot(r,rint) 画图

多项式回归
  • 一元多项式回归polyfit
  • 多元二项式回归rstool
偏相关系数

如果有因变量 y y y和自变量 x 1 , x 2 , ⋯   , x m x_1,x_2,\cdots,x_m x1,x2,,xm,确定 y y y x 1 x_1 x1的偏相关系数的一个直接的想法时在除掉 x 2 , x 3 , ⋯   , x m x_2,x_3,\cdots,x_m x2,x3,,xm的影响之后,再考虑 y y y x 1 x_1 x1的相关程度

可以使用SPSS进行统计

变量筛选方法
  • 偏F检验

    clc,clear 
    load data.txt %表中的数据按照原来的排列存放在纯文本文件data.txt中 
    [n,m]=size(data);m=m-1; 
    x=[ones(38,1),data(:,1:8)]; y=data(:,9); 
    [b,bint,r,rint,stats]=regress(y,x) %stats(4)返回的是残差的样本方差 
    r2=stats(1) %提出复判定系数 
    ad_r2=1-(1-r2)*(n-1)/(n-m-1) %计算调整复判断系数 
    f=stats(2) %提出F统计量 
    tm=inv(x'*x); %计算X'*X的逆矩阵 
    tm=diag(tm); %提出逆矩阵的对角线元素 
    rmse=sqrt(stats(4)) %计算剩余标准差(残差的样本标准差) 
    t=b./sqrt(tm)/rmse %求t统计量的值 
    
  • 向前选择变量法

    clc,clear 
    load data.txt %表中的数据按照原来的排列存放在纯文本文件data.txt中 
    [n,m]=size(data); 
    y=data(:,9); 
    TT=[];
    for i=2:8 
    x=[ones(38,1),data(:,[1,i])]; 
    [b,bint,r,rint,stats]=regress(y,x) %stats(4)返回的是残差的样本方差 
    tm=inv(x'*x); %计算X'*X的逆矩阵 
    tm=diag(tm); %提出逆矩阵的对角线元素 
    rmse=sqrt(stats(4)) %计算剩余标准差(残差的样本标准差) 
    t=b./sqrt(tm)/rmse %求t统计量的值 
    TT=[TT,t]; 
    end 
    ts=TT(3,:) %求各个新加入变量的t检验值 
    pr=ts./sqrt(ts.^2+n-3) %计算偏相关系数
    
  • 向后删除变量法

  • 逐步回归

    Matlab中使用逐步回归stepwise(x,y,inmodel,alpha)

复共线性与有偏估计方法
  • 复共线性
  • 岭估计
非线性回归

非线性回归是指因变量 y y y对回归系数 β 1 , ⋯   , β m \beta_1,\cdots,\beta_m β1,,βm是非线性的。

Matlab中使用nlinfit,nlparci,nlpredci,nlintool进行非线性回归,并且可得到置信区间、预测值和(该值的)置信区间

nlinfit:计算回归系数;

nlparci:计算回归系数的置信区间;

nlpredci:计算预测值及其置信区间

clc,clear 
x0=[ 1 8.55 470 300 10 
 2 3.79 285 80 10 
 3 4.82 470 300 120 
 4 0.02 470 80 120 
 5 2.75 470 80 10 
 6 14.39 100 190 10 
 7 2.54 100 80 65 
 8 4.35 470 190 65 
 9 13.00 100 300 54 
 10 8.50 100 300 120 
 11 0.05 100 80 120 
 12 11.32 285 300 10 
 13 3.13 285 190 120]; 
x=x0(:,3:5); 
y=x0(:,2); 
beta=[0.1,0.05,0.02,1,2]'; %回归系数的初值,可以任意取,这里是给定的
[betahat,r,j]=nlinfit(x,y,@huaxue,beta); %r,j是下面命令用的信息
betaci=nlparci(betahat,r,'jacobian',j); 
betaa=[betahat,betaci] %回归系数及其置信区间
[yhat,delta]=nlpredci(@huaxue,x,betahat,r,'jacobian',j) 
%y的预测值及其置信区间的半径,置信区间为yhat±delta。
用nlintool得到一个交互式画面,左下方的Export可向工作区传送数据,如剩余标
准差等。使用命令 
nlintool(x,y,'huaxue',beta) 
可看到画面,并传出剩余标准差rmse= 0.1933。 
方程的误差分析

层次分析法(AHP)

适用于为相互关联相互制约的众多因素构成的复杂缺缺少定量数据的系统进行决策和排序

建立递阶层次结构模型

目标层、准则层、措施层(可以理解为为了达到某目标,需要遵守某准则,做出某措施,层层对应)

次构造出各层次中的所有判断矩阵

判断矩阵 A A A中的 ( i , j ) (i,j) (i,j)位置有元素 a i j a_{ij} aij

a i j a_{ij} aij是n个对Z影响因子 X = { x 1 , . . . , x n } X=\{x_1,...,x_n\} X={x1,...,xn}中对 x i x_i xi x j x_j xj进行比较得出,表示 x i x_i xi x j x_j xj 对Z的影响大小之比,这样建立了 A A A一个表达成对比较的矩阵。

数学建模——对2017年国赛C题论文的学习_第1张图片

n ( n − 1 ) 2 \frac {n(n-1)} 2 2n(n1)次两两判断是有必要的。

层次单排序及一致性检验;

得到的评价矩阵有可能出现相悖的情况,因此要进行一致性检验,具体说明如下:
a i j a j k = a i k , ∀ i , j , k = 1 , 2 , . . . n a_{ij}a_{jk}=a_{ik},\forall i,j,k=1,2,...n aijajk=aik,i,j,k=1,2,...n
满足关系式(1)的正互反矩阵称为一致矩阵

层次总排序及一致性检验;

论文风格与特点

大量精准的数据有力证明了模型的准确性。

感想

多利用SPSS、Matlab进行数据分析与计算,建模阶段只需进行简单的建模说明以及模型优劣分析方法的选择即可。

论文新开(10-15下午论文学习)

论文的小节划分

  1. 重述并澄清赛题;

  2. 列出建模所用的所有前提条件及假设,并给出清晰的解释;

  3. 分析赛题,给出建模动机或论证建模的合理性;

  4. 模型设计;

  5. 讨论模型的优缺点;

  6. 书写论文摘要,摘要必须按照要求写在特定的摘要页上,长度不超过一页,提交时作为参赛论文的首页;
    S u m m a r y 1. R e s t a t e m e n t   o f   t h e   p r o b l e m 2. A s s u m p t i o n s 3. J u s t i f i c a t i o n   o f   O u r   A p p r o a c h 4. T h e M o d e l   4.1. D i s s a t i s f a c t i o n   o f   a   p a s s e n g e r   n e e d i n g   a   c o n n e c t i o n   4.2. D i s s a t i s f a c t i o n   o f   a   p a s s e n g e r   n o t   n e e d i n g   a   c o n n e c t i o n   4.3. T o t a l   d i s s a t i s f a c t i o n   o n   a n   a i r c r a f t 5. T e s t i o n g   t h e   M o d e l 6. R e s u l t s 7. S t r e n g t h s   a n d   W e a k n e s s R e f e r e n c e s \begin{align} &Summary\\ &1.Restatement\ of\ the\ problem\\ &2.Assumptions\\ &3.Justification\ of\ Our\ Approach\\ &4.The Model\\ &\ 4.1.Dissatisfaction\ of\ a\ passenger\ needing\ a\ connection\\ &\ 4.2.Dissatisfaction\ of\ a\ passenger\ not\ needing\ a\ connection\\ &\ 4.3.Total\ dissatisfaction\ on\ an\ aircraft\\ &5.Testiong\ the\ Model\\ &6.Results\\ &7.Strengths\ and\ Weakness\\ &References \end{align} Summary1.Restatement of the problem2.Assumptions3.Justification of Our Approach4.TheModel 4.1.Dissatisfaction of a passenger needing a connection 4.2.Dissatisfaction of a passenger not needing a connection 4.3.Total dissatisfaction on an aircraft5.Testiong the Model6.Results7.Strengths and WeaknessReferences

摘要部分

和引言(Introduction Restatement)一样应该足够抓眼,应该包括这些内容:

  1. 赛题重述与阐明;
  2. 解释假设条件及其合理性;
  3. 模型设计及合理性论证;
  4. 描述模型的测试情况以及灵敏度分析;
  5. 优缺点讨论

论文细节

  1. 重要的句子,首次定义的概念,应该用黑体斜体书写。在突出的同时要尽量少用黑体或斜体字体;
  2. 重要的数学公式(equation)应另起新行单独列出,建模使用的假设条件以及所有可以用列表方式表述的内容都使用图标描述,加以简单的文字说明;
  3. 引言重在“引”,简单介绍题目背景以及本文重心,除了重述赛题,写出自己的理解,还应该对现有文献在相似问题上的研究做适当的综述和评论,简明地描述参赛小组的解题方法以及主要结果;
  4. 模型假设务必到位,务必确定一个最好模型;
  5. 最终要对模型进行敏感性分析和稳定性测试,令模型更具有说服力;
  6. 模型缺陷必须提!对自己的模型真诚一点!
  7. 光标位置是时间线,当前写的内容就是一般现在时,在这之前做过的用一般过去时,这之后用将来时;

R e f e r e n c e Reference Reference

[1]《数学建模教材》司守奎

[2]《正确写作美国大学生数学建模竞赛论文》王杰、贝朗格

你可能感兴趣的:(学习,机器学习,回归,matlab)