精华内容
下载资源
问答
  • 数学建模之多元非线性回归
    万次阅读 多人点赞
    2019-08-29 19:03:19

    友情链接:
    (1)使用MATLAB进行多元非线性回归——nlinfit函数的使用
    https://blog.csdn.net/zhangyugebb/article/details/84770303

    (2)MATLAB多元非线性回归
    https://blog.csdn.net/lucky51222/article/details/42130523

    (3)MATLAB实现多元非线性回归
    https://blog.csdn.net/qq_42820064/article/details/86239033

    一、使用MATLAB进行多元非线性回归——nlinfit函数的使用
    https://blog.csdn.net/zhangyugebb/article/details/84770303

    帮我对象做数据分析时遇到的问题,发现网上matlab多元非线性回归例子很少,写下来这篇用作参考
    
    使用beta= nlinfit(x, y, model, beta0) 
    ——x为自变量,可以是多个自变量
    
    ——y为因变量,只能由一个
    
    ——model是函数模型
    
    ——beta0要求系数的初值
    
    例子:
    假定一个回归模型y = beta1*x1^3 + beta2*x2^2 + beta3*log2(x3)
    
    其中beta1, beta2, beta3为想要通过回归得到的系数
    
    Step1:建立回归模型
    
    直接使用内联函数建立:
    
    mymodel = inline('beta(1)*x(:,1).^3 + beta(2)*x(:,2).^2 + beta(3)*log2(x(:,3)','beta','x');
    
    这里x(:1)是取x的第一列数据,相应的x(:,2)取第二列数据...
    
    beta(1),beta(2),beta(3)为所求系数
    
    Step2: 回归
    
    x = [x1,x2,x3]; %自变量x1,x2,x3
    beta0= [a1,b1,c1,d1,e1,f1,m1,n1,z1]; %系数初始值
    beta = nlinfit(x,y,myfun,temp); %回归得到系数beta
    

    二、MATLAB多元非线性回归
    https://blog.csdn.net/lucky51222/article/details/42130523

    解释变量:商品价格(x1)人均月收入(x2),被解释变量:商品需求量(y),进行二元回归分析,并进行检验  
    

    在这里插入图片描述

    Matlab代码:
    
    clear
    clc
    data = [89	78	70	60	65	58	50	45	52	35	38
    550	580	600	650	720	750	830	880	850	920	1100
    5800	5000	6200	6800	7100	7800	8900	9000	8500	9400	9900
    ]';
    x1 = data(:,1);
    x2 = data(:,2);
    y = data(:,3);
    X = [ones(size(x1)) x1.*x1 x1 x2.*x2 x2 x1.*x2];
    [b,bint] = regress(y,X)
    scatter3(x1,x2,y,'filled')
    hold on
    x1fit = min(x1):0.5:max(x1);
    x2fit = min(x2):0.5:max(x2);
    [X1FIT,X2FIT] = meshgrid(x1fit,x2fit);
    YFIT = b(1)+ b(2)*X1FIT.*X1FIT+b(3)*X1FIT + b(4)*X2FIT.*X2FIT + b(5)*X2FIT + b(6)*X1FIT.*X2FIT;
    mesh(X1FIT,X2FIT,YFIT)
    xlabel('x1')
    ylabel('x2')
    zlabel('Y')
    view(140,30)
    命令窗口:
    b =
    
      1.0e+004 *
    
        8.4841
        0.0006
       -0.1486
        0.0000
       -0.0098
        0.0001
    
    
    bint =
    
      1.0e+005 *
    
       -1.0110    2.7078
       -0.0001    0.0002
       -0.0443    0.0145
       -0.0000    0.0000
       -0.0036    0.0017
       -0.0000    0.0000
    

    图形:
    在这里插入图片描述

    三、MATLAB实现多元非线性回归
    https://blog.csdn.net/qq_42820064/article/details/86239033

    简单多元非线性回归算例
    现有以下数据
    

    在这里插入图片描述
    在这里插入图片描述

    MATLAB代码如下
    
    x1=[1.1 1 1.2 1.1 0.9]';
    x2=[2 2 1.8 1.9 2.1]';
    x3=[3.2 3.2 3 2.9 2.9]';
    y=[10.1 10.2 10 10.1 10]';
    G=[x1,x2,x3.^2];
    z=G\y;
    

    在这里插入图片描述

    [beta,r]=nlinfit(X,y,myfun,beta0);
    
    其中输入参数X是自变量,y是因变量,myfun 是函数模型,beta0是初始迭代系数向量,返回值beta是模型的系数向量,r是每个点的残差。
    
    先定义myfun
    function y=myfun(beta,x)
    y=beta(1)*x(:,1)+beta(2)*x(:,2)+beta(3)*x(:,3).^2;
    
    然后主程序
    x1=[1.1 1 1.2 1.1 0.9]';
    x2=[2 2 1.8 1.9 2.1]';
    x3=[3.2 3.2 3 2.9 2.9]';
    y=[10.1 10.2 10 10.1 10]';
    X=[x1,x2,x3];
    beta0=[1,1,1];
    [beta,r]=nlinfit(X,y,'myfun',beta0);
    

    在这里插入图片描述

    更多相关内容
  • 数学建模线性回归模型

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

    数学建模:线性回归模型

    1.多重线性回归模型

    1.1 引入

    线性回归分类

    • 简单线性回归(一个自变量)
    • 多重线性回归(多个自变量)

    线性回归的前提条件:

    • 线性(散点图,散点图矩阵)
    • 独立性
    • 正态性(回归分析过程中可以确定)
    • 方差齐性(回归分析过程中可以确定):建模中存在的误差

    两个变量:X和Y

    例1:人体的身高和体重

    X:人体的身高

    Y:人体的体重

    身高X大时,体重Y也会倾向于增大,但是X不能严格地决定Y

    1.2相关关系

    相关关系:自变量的取值一定时,因变量的取值带有一定的随机性的两个变量之间的关系。

    相关关系是一种非确定关系。对具有相关关系的两个变量进行统计分析的方法称为回归分析。

    1.3经验回归方程

    X:自变量或者预报变量

    Y:因变量或者响应变量
    Y { X 能 够 决 定 的 部 分 f ( x ) 其 他 未 考 虑 的 因 素 e : 误 差 Y\begin{cases} X能够决定的部分f(x)\\ 其他未考虑的因素e:误差 \end{cases} Y{Xf(x)e
    ​ 则得到下面的模型:
    Y = f ( x ) + e , E ( e ) = 0 特 别 的 , 当 f ( X ) = β 0 + β 1 X 时 是 线 性 函 数 β 0 和 β 1 都 称 作 回 归 系 数 Y = f(x) + e,E(e) = 0\\ 特别的,当f(X) = \beta_0+\beta_1X时是线性函数\\ \beta_0和\beta_1都称作回归系数 Y=f(x)+e,E(e)=0f(X)=β0+β1X线β0β1

    • 第一步:确定模型
    • 第二步:观测模型

    image-20210729094728457

    于是有n组观测值(xi , yi ),如果Y与X 满足回归系数时,则(xi , yi )满足:
    y i = β 0 + β 1 x i + e i , i = 1 , 2 , . . . , n y_i = \beta_0+\beta_1x_i+e_i,\qquad i=1,2,...,n yi=β0+β1xi+eii=1,2,...,n

    • 第三步:确定未知参数值

      根据第二步得到的方程组,应用用统计方法,可以得到 β 0 \beta_0 β0 β 1 \beta_1 β1的估计值 β ^ 0 \hat\beta_0 β^0 β ^ 1 \hat\beta_1 β^1

    • 第四步:求得经验方程

      将估计值 β ^ 0 \hat\beta_0 β^0 β ^ 1 \hat\beta_1 β^1带入线性回归方程,略去误差项:
      Y = β ^ 0 + β ^ 1 X Y = \hat\beta_0+\hat\beta_1X Y=β^0+β^1X
      称为经验回归方程

    1.4多元线性模型

    多元线性回归的一般形式:
    Y = β 0 + β 1 x + . . . + + β p − 1 x + e i Y = \beta_0+\beta_1 x+...++\beta_{p-1} x+e_i Y=β0+β1x+...++βp1x+ei
    同样 β 0 \beta_0 β0为常数项,$\beta_1,…,\beta_{p-1} 为 回 归 系 数 , 为回归系数, e$为随机误差.

    • 观测数据

      多元线性模型就是有多个未知数 β \beta β
      y = [ y 1 y 2 ⋮ y n ] , X = [ 1 x 11 ⋯ x 1 , p − 1 1 x 21 ⋯ x 2 , p − 1 ⋮ ⋮ ⋮ ⋮ 1 x n 1 ⋯ x n , p − 1 ] , β = [ β 0 β 1 ⋮ β p − 1 ] , e = [ e 1 e 2 ⋮ e n ] y=\begin{bmatrix}y_1\\y_2\\\vdots \\y_n\end{bmatrix},X=\begin{bmatrix}1&x_{11}&\cdots&x_{1,p-1}\\1&x_{21}&\cdots&x_{2,p-1}\\\vdots&\vdots&\vdots&\vdots\\1&x_{n1}&\cdots&x_{n,p-1}\end{bmatrix},\beta=\begin{bmatrix}\beta_0\\\beta_1\\\vdots \\\beta_{p-1}\end{bmatrix},e=\begin{bmatrix}e_1\\e_2\\\vdots \\e_n\end{bmatrix} y=y1y2yn,X=111x11x21xn1x1,p1x2,p1xn,p1,β=β0β1βp1,e=e1e2en

    • 确定回归系数

    • 求经验回归方程

    β ^ = ( β ^ 0 , β ^ 1 , ⋯   , β ^ p − 1 ) ′ \hat\beta = (\hat\beta_0,\hat\beta_1,\cdots,\hat\beta_{p-1})' β^=(β^0,β^1,,β^p1) β \beta β的一种估计,则经验方程是:
    Y = β ^ 0 + β ^ 1 X 1 + ⋯ + β ^ p − 1 X p − 1 Y= \hat\beta_0+\hat\beta_1X_1+\cdots+\hat\beta_{p-1}X_{p-1} Y=β^0+β^1X1++β^p1Xp1

    1.5 非线性模型

    非线性模型经过适当变换,转换为线性模型:比如两边取对数
    ln ⁡ Q t = ln ⁡ a + b ln ⁡ L t + c ln ⁡ K t \ln\limits Q_t=\ln\limits a+b\ln\limits L_t+c\ln\limits K_t lnQt=lna+blnLt+clnKt

    y t = ln ⁡ Q t ; x t 1 = ln ⁡ L t , β 0 = ln ⁡ a , β 1 = b , β 2 = c y_t = \ln\limits Q_t;x_{t1} = \ln\limits L_t,\beta_0 = \ln\limits a,\beta_1 = b,\beta_2 = c yt=lnQt;xt1=lnLt,β0=lna,β1=b,β2=c

    加上误差项即是线性关系

    2.参数估计(最小二乘法)

    在高等数学中有最小二乘法的介绍。简单地说就是要通过确定一系列的系数 β \beta β,使所有情况下的误差最小,即:
    e = ∣ y − X β ∣ e = |y-X\beta| e=yXβ
    的值最小。由于绝对值不好处理,这里转化成平方形式:
    e = ( y − X β ) 2 e = (y-X\beta)^2 e=(yXβ)2
    上式展开,对 β \beta β求偏导,使其为0,得到线性方程组,解出 β i \beta_i βi即可,这一组 β \beta β即是估计出的参数值。即是通过这一步最终得到了经验方程:
    Y ^ = β ^ 0 + β ^ 1 X 1 + ⋯ + β ^ p − 1 X p − 1 \hat Y = \hat\beta_0+\hat\beta_1 X_1+\cdots+\hat\beta_{p-1}X_{p-1} Y^=β^0+β^1X1++β^p1Xp1
    上述方程还需要进一步做统计分析,来确定是否, 描述了因变量与自变量的真实关系。

    另外,进行线性回归之前,为了消除量纲等因素的影响,我们通常会对数据进行预处理。预处理有

    • 中心化
    • 标准化

    3.回归方程假设检验

    但是经验回归方程是否真正刻画了因变量与自 变量之间的关系?——回归方程的显著性检验

    因变量和所有自变量之间是否存在显著的关系?——回归系数的显著性检验

    异常点检验

    3.1回归方程的显著性检验

    正态线性回归模型:
    y i = β ^ 0 + β ^ 1 x i 1 + ⋯ + β ^ p − 1 x i , p − 1 + e i e i — — N ( 0 , σ 2 ) , i = 1 , ⋯   , n y_i = \hat\beta_0+\hat\beta_1 x_{i1}+\cdots+\hat\beta_{p-1}x_{i,p-1}+e_i\\ e_i——N(0,\sigma^2),i = 1,\cdots,n yi=β^0+β^1xi1++β^p1xi,p1+eieiN(0,σ2),i=1,,n
    经验方程是否正确刻画因变量与自变量之间的关系需要进行回归方程的显著性检验:
    假设检验:所有回归系数都为0,即 H : β 1 = β 2 = , . . . , = β p − 1 = 0 H:\beta_1 = \beta_2 = ,...,=\beta_{p-1} = 0 H:β1=β2=,...,=βp1=0

    拒绝原假设:至少有一个 β i \beta_i βi不等于0

    接受原假设:所有的 β i \beta_i βi都等于0,相对误差而言,所有自变量对因变量Y 的影响是不重要的。

    • 显著性检验

      m = p − 1 m = p-1 m=p1,检验假设H: β 1 = ⋯ = β p − 1 = 0 \beta_1 = \cdots=\beta_{p-1} = 0 β1==βp1=0的统计量为:
      F 回 = S S 回 / p − 1 R S S / n − p F_回 = \frac{{SS_回}/{p-1}}{{RSS}/{n-p}} F=RSS/npSS/p1
      当原假设成立时, F 回 F_回 F~ F p − 1 , n − p F_{p-1,n-p} Fp1,np

      对于某一置信度 α \alpha α F 回 > F p − 1 , n − p ( α ) F_回>F_{p-1,n-p}(\alpha) F>Fp1,np(α)时,拒绝原假设,否则就接受H

      image-20210730091549617

    • 回归系数的显著性检验

    • 异常点检验

    4.衡量多重回归模型优劣的标准

    4.1判定系数

    S S T = S S E + S S R { S S T = ∑ i = 1 n ( y i − y ‾ ) 2 S S E = ∑ i = 1 n ( y i − y ^ i ) 2 S S R = ∑ i = 1 n ( y ^ i − y ‾ ) 2 SST = SSE+SSR\begin{cases}SST = \sum\limits_{i=1}^{n}(y_i-\overline y)^2\\ SSE = \sum\limits_{i=1}^{n}(y_i-\hat y_i)^2\\ SSR = \sum\limits_{i=1}^{n}(\hat y_i-\overline y)^2\\\end{cases} SST=SSE+SSRSST=i=1n(yiy)2SSE=i=1n(yiy^i)2SSR=i=1n(y^iy)2

    另外我们定义了 R 2 R^2 R2
    R 2 = S S R S S T , 0 ≤ R 2 ≤ 1 R^2 = \frac{SSR}{SST},0≤R^2≤1 R2=SSTSSR0R21
    R 2 R^2 R2越接近1,表示X和Y有较大的相依关系

    image-20210730083123472 image-20210730083148081

    5.回归自变量的选择

    6.多重复共线性判断

    一些大型线性回归问题(自变量较多),最小二乘估计有时表现不理想 :

    • 有些回归系数的绝对值异常大
    • 回归系数的符号与实际意义相违背

    复共线性:回归自变量之间存在着近似线性关系。

    复共线性严重程度的判断

    ①方阵 X ′ X X'X XX条件数:最大特征值与最小特征值的比值
    k = λ 1 λ p k=\frac{\lambda_1}{\lambda_p} k=λpλ1
    有下面的判断标准:

    image-20210730093118643

    ②方差膨胀因子

    方差膨胀因子 𝐕𝐚𝐫𝐢𝐚𝐧𝐜𝐞 𝐈𝐧𝐟𝐥𝐚𝐭𝐢𝐨𝐧 𝐅𝐚𝐜𝐭𝐨𝐫, 𝐕𝐈𝐅 : 𝑽𝑰𝑭越大,表示共线性越严重。 𝑽𝑰𝑭一般不应该大于𝟓, 当𝑽𝑰𝑭>𝟏𝟎时,提示有严重的多重共线性存在

    • 解决方案

    (1) 增大样本含量,能部分解决复共线性问题。

    (2) 把多种自变量筛选的方法结合起来组成拟合模型。建立一个 “最优”的逐步回归方程,但同时丢失一部分可利用的信息

    (3) 从专业知识出发进行判断,去除专业上认为次要的,或者是 缺失值比较多、测量误差较大的共线性因子。

    (4) 进行主成分分析,提取公因子代替原变量进行回归分析。

    7.残差分析和回归诊断

    7.1残差分析

    目的:

    • 线性假设的检验
    • 所有水平的x的常数方差的检验
    • 正态分布的检验

    残差图分析

    • 通过残差图判断正态性

    残差: e ^ = y − X b ^ \hat e = y-X\hat b e^=yXb^,其中将$\hat e 称 为 残 差 ; 称为残差; ;\hat y = X\hat b , , \hat y_i$称为拟合值。

    以残差为纵坐标,以任何其他的量为横坐标的散点图,称为残差图。

    这里以拟合值 y ^ i \hat y_i y^i为横轴, r i r_i ri为纵轴的残差图,平面上的点应该落在宽度为4的水平带 − 2 ≤ r i ≤ 2 -2≤r_i≤2 2ri2的区域内,且不呈任何趋势。

    image-20210730095236567

    image-20210730095310071

    ,其中将$\hat e 称 为 残 差 ; 称为残差; ;\hat y = X\hat b , , \hat y_i$称为拟合值。

    以残差为纵坐标,以任何其他的量为横坐标的散点图,称为残差图。

    这里以拟合值 y ^ i \hat y_i y^i为横轴, r i r_i ri为纵轴的残差图,平面上的点应该落在宽度为4的水平带 − 2 ≤ r i ≤ 2 -2≤r_i≤2 2ri2的区域内,且不呈任何趋势。

    [外链图片转存中…(img-TaQX83rE-1627610395779)]

    [外链图片转存中…(img-8Xf0EFkx-1627610395781)]

    展开全文
  • 菜鸟的数学建模之路(二):线性与非线性回归

    万次阅读 多人点赞 2019-09-09 15:35:23
    根据回归方法中因变量的个数和回归函数的类型(线性或非线性),可将回归方法分为一元线性回归、一元非线性回归和多元回归。 简单粗暴理解:可以理解为找到一个从特征空间X到输出空间Y的最优的线性映射函数的过程。 ...

    回归分析

    根据回归方法中因变量的个数和回归函数的类型(线性或非线性),可将回归方法分为一元线性回归、一元非线性回归和多元回归。
    简单粗暴理解:可以理解为找到一个从特征空间X到输出空间Y的最优的线性映射函数的过程。
    (关于定义个人认为没必要去纠结,只要知道这个东西和会用就可以了)

    重点说明:关于线性与非线性回归,很多知识点我总结在了代码里面,每段代码开头会有很多说明,参数说明和知识点,建议看的时候多看看代码开头的说明

    一元线性回归

    对一元线性线性回归,简单粗暴理解就是给出一堆点,(x1,y1),(x2,y2),…(xn,yn),然后根据一元线性回归方程(固定的)求解β0,β1的过程,一元线性回归方程跟高中学的基本一样,只不过之前要人算,现在可以用matlab算。
    在这里插入图片描述

    还不懂的看案例(MATLAB数学建模方法与实践(第3版)第48页):
    在这里插入图片描述
    这是一个经典的一元回归问题,根据所给定的点,求解出回归系数的过程,下面给代码,重点看代码里面的知识点和参数说明,在每一段正式代码开头。

    % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % 
    % 回归分析就是处理变量之间的相关关系的一种数学方法。其解决问题的大致方法、步骤如下:
    %               (1)收集一组包含因变量和自变量的数据;
    %               (2)选定因变量和自变量之间的模型,即一个数学式子,利用数据按照最小二乘准则计算模型中的系数;
    %               (3)利用统计分析方法对不同的模型进行比较,找出与数据拟合得最好的模型;
    %               (4)判断得到的模型是否适合于这组数据;
    %               (5)利用模型对因变量作出预测或解释。
    % 
    % 一元线性回归方程:
    %                   y = β0 + β1*x;  β为回归系数
    %                       
    % 
    % matlab模块说明:
    % (1)plot(x,y,'r*');
    % (2)n = length(x),X=[ones(n,1),x'];
    % (3)Y = y';
    % (4)[b,bint,r,rint,s]=regress(Y,X,alpha);
    % 参数说明:plot(x,y,'r*'):绘制散点图
    %           X:由给定的x值决定,(X必须为列矩阵,所以如果x是行矩阵的话必须通过x'转置为列向量)
    %           Y:由给定的y值决定,(Y必须为列矩阵,所以如果y是行矩阵的话必须通过y'转置为列向量)
    %           alpha:显著性水平(缺省时默认0.05)
    %           b:相关系数的集合,一元线性回归,b有两个值,b(1,1) = β0,b(2,1) = β1
    %           bint: 回归系数的区间估计
    %           r :残差
    %           rint :残差置信区间
    %           s :用于检验回归模型的统计量,有四个数值:相关系数R^2、F值、与F对应的概率p,误差方差。
    %           注意:s通常用于做模型的检验,1.关系数R^2越接近1,说明回归方程越显著;
    %                                       2.p<alpha时,拒绝H0,回归模型成立
    %                                       3.F > F1-alpha(k,n-k-1)【通过该函数finv(1-,1, n-2)得到】时拒绝H0,F越大,说明回归方程越显著,其中F1-alpha(k,n-k-1)的值可查F分布表,或直接用MATLAB命令finv(1-,1, n-2)计算得到
    % (4)残差分析:rcoplot(r,rint)
    %             绘制出的图,标红的点为异常数据,可以去掉后再重新做计算一元线性回归分析
    % 
    % 
    % matlab实现:
    % (1)输入:
    %         x(1*n)矩阵存储x坐标
    %         y(1*n)矩阵存储y坐标
    % (2)输出:
    %         [b,bint,r,rint,s]=regress(Y,X,alpha);里面的所有参数,回归系数b构成一元回归模型
    %         残差图分析
    % 
    % 重点:如果出现错误;"错误使用 horzcat串联的矩阵的维度不一致"可能是X,Y那里的行矩阵和列矩阵的转化出现问题
    % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % 
    
    
    clc
    % 数据的存储
    % x = [3.5 5.3 5.1 5.8 4.2 6.0 6.8 5.5 3.1 7.2 4.5 4.9 8.0 6.5 6.6 3.7 6.2 7.0 4.0 4.5 5.9 5.6 4.8 3.9];
    % y = [33.2 40.3 38.7 46.8 41.4 37.5 39.0 40.7 30.1 52.9 38.2 31.8 43.3 44.1 42.5 33.6 34.2 48.0 38.0 35.9 40.4 36.8 45.2 35.1];
    
    x=[23.80,27.60,31.60,32.40,33.70,34.90,43.20,52.80,63.80,73.40];
    y=[41.4,51.8,61.70,67.90,68.70,77.50,95.90,137.40,155.0,175.0];	
    
    % 绘制散点图
    % plot(x,y,'r*');
    
    % 数据的长度
    n=length(x); 
    
    % X,Y制作
    X=[ones(n,1),x'];
    Y = y';
    
     % 线性分析
    [b,bint,r,rint,s]=regress(Y,X,0.05);
    b
    bint
    % r
    % rint
    s
    
    % 残差分析
    figure;
    rcoplot(r,rint);
    
    
    fprintf('拟合的函数为:f(x) = %d + %d*x\n',b(1,1),b(2,1));
    figure
    f = @(x) b(1,1) + b(2,1) * x;
    plot(x,y,'r*');
    hold on;
    ezplot(f, [0, 90]);             % 画出函数图像
    title('拟合的曲线');
    
    
    

    运行结果:
    在这里插入图片描述
    关于运行结果中的参数,b,bint,r,rint,s等在上面代码开头的参数说明那里,这个很重要,建议多看一下。

    多元线性回归

    在回归分析中,如果有两个或两个以上的自变量,就称为多元回归。对于多元线性回归,相对于一元线性回归只不过是回归系数变多了,自变量变多了,其他基本差不多。同样的道理,给出一堆点,不过这些点对应的自变量比较多(两个以上),求解偏回归系数的过程。
    在这里插入图片描述

    案例(MATLAB数学建模方法与实践(第3版)第52页):
    在这里插入图片描述
    在这里插入图片描述
    上面第二张图为书里面的解题思路(要是嫌烦可以不看),下面给代码:

    % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % 
    % 回归分析就是处理变量之间的相关关系的一种数学方法。其解决问题的大致方法、步骤如下:
    %               (1)收集一组包含因变量和自变量的数据;
    %               (2)通过绘制散点图,判断是否符合线性回归,决定用哪种线性回归 
    %               (3)选定因变量和自变量之间的模型,即一个数学式子,利用数据按照最小二乘准则计算模型中的系数;
    %               (4)利用统计分析方法对不同的模型进行比较,找出与数据拟合得最好的模型;
    %               (5)判断得到的模型是否适合于这组数据;
    %               (5)利用模型对因变量作出预测或解释。
    % 
    % 多元线性回归方程:y=b0+b1X1+b2X2+…+bnXn
    %                   b0为常数项
    %                   b1,b2,b3,…bn称为y对应于x1,x2,x3,…xn的偏回归系数
    %                       
    % 
    % matlab模块说明:
    % (1)subplot(1,3,1),plot(x1,y,'g*'),
    %    subplot(1,3,2),plot(x2,y,'k+'), 
    %    subplot(1,3,3),plot(x3,y,'ro'),
    %    ......
    % (2)n = length(x1),X=[ones(n,1),x1',x2',x3',...];
    % (3)Y = y';
    % (4)[b,bint,r,rint,s]=regress(Y,X,alpha);
    % 参数说明:subplot(1,3,1),plot(x1,y,'g*'):绘制散点图
    %           X:由给定的x值决定,(X必须为列矩阵,所以如果x是行矩阵的话必须通过x'转置为列向量)
    %           Y:由给定的y值决定,(Y必须为列矩阵,所以如果y是行矩阵的话必须通过y'转置为列向量)
    %           alpha:显著性水平(缺省时默认0.05)
    %           b:相关系数的集合,一元线性回归,b有两个值,b(1,1) = β0,b(2,1) = β1
    %           bint: 回归系数的区间估计
    %           r :残差
    %           rint :残差置信区间
    %           s :用于检验回归模型的统计量,有四个数值:相关系数R^2、F值、与F对应的概率p,误差方差。
    %           注意:s通常用于做模型的检验,1.关系数R^2越接近1,说明回归方程越显著;
    %                                       2.p<alpha时,拒绝H0,回归模型成立
    %                                       3.F > F1-alpha(k,n-k-1)【通过该函数finv(1-,1, n-2)得到】时拒绝H0,F越大,说明回归方程越显著,其中F1-alpha(k,n-k-1)的值可查F分布表,或直接用MATLAB命令finv(1-,1, n-2)计算得到
    % (4)残差分析:rcoplot(r,rint)
    %             绘制出的图,标红的点为异常数据,可以去掉后再重新做计算一元线性回归分析
    % 
    % 
    % matlab实现:
    % (1)输入:
    %         x1(1*n)矩阵存储x1坐标
    %         x2(1*n)矩阵存储x2坐标
    %         ......
    %         y1(1*n)矩阵存储y坐标
    %         y2(1*n)矩阵存储y2坐标
    %         ......
    % (2)输出:
    %         [b,bint,r,rint,s]=regress(Y,X,alpha);里面的所有参数,回归系数b构成多元回归模型
    %         残差图分析
    % 
    % 重点:如果出现错误;"错误使用 horzcat串联的矩阵的维度不一致"可能是X,Y那里的行矩阵和列矩阵的转化出现问题
    % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % 
    
    
    clc
    % 数据的存储
    x1 = [3.5 5.3 5.1 5.8 4.2 6.0 6.8 5.5 3.1 7.2 4.5 4.9 8.0 6.5 6.6 3.7 6.2 7.0 4.0 4.5 5.9 5.6 4.8 3.9];
    x2 = [9 20 18 33 31 13 25 30 5 47 25 11 23 35 39 21 7 40 35 23 33 27 34 15];
    x3 = [6.1 6.4 7.4 6.7 7.5 5.9 6.0 4.0 5.8 8.3 5.0 6.4 7.6 7.0 5.0 4.4 5.5 7.0 6.0 3.5 4.9 4.3 8.0 5.8];
    y = [33.2 40.3 38.7 46.8 41.4 37.5 39.0 40.7 30.1 52.9 38.2 31.8 43.3 44.1 42.5 33.6 34.2 48.0 38.0 35.9 40.4 36.8 45.2 35.1];
    
    % 绘制散点图
    subplot(1,3,1);plot(x1,y,'g*');
    subplot(1,3,2);plot(x2,y,'k+');
    subplot(1,3,3);plot(x3,y,'ro');
    
    % 数据的长度
    n=length(x1); 
    
    % X,Y制作
    X=[ones(n,1),x1',x2',x3'];
    Y = y';
    
    % 线性分析
    [b,bint,r,rint,s]=regress(Y,X,0.05);
    b
    bint
    % r
    % rint
    s
    
    % 残差分析
    rcoplot(r,rint);
    
    
    

    运行结果:
    在这里插入图片描述
    关于运行结果中的参数,b,bint,r,rint,s等在上面代码开头的参数说明那里,这个很重要,建议多看一下。

    一元非线性回归

    非线性回归是回归函数关于未知回归系数具有非线性结构的回归。简单理解就是非线性回归就是曲线回归。
    在做非线性回回归时,一般要先确定该非线性回归模型后在做非线性回归;解题思路是先将所给的数据点通过matlab绘图的方式画出来,再看看画出来的散点图比较符合哪个非线性回归模型就选择那个模型,最后再做非线性回归分析。

    关于模型,这里给大家整理了一些:

    在这里插入图片描述
    其他的非线性回归模型可以自己网上搜一下。

    案例(MATLAB数学建模方法与实践(第3版)第50页):
    在这里插入图片描述
    代码:

    % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % 
    % matlab模块介绍:
    %   [beta,r]=nlinfit(x,y,'fun1',beta0);
    %   beta即所要求的相关系数,
    %   r为残差
    %   x为数据的x轴坐标,n*m的矩阵存储,当x有多个时(x1,x2,x3...),每组x为一列,x1为1列,x2为第二列,x3为第三列...组成n*m的矩阵
    %   y为数据的y轴坐标,以列矩阵的方式存储
    %   fun1为函数模型的表达式,一般要先确定该模型后在做非线性回回归,该函数一般用单独的.m文件存放,或者自己定义
    %   beta0为多个相关系数初始值,该系数需要自己猜测,再从初值一步步迭代算出最终系数
    % 
    % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % 
    clc
    % 数据:
    x=[1.5, 4.5, 7.5,10.5,13.5,16.5,19.5,22.5,25.5]';
    y=[7.0,4.8,3.6,3.1,2.7,2.5,2.4,2.3,2.2]';  
    
    
    %% 对数模型拟合:f(x) = b(1) + b(2)*log(x)
    myfunc = inline('beta(1)+beta(2)*log(x)','beta','x');%三个参数分别为:函数模型(注意需要使用点除和点乘),待定系数,自变量
    
    beta0 = [0.2,0.2]';%待定系数的预估值,可固定不变
    
    % beta为求得的相关系数
    beta = nlinfit(x,y,myfunc,beta0);
    
    figure;
    plot(x,y,'.');
    hold on%保证同时显示
    
    x = 0:0.01:8;
    y = beta(1)+beta(2)*log(x);
    
    plot(x,y);
    title('对数模型拟合');
    
    %% 指数模型拟合:f(x) = b1*x^b2;
    % myfunc = inline('beta(1)*x.^beta(2)','beta','x');%三个参数分别为:函数模型(注意需要使用点除和点乘),待定系数,自变量
    % 
    % beta0 = [0.2,0.2]';%待定系数的预估值,可固定不变
    % 
    % % beta为求得的相关系数
    % beta = nlinfit(x,y,myfunc,beta0);
    % 
    % figure;
    % plot(x,y,'.');
    % hold on%保证同时显示
    % 
    % x = 0:0.01:8;
    % y = beta(1)*x.^beta(2);
    % 
    % plot(x,y);
    % title('指数模型拟合');
    
    
    

    上面两种模型只能单独运行,运行一个得注释另外一个。

    运行结果:
    在这里插入图片描述
    关于运行结果中的参数在上面代码开头的参数说明那里,这个很重要,建议多看一下。

    以上就是全部内容,如有错误的地方,望大家批评指正。

    展开全文
  • 关于如何使用Matlab构建多元非线性回归模型数学建模中有许多情况需要用到多远非线性回归
  • 1.因变量的分类 回归分析 三个重要作用:

    1.因变量的分类

    回归分析 三个重要作用:

    数据分类

    1.横截面数据:

    同一时间段内 不同对象的数据 

    2.时间序列数据

    同一对象不同时间内的数据

     3.面板数据

    横截面数据和时间序列数据的组合

    一元线性回归模型

    β是为了标新立异,和k、b无疑,u是扰动项 

     变量的内生性

     

    无偏性:估计量的期望值等于真实值

    一致性:估计值能依照概率收敛到真实值

    若ui:

     

    写论文时要强调 哪个是核心解释变量 哪个是控制变量

     回归系数的解释:

    取对数的经验法则:

    四种常见回归模型

     注:定性变量的理

     

     

    STATA的使用方法:

    stata的代码导出方法:

     定量数据:

    summarize 某某 

    定性数据:

    tabulate函数

     注:CUM是累计频率,gen是生成虚拟变量

    stata的回归

     注意最后用adj Rsquared 即调整后R方判断合理性

    cons:β0

    coef:就是各个系数,为βhaike(预测值)

     特别注意:

    此处应该验证的是β0本身是否为0,而不是β0haike(预测值)为0 

    假设显著异于0

    根据P的值确定假设正确与否

    回归结果保存在word里面:

     关于拟合优度R2的问题

     标准回归(加上β)

    例:

    看下表中显著不为0的自变量,即P小于0.1的

     就俩,找β绝对值大的,这里是团购价(0.154075)

    总体思路

    看Prob,建模是否合理

    求相关系数

    确定定量的变量

    确定定性变量

    整体回归,找到不用的定量变量

    找到显著的变量

    标准化和非标准化的差别

     不要对数据归一化!!!!!!!!!!!!!!!!!!!

    例:

     

     对以上数据进行描述性统计(excel和stata都可以)

     

     

    根据分析,内蒙古的借款成功率最低,但是内蒙古的违约率不是最低的,因此可能存在地域歧视问题,之后进行进一步分析 

     

     

    test:检验原假设是否成立 

    若扰动项存在异方差:

     解决方法:

     

     

     

     

     怀特检验(推荐)

     稳健误差:

     多重共线性

     

     若vif>10 存在多重共线性问题

    解决方案:

    ① 删除变量(不推荐)

    ② 逐步回归

     

     

    展开全文
  • 前面写过多元线性回归,它用于找到因变量于多个自变量之间的关系,比较适用于自变量和因变量呈线性的关系,但实际上很多自变量和因变量之间不完全是线性关系,这时候可以通过方法转化为线性的变量,再进行多元线性...
  • 数学建模|回归分析

    2022-02-08 14:16:58
    回归分析相关介绍
  • 数学建模-第四节 非线性回归模型的参数估计 (赵).zip
  • 数学建模(NO.11多元线性回归分析

    千次阅读 2021-01-13 20:45:06
    多元线性回归分析一.应用二.三个关键词三.目的四.回归模型分类五.数据分类1.三种数据2.模型与数据对应六.数据收集网址七.一元线性回归1.概念2.对“线性”理解1.纠正线性2. 预处理3.什么时候取对数?3.回归系数的解释...
  • 数学建模—多元回归分析

    千次阅读 2020-07-08 13:42:45
    title: 数学建模—多元回归分析 tags: 建模 EverydayOneCat 木星全貌???? 知识点 1.笔记 在了接受域中,接受X为0的假设,X对外没有比较显著的线性关系。 2.知识点补充 多元回归模型:含两个以上解释变量的回归...
  • 数学建模—一元回归分析

    千次阅读 2020-07-07 15:24:49
    灰色预测模型 回归分析预测 微分方程预测 马尔科夫预测 时间序列预测 小波分析预测 神经网络预测 混沌序列预测 向量自回归 联立方程组 相空间重构 局部线性加权法 2.评价与决策 模糊综合评判 主成分综合评价 层次...
  • 本文旨在能快速地用matlab实现基于最小二乘法的回归分析(虽然样例是一个预测问题、非线性回归的,但其 做题步骤 和 做题思想 和 线性回归是相似的 )。并简单地讲解了其原理。该系列文章是个人在参加2021年暑假国赛数...
  • Matlab一元非线性回归分析

    万次阅读 多人点赞 2018-12-27 21:11:11
    Matlab一元非线性回归分析分析步骤与一元线性回归分析的步骤类似: 大体分为以下几步: (1)绘制x,y的散点图,分析散点图的走势; (2)根据散点图的走势,确定回归方程的具体形式,特别是参数个数的设定和...
  • 一、一元线性回归 1-一元线性回归及最小二乘法 我们下面需要一下最小二乘法,使得误差Q最小,具体如下:​​​​​​​ 普通的最小二乘法,适用于连续的函数,因为要求导。 对于离散形式的数据,也可以使用...
  • 数学建模(二)
  • 数学建模:SPSS线性回归分析——逐步回归分析

    万次阅读 多人点赞 2021-08-01 19:42:48
    数学建模萌新学习笔记(实例:基于数据挖掘的财政分析和经济发展策略的模型) 针对变量关系研究方法,包括了相关关系研究以及影响关系研究,大致将常用分析方法归纳为:相关分析线性回归分析,Logistic回归分析,...
  • 示例:学习绩效的决定因素三、非线性回归问题 一、为什么要学习线性回归模型? 在科学研究和工程实践中,常常会遇到“黑箱问题”,即系统内部机理不明确,需要建立数学模型,通过观测数据,构建系统内部规律,达到...
  • 线性就是每个变量的指数都是1,而非线性就是至少有一个变量的指数不是1。...线性回归模型是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是...
  •   在统计学中, 非线性回归是回归分析的一种形式,其中观测数据由函数建模,该函数是模型参数的非线性组合并且取决于一个或多个独立变量。 通过逐次逼近的方法拟合数据。   在非线性回归中,形式的统计模型 , f...
  • 多元线性回归代码以及多元非线性回归代码数学建模
  • 数学建模回归分析加例题详解(MATLAB实现)

    万次阅读 多人点赞 2020-08-03 16:06:14
    一元线性回归 变量之间的关系大致可分为两大类: 确定性的关系:可以用精确的函数关系来表达。例如矩形面积S与边长a,b的关系。 确定性的关系:变量之间既互相联系...一元正态线性回归模型 只有两个变量的回归分析, 称
  • 数学建模之统计回归模型详解

    千次阅读 2022-03-17 11:43:37
    码字总结不易,老铁们来个三连:点赞、关注、评论 作者:[左手の明天] ...回归模型是用统计分析方法建立的最常用的一类模型 1、适用的范围:无法分析实际对象的因果关系,建立合乎确定的机理的数学模型,只可能根..
  • 在利用SPSS进行非线性回归分析的操作过程中,在给定函数模型的条件下,需要给函数赋初值,按照教程(单击“参数”按键,弹出“非线性回归:参数”对话框,设置参数的开始值a=13,b=-6.5,c=-1.5)进行操作时,发现开始...
  • 数学建模(MATLAB)| 第一篇:回归前言一元线性回归(Unary_linear_regression)一元非线性回归(Unary_nonlinear_regression)多元线性回归(Multiple_linear_regression)逐步回归(Stepwise_regression) ...
  • 主要用于数学建模(matlab)的学习,下载下来换上你的数据就可以用了。
  • 数学建模常用模型05 :多元回归模型

    万次阅读 多人点赞 2018-08-03 13:43:37
    所以在遇到有些无法用机理分析建立数学模型的时候,通常采取搜集大量数据的办法,基于对数据的统计分析去建立模型,其中用途最为广泛的一类随即模型就是统计回归模型回归模型确定的变量之间是相关关系,在大量的...
  • Python小白的数学建模课-12.非线性规划

    千次阅读 多人点赞 2021-07-01 20:15:58
    非线性规划是指目标函数或约束条件中包含非线性函数的规划问题,实际就是非线性最优化问题。 Scipy 工具包中的 minimize() 函数集成了多种求解线性规划问题的算法,可以处理边界条件和等式、不等式约束,对于常见的...
  • 线性规划和非线性规划的区别是: 1.1.目标或约束条件不同 线性规划目标和约束均为线性函数, 非线性规划目标或约束中存在非线性函数 1.2.最优解范围不同 如果最优解存在,线性规划只能存在可行域的边界上找到...
  • 讲述内容: 第一节 logistic回归 第二节 条件logistic回归 ...属于概率型非线性回归。 资料:1. 应变量为反映某现象发生与不发生的二值变量;2. 自变量宜全部或大部分为分类变量,可有少数数值变量。分类变量要数量化。
  • 7.1 单因素方差分析 7.1.1 方差分析概念 7.1.2 单因素方差分析的数据结构 ...7.3.2 一元线性回归模型 1.回归参数的估计 2.回归模型、参数的显著性检验 7.3.3 一元线性回归分析应用 多元线性回归分析

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,702
精华内容 5,080
关键字:

数学建模非线性回归模型

友情链接: mbuilder_p2dot2.zip