Refer:http://python.jobbole.com/81215/
本文参考了博乐在线的这篇文章,在其基础上加了一些自己的理解。其原文是一篇英文的博客,讲的通俗易懂。
本文通过一个简单的例子:预测房价,来探讨怎么用python做一元线性回归分析。
房价是一个很火的话题,现在我们拿到一组数据,是房子的大小(平方英尺)和房价(美元)之间的对应关系,见下表(csv数据文件):
从中可以大致看出,房价和房子大小之间是有相关关系的,且可以大致看出来是线性相关关系。为了简单起见,这里理想化地假设房价只和房子大小有关,那我们在这组数据的基础上,怎样预测任意大小的房子的房价呢?答案是用一元回归分析。
讲到一元回归分析很多人应该不陌生,在初中还是高中的数学课程中肯定有学过,即对于一组自变量x和对应的一组因变量y的值,x和y呈线性相关关系,现在让你求出这个线性关系的直线方程,就是这样一个问题。
记得当时用的方法叫:最小二乘法,这里不再细讲最小二乘法的详细内容,其主要思想就是找到这样一条直线,使得所有已知点到这条直线的距离的和最短,那么这样一条直线理论上就应该是和实际数据拟合度最高的直线了。
下面我们将开篇提出的问题中的房价和房子的大小之间的关系用一个线性方程来表示:
表示大小为x(单位:平方英尺)的房子的价格为,其中是直线的截距,为回归系数,即直线的斜率。
我们要计算的东西其实就是和这两个系数,因为只要这两个系数确定了,那直线的方程也就确定了,然后就可以把要预测的x值代入方程来求得对应的值了。
注:用到的3个库都可以用pip命令进行安装。
【输出结果】
coefficient:[ 28.77659574]
predict_value:[ 21915.42553191]
intercept:1771.80851064
上述分析过程,有两点不足:
(1)数据量太少,预测的误差可能较大;
(2)影响房价不止房子大小这一个因素,肯定还有很多其他因素,这里没有把其他因素考虑进去,导致预测的结果也是不准确的。既然有一元回归分析,那肯定也有多元回归分析,留到以后再讲。