工具 | 常用函数拟合工具

时不时会用到线性回归,或自定义函数的拟合,做个记录备份,方便之后快速查找使用。以下记录几种matlab常用拟合工具。

1. cftool

简介 : 大杀器cftool排第一,二元以下的回归优选,优美的可视化界面,傻瓜式操作,无需教程,实时拟合,并给出拟合信息:SSE、R2R^2R2、 Adjusted R-square、 RMSE。如果需要重复调用,可以自动生成代码。

适用范围 :提供了线性、多项式、指数、傅里叶、高斯等等一系列函数拟合。当然,还可以自定义拟合函数。缺点是数据输入只有三维,也就是说最多只能二元回归。(可能我没找到增加变量维度的方法,如果大家有找到的分享一下呀)
工具 | 常用函数拟合工具(matlab)-编程知识网

使用

  1. 将变量导入工作区。
  2. 命令行输入: cftool
  3. 剩下的无需教程,看着界面操作吧。
    工具 | 常用函数拟合工具(matlab)-编程知识网

2. regress(y,x)

简介 : 全称Multiple linear regression,顾名思义就是拿来线性回归的,可以多元回归,给出拟合的统计信息。特点是非常灵活,回归最常用函数。

适用范围 :多元线性回归。

使用

[b,bint,r,rint,stats] = regress(y,X)
或 [___] = regress(y,X,alpha)

x:n*m矩阵;m为自变量个数
Y:n维列向量;

b : 回归系数,第一项为常数项,然后依次是x1,…xn的系数。当然,有的时候也有可能没有常数项,需要酌情判别。
bint : 回归系数的置信区间,默认95%,如果需要调整就在命令的地方调整alpha值。
r : 残差,相关系数。
rint : 残差的置信区间。
stats : 用于检验回归模型的统计量,里面包含四项分别是:相关系数R2R^2R2,F统计F-statistic,p-value,误差估计方差。

  • X的构造可以非常灵活,可以将多元多项式转为线性模型,如构成 X=[ones(n,1),x1,x2,x12,x22…]X=[ones(n,1),x_1,x_2 , x_1^2,x_2^2…]X=[ones(n,1),x1,x2,x12,x22...]就变成下面rstool中的’purequadratic’模式。

3.rstool

简介 : response surface modeling,常用于响应面模型回归,提供可视化界面。

适用范围 :多元二项式回归,包含多元线性回归和二项式回归。一般二项式回归就用它吧。

使用

rstool(x,y)
或rstool(x,y,model,alpha)

模式选择

  • ‘linear’ — Constant and linear terms (有常数项,线性项,c+a1x1+a2x2+…c+a_1x_1+a_2x_2+…c+a1x1+a2x2+...)
  • ‘purequadratic’ — Constant, linear, and squared terms(有常数项,线性项,平方项(没有交叉项,c+a1x1+a2x2+b1x12+b2x22+….c+a_1x_1+a_2x_2+b_1x_1^2+b_2x_2^2+….c+a1x1+a2x2+b1x12+b2x22+....
  • ‘interaction’ — Constant, linear, and interaction terms(有常数项,线性项,交叉项(没有平方项,c+a1x1+a2x2+b1x1x2+….c+a_1x_1+a_2x_2+b_1x_1x_2+….c+a1x1+a2x2+b1x1x2+....
    ‘quadratic’ — Constant, linear, interaction, and squared terms(常数项、线性项、交叉项、平方项,全都有)

返回值:
beta : 多项式系数
rmse : 均方根方差,观测值与真值偏差的平方和与观测次数比值的平方根,衡量观测值与真值的偏差。

4.polyfit()

简介 : Polynomial curve fitting,多项式曲线拟合

适用范围 :任意多项式拟合。

使用

p=polyfit(x,y,n)
[p,S,mu] = polyfit(x,y,n)
y_pred=polyval(p,x)

p : 拟合的多项式
S : 误差信息,包含三项
mu : 中心化值和缩放因子
工具 | 常用函数拟合工具(matlab)-编程知识网
最终系数返回也按多项式降幂排列。