大佬们,求教个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。这个循环怎么写,求大佬指教