fkjj.net
当前位置:首页 >> mAtlAB多元线性回归实例 >>

mAtlAB多元线性回归实例

>> n=8;m=4;>> y=[144 215 138 145 162 142 158 154];>> x1=[22 34 20.5 31 29 25 26 24.5];>> x2=[1 0 1 0 1 1 0 0];>> x3=[40 30 33 41 39.5 36 38 29.5];>> x4=[100 101 152 133 195 140 155 130];>> X=[ones(n,1),x1',x2',x3',x4'];>> [b,bint,r,rint,s]=regress(y',X);>> s2=sum(r.^2)/(n-m-1);>> b,bint,s,s2求残差加上>> rcoplot(r,rint)就行、

matlab中统计工具箱用命令regress实现多元线性回归,用的方法是最小二乘法,基本用法是:b=regress(y,x) y,x是因变量和自变量,b为回归系数的估计值.当然,也可以让结果更详细,这个你可以自己查看帮助文档 doc regress 这里使用:[b,

方法挺多的,对于线性回归(一元或多元),均可以利用最小二乘估计(如果效果不好可以尝试BOX-COX变换)的方法来实现分析,如果说是特征矩阵X'X的特征值中最大值与最小值的比例过大100以上,即体现出比较强的复共线性则需要选用主成分分析的方法,去除某些特征向量. 如果是非线性回归,可以通过描点的方式得到其图像,根据这一图像判断它的可能形式,再利用构造向量的方法求得其参数,特别是对与很多可以线性化的非线性拟合(如双曲线,幂函数,指数,倒指数,对数,S型曲线),问题将大为简化. 具体细节要因题目中所给数据而定.

%首先输入下列系数: f = [13 9 10 11 12 8]; A = [0.4 1.1 1 0 0 0 0 0 0 0.5 1.2 1.3]; b = [800; 900]; Aeq=[1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1]; beq=[400 600 500]; vlb = zeros(6,1); vub=[]; %然后调用linprog函数: [x,fval] = linprog(f,A,b,Aeq,beq,vlb,vub)

利用matlab的regress()多元线性回归函数可以做线性回归.实现代码:x=[]y =[][b,bint,r,rint,stats]=regress(y,x);式中:b参数估计值;bintb的置信区间;r残差向量y-xb;rintr的置信区间;stats1*3检验统计量,第一值是回归方程的置信度(相关系数),第二值是f统计量值,第二值是与f统计量相应的p值;y因变量数据n*1向量;x自变量数据n*m向量

如你有数据可以用regress()函数进行分析.如是数据呈线性关系直接使用regress()函数来分析,呈非线性关系可以通过变换转换成线性关系后使用regress()函数来分析.regress()使用格式:[beta,bint,r,rint,stats] = regress(y,x)beta回归系数bint回归系数的置信区间r残值rint残值的置信区间stats1*3检验统计量(相关系数,f统计量,f统计量相应的概率值)

多元非线性回归要大致化成多元线性回归,比如是a*x^2就化成对于x^2的线性回归作分析,你要先确定元是哪些,一种很流行的方法就是画图看形状大致猜一下(直线就是一次,以此类推),再用[b,bint,r,rint,stats] = regress(y,X) 分析,这是普遍做法,具体问题还要具体分析

x=linspace(1,30,100)';y=linspace(5,32)'; rand('state',0);z=1+2*x+3*y+rand;%在实际中你的x,y,z肯定都是知道的,%在这儿只是为了举例说明而已,要不然%你还用什么回归呢,你说是不是啊?%=========下面是回归过程===== [b,bint,r,rint,

这下通了,都是小问题:x1=[100 101.9 108.2 104.01 102.6 103.6];x2=[174 162.6 233.8 257 322.4 373.1];y=[88.92 83.7 91.13 127.24 141.11 150.37];x=[x1' x2'];rstool(x,y,'purequadratic')format short gX=[ones(6,1) x1' x2' (x1.^2)' (x2.^2)'][b,bint,r,rint,

y=[1,2,3,5,6,7];z=[2,3,4,5,9,8];x=[8,11,14,18,27,26];A=[y',z',ones(size(y))'];const=A\x'a=const(1);b=const(2);c=const(3);%%%%你将来你的源x,y,z数据2113换进去5261就可以4102了.1653

ydzf.net | knrt.net | yhkn.net | lhxq.net | snrg.net | 网站首页 | 网站地图
All rights reserved Powered by www.fkjj.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com