〖前人指路〗非线性、逐步回归,MATLAB实现-经管之家官网!

人大经济论坛-经管之家 收藏本站
您当前的位置> 会计>>

会计库

>>

〖前人指路〗非线性、逐步回归,MATLAB实现

〖前人指路〗非线性、逐步回归,MATLAB实现

发布:我的素质低 | 分类:会计库

关于本站

人大经济论坛-经管之家:分享大学、考研、论文、会计、留学、数据、经济学、金融学、管理学、统计学、博弈论、统计年鉴、行业分析包括等相关资源。
经管之家是国内活跃的在线教育咨询平台!

经管之家新媒体交易平台

提供"微信号、微博、抖音、快手、头条、小红书、百家号、企鹅号、UC号、一点资讯"等虚拟账号交易,真正实现买卖双方的共赢。【请点击这里访问】

提供微信号、微博、抖音、快手、头条、小红书、百家号、企鹅号、UC号、一点资讯等虚拟账号交易,真正实现买卖双方的共赢。【请点击这里访问】

(你Know与不Know,它就在那里)非线性回归:nlinfit+逐步回归:stepwise——本帖收录于〖素质文库〗(四大专题:〖前人指路〗、〖Onlyone〗、〖OnSpss〗、〖OnMatlab〗)一、非线性回归[beta,r,J]=nlinfit(x,y,'mod ...
免费学术公开课,扫码加入


(你Know与不Know,它就在那里)


非线性回归:nlinfit

+

逐步回归:stepwise




——本帖收录于〖素质文库〗


(四大专题:〖前人指路〗、〖Only one〗、〖On Spss〗、〖On Matlab〗)





一、非线性回归


  1. [beta,r,J]=nlinfit(x,y,'modelfun',beta0) 非线性回归系数的命令
  2. nlintool(x,y,'modelfun',beta0,alpha) 非线性回归GUI界面
复制代码

1、参数说明


beta:估计出的回归系数;

r:残差;

J:Jacobian矩阵;

x,y:输入数据x、y分别为矩阵和n维列向量,对一元非线性回归,x为n维列向量;

modelfun:M函数、匿名函数或inline函数,定义的非线性回归函数;

beta0:回归系数的初值;


2、预测和预测误差估计

[Y,DELTA]=nlpredci('modelfun', x,beta,r,J)

获取x处的预测值Y及预测值的显著性为1-alpha的置信区间Y±DELTA


3、实例演示说明

解:

(1)对将要拟合的非线性模型,建立M函数如下

  1. function yhat=modelfun(beta,x)
  2. %beta是需要回归的参数
  3. %x是提供的数据
  4. yhat=beta(1)*exp(beta(2)./x);
复制代码


(2)输入数据

  1. x=2:16;
  2. y=[6.42 8.20 9.58 9.5 9.7 10 9.93 9.99 10.49 10.59 10.60 10.80 10.60 10.90 10.76];
  3. beta0=[8 2]';
复制代码


(3)求回归系数

  1. [beta,r ,J]=nlinfit(x',y',@modelfun,beta0);
  2. beta
  3. beta =
  4. 11.6036
  5. -1.0641
复制代码


即得回归模型为


(4)预测及作图


  1. [YY,delta]=nlpredci('modelfun',x',beta,r ,J);
  2. plot(x,y,'k+',x,YY,'r')
复制代码



二、逐步回归


逐步回归的命令


stepwise(x,y,inmodel,alpha)根据数据进行分步回归

stepwise 直接调出分步回归GUI界面

输入参数说明

x:自变量数据, 阶矩阵;

y:因变量数据, 阶矩阵;

inmodel:矩阵的列数的指标,给出初始模型中包括的子集(缺省时设定为全部自变量);

alpha:显著性水平(缺省时为0.5);


2、实例演示分析


水泥凝固时放出的热量y与水泥中4种化学成分x1、x2、x3、 x4有关,今测得一组数据如下,试用逐步回归法确定一个线性模型


1、数据输入

  1. x1=[7 1 11 11 7 11 3 1 2 21 1 11 10]';
  2. x2=[26 29 56 31 52 55 71 31 54 47 40 66 68]';
  3. x3=[6 15 8 8 6 9 17 22 18 4 23 9 8]';
  4. x4=[60 52 20 47 33 22 6 44 22 26 34 12 12]';
  5. y=[78.5 74.3 104.3 87.6 95.9 109.2 102.7 72.5 93.1 115.9 83.8 113.3 109.4]';
  6. x=[x1 x2 x3 x4];
复制代码

2、逐步回归


①先在初始模型中取全部自变量


  1. stepwise(x,y)
复制代码




——MATLAB技术论坛




Fantuanxiaot 坛友 补充的非线性回归中的稳健回归!!


函数

  1. function S=Nonlinearmodel(beta,x)
  2. S=beta(1)*exp(beta(2)*x);
复制代码


主程序

  1. x=[10:0.5:20]';
  2. y=2*exp(0.5*x)+normrnd(0,1,21,1);
  3. beta0=[1 1]';
  4. options=statset('MaxIter',200,'Robust','on','WgtFun','huber');
  5. [beta,resid,jacobimatrix,covbeta,MSE]=nlinfit(x,y,'Nonlinearmodel',beta0,options);%非线性稳健回归
  6. [yy,delta]=nlpredci('Nonlinearmodel',x,beta,resid,'jacobian',jacobimatrix);
  7. ci=nlparci(beta,resid,jacobimatrix);
  8. nlintool(x,y,'Nonlinearmodel',beta0,0.05);
复制代码


基于内联函数的例子

  1. [free]x=poissrnd(2,30,1);
  2. y=poissrnd(3,30,1);
  3. X=[x y];
  4. Z=2*exp(x+y)+rand(30,1);
  5. beta0=[1.6 1.2 1.4];
  6. EXPFUN=inline('b(1)*exp(b(2)*G(:,1)+b(3)*G(:,2))','b','G');
  7. options=statset('MaxIter',200,'Robust','on','WgtFun','huber');
  8. [beta,resid,jacobimatrix,covbeta,MSE]=nlinfit(X,Z,EXPFUN,beta0,options);
  9. ci=nlparci(beta,resid,jacobimatrix);
  10. [yy,delta]=nlpredci(EXPFUN,X,beta,resid,'jacobian',jacobimatrix);[/free]
复制代码




「经管之家」APP:经管人学习、答疑、交友,就上经管之家!
免流量费下载资料----在经管之家app可以下载论坛上的所有资源,并且不额外收取下载高峰期的论坛币。
涵盖所有经管领域的优秀内容----覆盖经济、管理、金融投资、计量统计、数据分析、国贸、财会等专业的学习宝库,各类资料应有尽有。
来自五湖四海的经管达人----已经有上千万的经管人来到这里,你可以找到任何学科方向、有共同话题的朋友。
经管之家(原人大经济论坛),跨越高校的围墙,带你走进经管知识的新世界。
扫描下方二维码下载并注册APP
本文关键词:

本文论坛网址:https://bbs.pinggu.org/thread-3244497-1-1.html

人气文章

1.凡人大经济论坛-经管之家转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。