聊完方差分析,就不得不说回归分析。

回归分析是一种应用广泛的统计分析方法,在金融,医学等领域都已经成功应用,而且是比较简单也比较常用的算法了,是经得起考验的,结果解读也很友好。

这次我们就先以最常见的Excel表格来做回归分析,Excel表格的功能远比我们想的强大(一般的回归分析,只要是数据量不是很大,Excel完全可以搞得定,而且上手十分容易,不需要一行代码,就可以轻松搞定)

一般是利用最小二乘法来计算出回归模型的参数值。但是得到的回归方程到底有没有统计学意义,还需要对回归方程进行各种检验,主要是回归方程显著性检验,回归系数显著性检验,残差分析等。

数据集:波士顿房价数据

波士顿房价数据已被用于许多涉及回归问题的机器学习论文中,所有我们拿这个成熟的数据集来预测房价练练手!数据如下:

python回归分析总结(使用Excel和python来做回归分析)(1)

CRIM 城镇人均犯罪率

ZN 占地面积超过2.5万平方英尺的住宅用地比例

INDUS 城镇非零售业务地区的比例

CHAS 查尔斯河虚拟变量 (= 1 如果土地在河边;否则是0)

NOX 一氧化氮浓度(每1000万份)

RM 平均每居民房数

AGE 在1940年之前建成的所有者占用单位的比例

DIS 与五个波士顿就业中心的加权距离

RAD 辐射状公路的可达性指数

TAX 每10,000美元的全额物业税率

PTRATIO 城镇师生比例

B 1000(Bk - 0.63)^2 其中 Bk 是城镇的黑人比例

LSTAT 人口中地位较低人群的百分数

MEDV 以1000美元计算的自有住房的中位数

python回归分析总结(使用Excel和python来做回归分析)(2)

做回归分析前,先看下特征的相关性,如下:

注:Excel内置的相关系数是pearson相关系数

python回归分析总结(使用Excel和python来做回归分析)(3)

好像和价格的相关性都差不多,那我们做一个回归拟合看看,Excel界面如下:

python回归分析总结(使用Excel和python来做回归分析)(4)

得到结果如下:

python回归分析总结(使用Excel和python来做回归分析)(5)

python回归分析总结(使用Excel和python来做回归分析)(6)

残差图

python回归分析总结(使用Excel和python来做回归分析)(7)

特征残差拟合图

注:回归方程的显著性检验是F检验也就是方差分析,回归方程系数检验是T检验

结果说明:

1,回归统计:R Square表示拟合度,就是方程对数据的拟合程度,当然是越大越好,此时为0.74

2,方差分析:F=108.057,这个F是啥?是F统计量,回归方程的显著性检验是用的F检验,sig F=6.9468E-135 <0.05,所有这个方程是显著的,有意义的!

3,回归系数coefficient显著性,看T——Start值,看特征对于的P值,如图:特征INDUS,AGE对应的T统计量均小于1,P值大于0.05,说明这两个系数与y(price)的线性关系不显著,不应该保留在回归方程中,也可以再结合特征残差拟合图来看一下特征的有效性

看来得把这两个线性关系不显著的特征去掉之后再重新做回归!

python回归分析总结(使用Excel和python来做回归分析)(8)

这一次的回归方程和回归系数都有显著性,但是这个R Square=0.740545,好像和不剔除变量没什么差别,甚至还小一点,这就有点尴尬了。

整体的方程拟合度才0.74,效果不是很好。

我们用python来做一下看看

首先来筛选特征,有两种方法SelectKBest和f_regression

注:f_regression 是单因素线性回归F检验,SelectKBest方法可以调用检验方法,如:卡方检验chi2,还有针对分类的方差分析的f_classif,当然也可以调用f_regression方法,还可以选择前k个分数较高的特征,去掉其他的特征。所以这个方法更强大,推荐使用这个。

结果如下:

python回归分析总结(使用Excel和python来做回归分析)(9)

这两种方法得到的结果一样,对应的特征的P值都小于0.05,没法去掉一些特征

再注:目前python提供的有方差分析,卡方检验的方法,但是一直没有发现T检验的方法。可能是因为T检验其实也算是一种F检验的缘故吧,至于是不是因为这,我也不知道,这只是我猜的!但是用Excel做的时候即使去掉两个不显著的特征,好像对回归结果没有什么大的影响,所有在python中干脆都显著了,

数据分成训练集和测试集,通过在训练集和测试集上的得分对比来判断是否过拟合还是欠拟合,可以直接得到回归系数和截距,如下如:

python回归分析总结(使用Excel和python来做回归分析)(10)

从结果看,回归方程的拟合度在0.73左右,和用Excel做的差不多,没有提高,反而略微降低了。

绘制交叉验证预测图

python回归分析总结(使用Excel和python来做回归分析)(11)

python回归分析总结(使用Excel和python来做回归分析)(12)

从结果看,拟合的并不是很好。

后记:

结合Excel和python做的回归方程拟合度都是在0.74左右,效果只能是一般,看来得换一种方法来做。

我们接下来准备用K近邻回归算法来做预测。

,