matlab 回归

我发现这两天写题目,回归真的是个万能方法,但是我只会最简单的线性回归,为此特地记录一下以下几种方法:

1):regress

简单线性回归,可以是一元,也可以是多元,具体用法可以看这个图片:

matlab 回归_第1张图片

这个方法最简单,也最好用,但是也有局限,比如非线性的时候就可以用下面的方法

2):rstool

这个函数可以用于非线性的情况,它具体的操作方法为:

xname={'Li','Sanchez','Jones','Yang','Larson'}
yname={'rate'}
x=data(:,2:6)
y=data(:,1)
rstool(x,y,'linear',0.05,xname,yname)    %后面参数alpha,表示置信区间95%

其中model有以下几种选择方法:

matlab 回归_第2张图片

它没有返回值,是因为直接调用这个函数之后,会出现下面这个

matlab 回归_第3张图片

 其中红色线围成的区间就是置信区间,误差线越短,表示效果越好,可以修改对应的x值,看y值变化。最后导出

matlab 回归_第4张图片

 就把所需要的解变成变量,存放在工作台了。

但是由于它只给我们固定的模型,如果我们要用其他非线性模型来拟合数据怎么办?这个时候就有第三个方法了

3):nlinfit

它可以对你提供的任意函数去拟合,因此也被称为万能函数:

x=data(:,2:6)
y=data(:,1)
myfun = inline('beta(6)+ beta(1)*x(:,1)+ beta(2)*x(:,2)+ beta(3)*x(:,3)+ beta(4)*x(:,4)+ beta(5)*x(:,5)','beta','x');		%内联函数
temp=rand(1,6)					%初始化所求解
beta = nlinfit(x,y,myfun,temp); %回归得到系数beta

matlab 回归_第5张图片

 最后,无论是哪种回归它一般的步骤都可以是这样:

1)先进行相关性分析,显著性较好才可以进行下一步
2)建立95%置信区间下回归模型求出对应的回归系数和模型好坏的评判标准
3)利用残差图剔除掉异常数据
4)重复2,3步骤,直到没有异常数据为止

你可能感兴趣的:(matlab,matlab,回归,开发语言)