我发现这两天写题目,回归真的是个万能方法,但是我只会最简单的线性回归,为此特地记录一下以下几种方法:
1):regress
简单线性回归,可以是一元,也可以是多元,具体用法可以看这个图片:
这个方法最简单,也最好用,但是也有局限,比如非线性的时候就可以用下面的方法
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有以下几种选择方法:
它没有返回值,是因为直接调用这个函数之后,会出现下面这个
其中红色线围成的区间就是置信区间,误差线越短,表示效果越好,可以修改对应的x值,看y值变化。最后导出
就把所需要的解变成变量,存放在工作台了。
但是由于它只给我们固定的模型,如果我们要用其他非线性模型来拟合数据怎么办?这个时候就有第三个方法了
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
最后,无论是哪种回归它一般的步骤都可以是这样:
1)先进行相关性分析,显著性较好才可以进行下一步
2)建立95%置信区间下回归模型求出对应的回归系数和模型好坏的评判标准
3)利用残差图剔除掉异常数据
4)重复2,3步骤,直到没有异常数据为止