Matlab与统计分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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,111
对一元线性回归,取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
2R =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 )
其中x 是自变量数据,是m n ⨯阶矩阵,y 是因变量数据,1⨯n 阶矩阵,inmodel 是矩阵的列数指标(给出初始模型中包括的子集(缺省时设定为全部自变量),alpha 是显著性水平(缺省时为0.5). 运行stepwise 命令时产生三个图形窗口:Stepwise Plot ,Stepwise Table ,Stepwise History.在Stepwise Plot 窗口,显示出各项的回归系数及其置信区