文章参考自
25 回归分析算法基本原理及编程实现_哔哩哔哩_bilibili
一、概念
二、例题
法一:
t=1/30:1/30:14/30;
s=[11.86 15.67 20.60 26.69 33.71 41.93 51.13 61.49 72.90 85.44 99.08 113.77129.54 146.48 ];
[p,s]=polyfit(t,s,2)
polyfit函数用法
p =polyfit(x,y,n) 返回次数为 n 的多项式 p(x) 的系数,该阶数是 y 中数据的最佳拟合(在最小二乘方式中)。p 中的系数按降幂排列,p 的长度为 n+1。
[p,S]= polyfit(x,y,n) 还返回一个结构体 S,后者可用作 polyval 的输入来获取误差估计值。
[p,S,mu]= polyfit(x,y,n) 还返回 mu,后者是一个二元素向量,包含中心化值和缩放值。mu(1) 是 mean(x),mu(2) 是std(x)。使用这些值时,polyfit 将 x 的中心置于零值处并缩放为具有单位标准差
结果
p =
489.2946 65.8896 9.1329
s =
包含以下字段的 struct:
R: [3×3 double]
df: 11
normr: 0.1157
结果分析:
多项式方程:S=489.2946t*t+65.8896t+9.1329
法二:化为多元线性回归
相当于我把t*t看作新变量x1,t看作新变量x2,也就变成了y=cx1+bx2+a
t=1/30:1/30:14/30;
s=[11.8615.67 20.60 26.69 33.71 41.93 51.13 61.49 72.90 85.44 99.08 113.77 129.54146.48];
T=[ones(14,1)t' (t.^2)];
[b,bint,r,rint,stats]=regress(s',T);
结果分析:
多项式方程:S=489.2946t*t+65.8896t+9.1329