回归分析简介
回归分析(regression analysis)是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。
如果只有一个自变量,则称之为一元回归分析;如果具有多个自变量,则称之为多元回归分析。
如果自变量与因变量之间的函数关系是线性函数,则称之为线性回归分析,否则称之为非线性回归分析。
线性回归的函数表达式一般表示为:
对于非线性回归分析,需要根据实际情况来确定函数类型,再根据已知的数据来估计非线性函数中的参数。常见的回归函数有幂函数、指数函数、对数函数、S型曲线函数,S型曲线函数中常见的是Logistic回归模型,其函数表达式为:
对于非线性回归,往往需要根据已知的数据绘制散点图,以此分析出数据的变化趋势,进而确定回归模型。
基于Matlab的非线性回归分析
1.函数nlinfit语法:
[beta,r,j] = nlinfit(x,y,@function,b0)
x表示自变量
y表示因变量
function表示回归函数的函数名
b0表示回归函数中参数的初值
beta表示回归参数的最优值
r表示残差
j表示雅克比矩阵
2.案例:
现有某地区1971—2000年的人口数据,试对该地区的人口变化进行曲线拟合。
Matlab实现如下:
1)首先绘制散点图如下 :
根据此图,可以 看出两组数据走势满足Logistic模型,因此选择Logistic回归模型。
2)新建一函数文件,文件名为ModelFunction.m,文件内容如下:
function y = ModelFunction( beta, x )
y = 1 ./ (beta(1) + beta(2) * exp(-x));
3)再创建一个新的M文件,文件名为TestData.m,其内容如下:
x=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30];
y=[33815 33981 34004 34165 34212 34327 34344 34458 34498 34476 34483 34488 34513 34497 34511 34520 34507 34509 34521 34513 34515 34517 34519 34519 34521 34521 34523 34525 34525 34527];
b0=[0.0001 0.00001];
[ beta, r, j ] = nlinfit( x, y, @ModelFunction, b0 )
4)运行结果如下:
beta的输出值为
beta =
1.0e-004 *
0.2902 0.0184
即回归分析方程为:
最后执行命令:plot( x, ModelFunction( beta, x ) ),得到拟合之后的结果:
作者:YangYF