数学建模学习笔记(六)多元回归分析算法(matlab)

2022-06-14 09:40:45 浏览数 (1)

1、多元线性回归 形式:

回归系数的检验 (1)F检验

(2)r检验

matlab语言:

代码语言:javascript复制
[b,bint,r,rint,stats]=regress(Y,X,alpha)

b:回归系数点估计 bint:回归系数区间估计 r:残差 rint:置信区间 stats:用于检验的统计量,有三个数值,相关系数r^2,F值,与F对应的概率p alpha:显著性水平(缺省时为0.05)

说明:相关系数r^2越接近1,说明回归方程越显著; F越大,说明回归方程越显著 与F对应的概率p<a(显著性水平),回归模型成立 画出残差及其置信区间:

代码语言:javascript复制
rcoplot(r,rint)

看个例子:

2、一元多项式回归 形式:

确定多项式系数:

代码语言:javascript复制
[p,S]=polyfit(x,y,m)

p:系数,即a1,a2,a3,…a(m 1) S:矩阵,用来估计预测误差

预测:

代码语言:javascript复制
Y=polyval(p,x)

求polyfit所得的回归多项式在x处的预测值Y

预测误差估计:

代码语言:javascript复制
[Y,DELTA]=polyconf(p,x,S,alpha)

求polyfit所得回归多项式在x处的预测值Y及预测值的显著性为1-alpha的置信区间DELTA alpha缺省时为0.5

3、多元二项式回归 命令:

代码语言:javascript复制
rstool(x,y,'model',alpha)

x:n*m矩阵 y:n维列向量 alpha:缺省时0.05 model:(默认线性) linear(线性),purequadratic(纯二次),interaction(交叉),quadratic(完全二次)

使用示例:

在左下方下拉式菜单选”all“,则beta,rmse和residuals都传送到MATLAB工作区中

4、非线性回归 命令确定回归系数:

代码语言:javascript复制
[beta,r,J]=nlinfit(x,y,'model',beta0)

beta:估计出的回归系数 r:残差 J:Jacobi矩阵 x:n*m矩阵 y:n维列向量 model:M文件定义的非线性函数 beta0:回归系数的初值

非线性回归命令:

代码语言:javascript复制
nlintool(x,y,'model',beta0,alpha)

预测和预测误差分析:

代码语言:javascript复制
[Y,DELTA]=nlpredci('model',x,beta,r,J)

求得回归函数在x处的预测值Y 预测值的显著性水平为1-alpha的置信区间(Y-DELTA,Y DELTA)

示例:

5、逐步回归 命令:

代码语言:javascript复制
stepwise(x,y,inmodel,alpha)

(比较少见,暂不作详细记录)

0 人点赞