最新Matlab与统计分析

  • 格式:doc
  • 大小:317.50 KB
  • 文档页数:10

下载文档原格式

  / 10
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

M a t l a b与统计分析

Matlab 与统计分析

一、 回归分析

1、多元线性回归

1.1 命令 regress( ), 实现多元线性回归,调用格式为

[b,bint,r,rint,stats]=regress(y,x,alpha)

其中因变量数据向量Y 和自变量数据矩阵x 按以下排列方式输人

⎥⎥⎥⎥⎦

⎤⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=n nk n n k k y y y y x x x x x x x x x x 21212222111211,1

11 对一元线性回归,取k=1即可。alpha 为显著性水平(缺省时设定为0.05),输出向量b ,bint 为回归系数估计值和它们的置信区间,r ,rint 为残差及其置信区间,stats 是用于检验回归模型的统计量,有三个数值,第一个是2

R , 其中R 是相关系数,第二个是F 统计量值,第三个是与统计量F 对应的概率P ,当α

注:1、两组数据的相关系数在概率论的标准定义是:

R= E{(x - E{x}) * (y - E{y})} / (sqrt({(x - E{x})^2) * sqrt({(y - E{y})^2))

E{}求取期望值。也就是两组数据协方差与两者标准差乘积的商。如果|R|=1说明两者相关,R=0说明两者不相关.

1、F 是方差分析中的一个指标,一般方差分析是比较组间差异的。F 值越大,P 值越小,表示结果越可靠.

1.2 命令 rcoplot(r ,rint),画出残差及其置信区间.

1.3 实例 1

已知某胡八年来湖水中COD 浓度实测值(v)与影响因素湖区工业产值(x1)、总人口数(x2 )、捕鱼量(x3 )、降水量( x4)资料,建立污染物Y 的水质分析模型.

Step 1 输入数据

x1=[1.376, 1.375, 1.387, 1.401, 1.412, 1.428, 1.445, 1.477];

x2=[0.450,0.475,0.485,0.500,0.535,0.545,0.550,0.575];

x3=[2.170,2.554,2.676,2.713,2.823,3.088,3.122,3.262];

x4=[0.8922, 1.1610,0.5346,0.9589, 1.0239, 1.0499,1.1065, 1.1387];

Y=[5.19, 5.30,5.60,5.82,6.00,6.06,6.45,6.95];

Step 2 保存数据(以数据文件.mat 形式保存,便于以后调用)

save data x1 x2 x3 x4 y

load data %取出数据

Step 3 执行回归命令

x=[ones(8,1),x1,x2,x3,x4];

[b,bint,r,rint,stats]=regress(y,x)

得到结果:

b=(-16.5283, 15.7206, 2.0327.-0.2106,-0.1991)'

stats=(0.9908,80.9530,0.0022)'

Y= -16.5283+15.7206x1+2.0327x2-0.2106xl+0.1991x4

2

R=0.9908, F=80.9530,P=0.0022

2、非线性回归

2.1 命令 nlinfit( ) 实现非线性回归,调用格式为

[beta,r,J]=nlinfit(x,y,‘model’,beta0)

其中,输入数据x,y分别为n×m矩阵和n维列向量,对一元非线性回归,x为n维列向量;model是事先用m-文件定义的非线性函数,beta0是回归系数的初值.beta是估计出的回归系数,r是残差,J是Jacobian矩阵,它们是估计预测误差需要的数据.

2.2 命令 nlpredci( ) 预测和预测误差的估计,调用格式为

[y,delta]=npredci('model',x,beta,r,j)

2.3 实例 2

对实例1中COD 浓度实测值(Y),建立时序预测模型,这里选用logistic 模型,即

kt

be a y -+=

1

Step 1 建立非线性函数

对所要拟合的非线性模型建立m-文件model.m 如下

function yhat=model(beta,t)

yhat=beta(1)./(1+beta(2)*exp(-beta(3)*t))

Step 2 输入数据

t= 1:8

load data y(在data .mat 中取出数据y)

beta0=[50,10,1]’

Step 3 求回归系数

[beta ,r ,J]=nlinfit(t ,Y ,‘model ’, beta0)

得结果:

beta=(56.1157,10.4006,0.0445)’

0445

.04006.1011157.56-+=

e y

Step 4 预测及作图

[YY,delta]=nlpredci(‘model ’,x',beta,r ,J);

plot(x,y,'k+',x,YY,'r')

3、逐步回归

逐步回归的命令是stepwise , 它提供了一个交互式画面.通过此工具可自由地选择变量,进行统计分析.调用格式为:

stepwise (x ,y ,inmodel ,alpha )