1. 如何用matlab线性回归分析
在matlab中regress()函数和polyfit()函数都可以进行回归分析。
(1)regress()函数主要用于线性回归,一元以及多元的。它可以提供更多的信息,残差之类的。
(2)polyfit()函数是利用多项式拟合。可以是线性也可以是非线性的。
regress()函数详解
[b,bint,r,rint,stats]=regress(y,X,alpha)
说明:b是线性方程的系数估计值,并且第一值表示常数,第二个值表示回归系数。bint是系数估计值的置信度为95%的置信区间,r表示残差,rint表示各残差的置信区间,stats是用于检验回归模型的统计量,有三个数值其中有表示回归的R2统计量和F以及显著性概率P值,alpha为置信度。
相关系数r^2越大,说明回归方程越显著;与F对应的概率P<alpha时候拒绝H0,回归模型成立。
y表示一个n-1的矩阵,是因变量的值,X是n-p矩阵,自变量x和一列具有相同行数,值是1的矩阵的组合。如:对含常数项的一元回归模型,可将X变为n-2矩阵,其中第一列全为1。
ONES(SIZE(A)) is the same size as A and all ones。
利用它实现X=[ones(size(x))x]
(2)polyfit()函数详解-------------摘自sina小雪儿博客
p=polyfit(x,y,n)
[p,s]= polyfit(x,y,n)
说明:x,y为数据点,n为多项式阶数,返回p为幂次从高到低的多项式系数向量p。x必须是单调的。矩阵s用于生成预测值的误差估计。(见下一函数polyval)
多项式曲线求值函数:polyval( )
调用格式: y=polyval(p,x)
[y,DELTA]=polyval(p,x,s)
说明:y=polyval(p,x)为返回对应自变量x在给定系数P的多项式的值。
[y,DELTA]=polyval(p,x,s) 使用polyfit函数的选项输出s得出误差估计Y
DELTA。它假设polyfit函数数据输入的误差是独立正态的,并且方差为常数。则Y DELTA将至少包含50%的预测值。
2. 如何用matlab非线性回归分析
%把y=x^a两边取对数,就有log(y)=a*log(x),如果将log(y)看成是log(x)的函数,那么它们是线性的.这时是方程的个数是10000个,而未知数是1个(a),这可以用matlab的矩阵除法求解矛盾方程(用的是最小二乘法)
%下面是一个例子,我以a=1.45产生一套10000个的(x,y)序列,当然我加上了一些随机扰动.(你可以试一下,不加的话,肯定得到的是1.45)
>> a=1.45;
>> x=linspace(1,10,10000)'; %注意这里你要转成列向量求解
>> y=x.^a+0.5*rand(10000,1);
>> aa=log(x)\log(y)
3. matlab线性回归
n=[1.5464 1.5227 1.5092 1.4998]
λ=[404.7 435.8 546.1 577.0]
D=λ^2
D=【 】
E=inv(D)
设L=n-a
b=L/D
b=(n-a)/D b=n/D-a/D
或者 n*(λ^2)=a*(λ^2)+b
令Q=n*(λ^2)
Q=a*λ^2+b
Q已知,λ^2已知, b=Q-a*λ^2
你的系数加哪个位置的,可以继续参考解下来
4. 如何用matlab进行逐步回归法分析
1、首先打开matlab软件。
2、创建一个自己需要使用的数学模型,如图所示。
3、根据传递函数,绘制根轨迹图。
4、得到根轨迹图,利用rlocfind函数计算用户选定点的增益和其它闭环极点。
5、进行根轨迹分析,如图所示。
6、在逐步回归法分析工具界面查看它的bode图。
5. 求助MATLAB高手,归纳出回归方程
用Matlab的cftool工具箱进行拟合得到的结果为:
General model:
f(x,y) = b0+b1*x^0.16+b2*y^0.017
Coefficients (with 95% confidence bounds):
b0 = 1.405e+04 (1.134e+04, 1.676e+04)
b1 = -4709 (-5766, -3652)
b2 = -857 (-1715, 1.068)
Goodness of fit:
SSE: 7.363e+04
R-square: 0.9049
Adjusted R-square: 0.889
RMSE: 78.33
还有什么问题可以问我,望采纳,谢谢!
6. MATLAB 线性回归算法
x=[
1.99
2.00
1.00;
11.43
14.76
12.86;
44.29
50.00
50.00;
72.86
81.43
75.71;
87.61
89.51
87.61;
93.33
92.86
94.29];
day=[1:6]';
%天数
%这里我想,应当是想得到发芽率与天数的关系,而跟组无关
%所以这里我将它们横向求平均。求出每天的平均出芽率
xx=sum(x,2)/size(x,2);
A=[day,ones(size(day))];
c=A\xx;
k=c(1);
b=c(2);
yy=k*day+b;
plot(day,xx,'r*',day,yy)
%红色的*点,是平均出芽率与天数的关系
%线是拟合出来的
%=====================================
%那我就拿第一组做试验
%实际上就是将xx=sum(x,2)/size(x,2)
%这句改成xx=x(:,1);
%第二组,你就改成xx=x(:,2);
x=[
1.99
2.00
1.00;
11.43
14.76
12.86;
44.29
50.00
50.00;
72.86
81.43
75.71;
87.61
89.51
87.61;
93.33
92.86
94.29];
day=[1:6]';
%天数
xx=x(:,1);
A=[day,ones(size(day))];
c=A\xx;
k=c(1);
b=c(2);
yy=k*day+b;
plot(day,xx,'r*',day,yy)
7. 用Matlab作线性回归
x=[
1.99 2.00 1.00;
11.43 14.76 12.86;
44.29 50.00 50.00;
72.86 81.43 75.71;
87.61 89.51 87.61;
93.33 92.86 94.29];
day=[1:6]'; %天数
%这里我想,应当是想得到发芽率与天数的关系,而跟组无关
%所以这里我将它们横向求平均。求出每天的平均出芽率
xx=sum(x,2)/size(x,2);
A=[day,ones(size(day))];
c=A\xx;
k=c(1);
b=c(2);
yy=k*day+b;
plot(day,xx,'r*',day,yy)
%红色的*点,是平均出芽率与天数的关系
%线是拟合出来的
%=====================================
%那我就拿第一组做试验
%实际上就是将xx=sum(x,2)/size(x,2)
%这句改成xx=x(:,1);
%第二组,你就改成xx=x(:,2);
x=[
1.99 2.00 1.00;
11.43 14.76 12.86;
44.29 50.00 50.00;
72.86 81.43 75.71;
87.61 89.51 87.61;
93.33 92.86 94.29];
day=[1:6]'; %天数
xx=x(:,1);
A=[day,ones(size(day))];
c=A\xx;
k=c(1);
b=c(2);
yy=k*day+b;
plot(day,xx,'r*',day,yy)