matlab多组回归分析

大佬们,求教个matlab的问题,帮忙解答下。就是用matlab多组数据进行回归分析
例如:
y=[1 2 3 4 5 6 7 8];
x1=[94 65 95 15 47 23 65 52];
x2=[45 66 22 54 87 16 65 54];
....xn=[xxxxxxxx];
我怎么写代码,让y分别和x1和x2进行回归分析,我要做的东西数据量很大,一个y对应的很多组x,怎么让y跟每组x进行回归,就是y跟x1,y跟x2....y跟xn,,得到各自结果

matlab多组回归分析可以用 regress()回归分析函数或其他的拟合函数(lsqcurvefit、nlinfit等)来实现。由于你给的数据偏少,下面以你的数据为例,进行分析

y=[1 2 3 4 5 6 7 8]'; 

x1=[94 65 95 15 47 23 65 52]'; 

x2=[45 66 22 54 87 16 65 54]';

X=[ones(8,1) x1 x2 x1.^2 x2.^2 x1.^3 x2.^3];

[a,bint,r,rint,stats] = regress(y,X);

运行结果

z=a+b*x+c*y+d*x^2+e*x^2+f*x^3+g*x^3  %表达式

a=-12.3279 b=-2.0631 c=3.9929 d=0.052567 e=-0.094348 f=-0.00036336 g=0.00061139  %系数

决定系数:R²=0.75384    %这个说明拟合精度偏低,一般要求,R²≈1

F统计量:F=0.51039 概率值:p=0.78889

追问

不是啊兄弟,我是要分别做回归,y跟x1做完回归,得到的R平方,y跟x2做回归的到的R平方,我的y要跟一万多组x做回归,我就想写个循环之类的,得到跟没个x的回归分析。

追答

用for循环来完成,代码已发私信。

追问

谢谢大佬,不过 X=[ones(n,1) x x.^2 x.^3 x.^4 x.^5 x.^6];这行代码是啥意思啊,为啥要平方立方,我按你这么写算出来也还是只有一个R平方啊。我是想做个循环,让y分别跟x1做回归,得出stats里的R平方,y跟x2做回归,得出stats里的R平方,就是我有x1 x2.....x10000 一万组x,做个循环让y跟这一万组x做回归,得出一万个stats。这个循环怎么写,求大佬指教

温馨提示:答案为网友推荐,仅供参考
相似回答