精华内容
下载资源
问答
  • MATLAB一元线性回归分析

    千次阅读 2019-09-25 07:02:00
    MATLAB一元线性回归分析应用举例 作者:凯鲁嘎吉 - 博客园http://www.cnblogs.com/kailugaji/ huigui.m function [b,bint,r,rint,states,sima2,p,y0,zxqj]=huigui(x,y,x0) %x –p元线性模型自变量的n个观测值...

    MATLAB一元线性回归分析应用举例

    作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/

    huigui.m

    function [b,bint,r,rint,states,sima2,p,y0,zxqj]=huigui(x,y,x0)
    %x –p元线性模型自变量的n个观测值的n×p矩阵,y -p元线性模型因变量的n个观测值的n×1向量,x0为预测值的横坐标
    %b -模型系数β的最小二乘估计值,bint -模型系数β的100(1-alpha)%置信区间,r -模型拟合残差,rint -模型拟合残差的100(1-alpha)%置信区间.
    %stats -包含R^2统计量、方差分析的F统计量的值、方差分析的显著性概率p值和sigama^2的估计值,y0为预测值纵坐标
    format short;
    x1=[ones(length(x),1),x];
    [b,bint,r,rint,states]=regress(y,x1);
    sima2=(vpa(states(4),20));      
    p=vpa(states(3),20);   %检验的p值   p<0.01,回归方程高度显著;0.0.1<=p<0.05,回归方程显著;p>=0.05,回归方程不显著
    y0=b(1)+b(2)*x0;
    s=sqrt(states(4));
    zxqj=[y0-2*s,y0+2*s];   %置信区间
    plot(x,y,'.'),lsline
    %rcoplot(r,rint)   %残差分析

    结果:

    >> x=[1,2,3,4,5,6,7,8,9]';
    >> y=[2,4,6,8,10,11,14,16,18]';
    >> x0=10;
    >> [b,bint,r,rint,states,sima2,p,y0,zxqj]=huigui(x,y,x0)
    
    b =
    
       -0.0278
        1.9833
    
    bint =
    
       -0.6342    0.5786
        1.8756    2.0911
    
    r =
    
        0.0444
        0.0611
        0.0778
        0.0944
        0.1111
       -0.8722
        0.1444
        0.1611
        0.1778
    
    rint =
    
       -0.6654    0.7543
       -0.7116    0.8338
       -0.7363    0.8918
       -0.7426    0.9315
       -0.7321    0.9543
       -0.8722   -0.8722
       -0.6611    0.9500
       -0.5981    0.9203
       -0.5124    0.8679
    
    states =
    
       1.0e+03 *
    
        0.0010    1.8941    0.0000    0.0001
     
    sima2 =
     
    0.12460317460317460317
    
    p =
     
    0.00000000088276169535500757861
     
    y0 =
    
       19.8056
    
    zxqj =
    
       19.0996   20.5115

    残差图:

     

    转载于:https://www.cnblogs.com/kailugaji/p/9004809.html

    展开全文
  • MATLAB 一元线性回归

    2018-04-14 18:38:14
    MATLAB 一元线性回归 含例题数据,和可运行的MATLAB代码
  • 基于MATLAB一元线性回归分析.pdf
  • Matlab中实际上有多个函数可以实现回归分析的功能,如regress,polyfit,lsqcurvefit等。这里简单总结一下polyfit函数的用法:Matlab中实际上有多个函数可以实现回归分析的功能,如regress,polyfit,lsqcurvefit等...

    Matlab中实际上有多个函数可以实现回归分析的功能,如regress,polyfit,lsqcurvefit等。这里简单总结一下polyfit函数的用法:

    Matlab中实际上有多个函数可以实现回归分析的功能,如regress,polyfit,lsqcurvefit等。这里简单总结一下polyfit函数的用法:

    polyfit函数基于最小二乘法,使用的基本格式为:

    p = polyfit(x,y,n)

    [p,S] = polyfit(x,y,n)

    [p,S,mu] = polyfit(x,y,n)

    其中每个命令中的n为多项式拟合的次数,当n为1时,即为一次拟合(很多情况下等价于一元线性回归)。p是n+1维参数向量p(1),p(2)….那么拟合后对应的多项式即为p(1)*x^n + p(2)*x^(n-1) +…+ p(n)*x + p(n+1)。S是规模为1×1的结构数组,包括R(系数矩阵的QR分解的上三角阵),df(自由度),normr(拟合误差平方和的算术平方根)。

    求出p之后我们需要作出拟合函数,那么只需要使用命令:

    f=polyval(p,x)

    然后plot出x和f即可。另外需要强调一点的是,往往需要在回归分析的时候给出相关系数(correlation coefficient),,实际上也很简单,我们可以使用命令:

    r=corrcoef(x,y);

    这样得到的r即为相关系数矩阵,其中r(1,2)=r(2,1)为相关系数,其值在[-1,1]之间,1表示最大程度的正相关,-1表示最大程度的负相关。相关系数绝对值越靠近1,线性相关性质越好,根据数据描点画出来的函数-自变量图线越趋近于一条平直线,拟合的直线与描点所得图线也更相近。

    另外,转载两条使用polyfit的注意事项:

    1. 使用polyfit命令进行多项式拟合时要注意的是,向量x(其中元素作为自变量)中不重复的元素个数m,和拟合阶数k需要满足m>=k+1.简单分析:k阶拟合需要确定k+1个未知参数(如1阶拟合y = ax + b需要确定a和b两个参数),故而至少需要k+1个方程,故而需要至少k+1个不同的已知数对(x,y),由于函数中x只能对应一个y,故而需要至少k+1个不同的x。

    2. polyfit只适合于形如y = a[k]*x^k + a[k-1]*x^(k-1) + …. + a[1]*x + a[0]的完全的一元多项式的数据拟合。

    最后贴一张很简单的拟合结果图:

    c73258ae0c5781d25c5952ac0ebe23ba.png

    推荐阅读:

    Matlab与C/C++联合编程之从Matlab调用C/C++代码

    二分类SVM方法Matlab实现

    logo.gif

    展开全文
  • Matlab一元线性回归分析

    万次阅读 2018-12-27 21:11:11
    Matlab一元非线性回归分析的分析步骤与一元线性回归分析的步骤类似: 大体分为以下几步: (1)绘制x,y的散点图,分析散点图的走势; (2)根据散点图的走势,确定回归方程的具体形式,特别是参数个数的设定和...

    Matlab一元非线性回归分析的分析步骤与一元线性回归分析的步骤类似:

    大体分为以下几步:

    (1)绘制x,y的散点图,分析散点图的走势;

    (2)根据散点图的走势,确定回归方程的具体形式,特别是参数个数的设定和设定初始值;

    (3)调用NonLinearModel的fit方法进行模型拟合;

    (4)模型改进,去除异常值的操作;

    (5)进行残差分析,验证模型。

    下面以某商品的数量与定价为例,进行实例展示;

    (1)绘制x,y的散点图,分析散点图的走势;

    [data,y0]=xlsread('C:\Users\箫韵\Desktop\Matlab数理与统计分析\exdata\test1',3);
    x=data(:,2);%提取列数据自变量数据
    y=data(:,3);%提取列数据因变量数据
    figure;
    plot(x,y,'ko');%绘制散点图
    xlabel('数量');
    ylabel('价格');

                                             图1 散点图

    (2)根据散点图的走势,确定回归方程的具体形式,特别是参数个数的设定和设定初始值;

    %建立一元非线性回归方程
    % yi=f(xi;b1,b2)+ai
    % ai~N(0,aa^2),i=1,2,..n
    price=@(beta,x)beta(1)./(1-beta(2)*x);%根据散点图趋势建立方程f(x)=b1./(1-b2*x),方程形式并不唯一。
    beta0=[120,0.008];%beta0为b1,b2的初始值。根据x的取值范围,x在22与40之间,y>0,故需b2<0.25。

                                %根据y值是84到280的不等分布,主要集中在110到130,故b1取值120较合适,根据方程,b2取0.008即可。
    opt=statset;%创建结构体变量类
    opt.Robust='on';%开启回归稳健性方法
    nlm1=NonLinearModel.fit(x,y,price,beta0,'Options',opt);
    %y=41.459./(1-0.02213*x)

    (3)调用NonLinearModel的fit方法进行模型拟合;

    xnew=linspace(20,40,50)';%取50个x的值在20到40之间
    ynew=nlm1.predict(xnew);%进行ynew预测
    figure;
    plot(x,y,'ko');
    hold on;
    plot(xnew,ynew,'linewidth',2.5);
    xlabel('数量');
    ylabel('价格');
    legend('原始数据散点','非线性回归曲线');

                                                  图2 模型拟合效果

    (4)模型改进,去除异常值的操作;

    异常值的诊断。NonlinearModel类对象的Residuals属性值中有标准化残差和学生化残差值。这里通过学生化残差查询异常值
    Res2=nlm1.Residuals;
    Res_Stu2=Res2.Studentized;
    id2=find(abs(Res_Stu2)>2);
    %properties(nlm1);%可以查询nlm1的属性

    %去除异常值重新构建回归模型
    nlm2=NonLinearModel.fit(x,y,price,beta0,'Exclude',id2,'options',opt);
    %y=41.394./(1-0.22195*x)

    xnew=linspace(20,40,50)';
    y1=nlm1.predict(xnew);
    y2=nlm2.predict(xnew);
    figure;
    plot(x,y,'ko');
    hold on;
    plot(xnew,y1,'r--','linewidth',2);
    plot(xnew,y2,'b.','linewidth',2);
    xlabel('数量');
    ylabel('价格');
    legend('原始数据散点','回归曲线','去除异常值后的回归曲线');

                               图3 去除异常值与未去除异常值的拟合对比

    (5)进行残差分析,验证模型。

    调用的是NonLinearModel类中的plotResiduals方法。残差分析有比较多的方法,这里以残差直方图和残差正态概率图为例。

    %回归诊断
    figure;
    subplot(1,2,1);
    nlm1.plotResiduals('histogram');
    title('(a)残差直方图');
    xlabel('残差r');
    ylabel('f(r)');
    subplot(1,2,2);
    nlm1.plotResiduals('probability');
    title('(b)残差正态概率图');
    xlabel('残差');
    ylabel('概率');

                                                 图4 残差直方图和残差正态概率图

    原始数据
    order数量价格
    12589
    228108
    326115
    42399
    526109
    632124
    735210
    830126
    934132
    1029110
    1133135
    1236226
    1334136
    1436220
    1536208
    1630125
    1732146
    1830129
    1935140
    2029116
    2131123
    2232126
    2328135
    2436208
    2540240
    2628125
    2729113
    2836208
    2932135
    3038267
    3140225
    3238278
    3328118
    3432124
    3534146
    3636208
    3730111
    3829115
    3936208
    4029123
    4125110
    4229135
    4326123
    442399
    4526125
    3635180
    3735178
    3835175
    3935176
    4035180
    4135178
    4234175
    4335168
    4435167
    4534179
    4331129
    4431121
    4531125
    展开全文
  • Matlab实现的一元线性回归,注释很详细
  • matlab初学者提供一份很好的学习教程,对matlab的学习有很大帮助。本人也是通过学习这个来学习matlab的。
  • MATLAB一元线性回归

    万次阅读 多人点赞 2019-05-17 19:45:13
    实际问题引入:社会商品销售总额与职工工资总额,建立其回归模型 不妨设x为职工工资总额,y为商品销售总额,建立x—y模型 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...

    实际问题引入:社会商品销售总额与职工工资总额,建立其回归模型
    不妨设x为职工工资总额,y为商品销售总额,建立x—y模型

    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];
    figure
    plot(x,y,'r*') %作散点图(制定横纵坐标)
    xlabel('x(职工工资总额)','fontsize',12)
    ylabel('y(商品零售总额)','fontsize',12)
    set(gca,'linewidth',2)
    %采用最小二乘拟合
    Lxx=sum((x-mean(x)).^2)
    Lxy=sum((x-mean(x)).*(y-mean(y)));
    b1=Lxy/Lxx;
    b0=mean(y)-b1*mean(x);
    y1=b1*x+b0;
    hold on
    plot(x,y1,'linewidth',2);
    m2=LinearModel.fit(x,y)%函数进行线性回归
    

    在这里插入图片描述

    方法二:regress函数进行回归
    Y=y';
    X=[ones(size(x,2),1),x'];
    [b,bint,r,rint,s]=regress(Y,X)
    
    %matlab给出的答案
    b =
    -23.5493
        2.7991
        就是说y= 2.7991x-23.5493
    

    参考自MATLAB常用的数据建模方法

    展开全文
  • matlab一元线性回归及多元线性回归方程

    万次阅读 多人点赞 2019-08-07 16:15:15
    %%1、bint表示回归系数区间估计 %2、r表示残差 %3、rint代表置信区间 %4、stas表示用于检验回归模型的统计量,有三个数值 r^2 F 与F对应的概率P 例如p<0.05 残差95% % r^2越接近于1,回归方程越显著 %alpha表示...
  • 女,出生于 1998 年 10 月 9 日,来自江苏省宿迁市,汉族,本科生在读,会计学,E-mail:2209282216@qq.com·43· 工程科技研究DOI:10.19551/j.cnki.issn1672-9129.2019.04.016基于MATLAB一元线性回归分析仲迎娣...
  • matlab实现一元线性回归和多元线性回归

    万次阅读 多人点赞 2018-01-30 10:58:46
    回归分析中,如果有两个或两个以上的自变量,就称为多元回归。事实上,一种现象常常是与多个因素相联系的,由多个自变量的最优组合共同来预测或估计因变量,比只用一个自变量进行预测或估计更有效,更符合实际。 ...
  • 利用Matlab进行线性回归分析(1)

    千次阅读 2020-12-22 11:30:04
    利用Matlab进行线性回归分析 利用 Matlab 进行线性回归分析 回归分析是处理两个及两个以上变量间线性依存关系的统计方法。可以通过软件 Matlab 实现。 1. 利用 Matlab 软件实现 在 Matlab 中,可以直接调用命令...
  • MATLAB一元线性回归和多元线性回归1.一元线性回归2.多元线性回归2.1数据说明2.2程序运行结果 1.一元线性回归 直接看代码,目标是建立yyy和xxx的函数关系,即求y=kx+by=kx+by=kx+b中的kkk和bbb,kkk和bbb都是实数...
  • MATLAB源码集锦-一元线性回归代码
  • 剔除异常数据,重新调用regress函数作一元线性回归 1. 读取数据,绘制散点图 ClimateData = xlsread('examp08_01.xls'); % 从Excel文件读取数据 x = ClimateData(:, 1); % 提取ClimateData的第1列,即年平均气温...
  • 基于matlab一元线性回归原理

    千次阅读 2020-04-22 15:42:38
    一元线性回归分析是在排除其他影响因素,分析某一个因素(自变量:X)是如何影响另外一个事物(因变量:Y)的过程,所进行的分析是比较理想化的。对于一元线性回归来说,可以看成Y的值是随着X的值变化,每一个实际的...
  • Matlab中进行一元线性回归分析的方法

    万次阅读 多人点赞 2013-05-27 12:41:01
    Matlab中实际上有多个函数可以实现回归分析的功能,如regress,polyfit,lsqcurvefit等。这里简单总结一下polyfit函数的用法: polyfit函数基于最小二乘法,使用的基本格式为: p = polyfit(x,y,n) [p,S] = ...
  • 使用MATLAB进行线性回归分析

    万次阅读 多人点赞 2019-10-31 14:50:19
    简介 变量之间的关系可以分为两类:一类叫确定性关系,也叫函数关系,其特征是:一个变量...回归分析就是处理变量之间的相关关系的一种数学方法。其解决问题的大致方法、步骤如下: 收集一组包含因变量和自变量的...
  • 回归分析(Regression Analysis)是研究一个变量Y与其他若干变量X之间相互关系的一种数学工具。它是在一组试验或观测数据的基础上,寻找被随机性掩盖的变量之间的依存关系。粗略的将,可以理解为用一种确定的函数关系...
  • 主要用于数学建模(matlab)的学习,下载下来换上你的数据就可以用了。
  • 一元线性回归clear;clc; %一元线性回归 x=[143,145,146,147,149,150,153,154,155,156,157,158,159,160,162,164]; y=[88,85,88,91,92,93,93,95,96,98,97,96,98,99,100,102]; X=[ones(length(y),1),x']; Y=y'; %b 参数...
  • Matlab线性回归

    2015-10-14 14:47:44
    Matlab线性回归的小程序和例子。
  • 包括:基于矩阵运算计算回归系数并添加趋势线,基于多项式拟合计算回归系数并添加趋势线,计算用于检验的主要统计量,借助回归分析程序包计算回归系数并估计检验统计量等几个方面的MATLAB程序源代码。
  • matlab一元线性回归

    千次阅读 2019-05-17 21:12:45
    那么非线性回归中还有一种就是指数形式非线性回归 m2='y~b1*x^b2'; nonlinfit2=fitnlm(x,y,m2,[1;1]) b1=nonlinfit2.Coefficients.Estimate(1,1); b2=nonlinfit2.Coefficients.Estimate(2,1); Y2=b1*x.^b2; hold on ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,204
精华内容 481
关键字:

matlab一元线性回归分析

matlab 订阅