目录
一、什么是回归分析
百度百科:回归分析是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器)之间的关系。这种技术通常用于预测分析,时间序列模型以及发现变量之间的因果关系。例如,司机的鲁莽驾驶与道路交通事故数量之间的关系,最好的研究方法就是回归。
通俗解释:回归这个词应该是直译过来的,单看这个词,regression.re前缀表示的是恢复(recover),重复(repeat)的意思,sion尾缀把动词变成名词,gress的意思是行走。想象这样一个场景,一堆看似无规律的数据在你的图像上肆无忌惮的乱走,我们要做的是找出其中的规律模型,把他们行走的趋势和轨迹“重新组合起来”。
二、回归分析有哪些?
回归分析可以分为线性回归(linear regression)和非线性回归(nonlinear regression)。其中线性回归包括一元线性回归、多元线性回归。线性回归中比较特殊的回归分析有对数线性回归(Log-linear model)——是将自变量和因变量都取对数值之后再进行线性回归。非线性回归则包括逻辑回归(Logistic Regression)、偏回归(Partial Regression)等。
此外,回归分析成立并有效的前提在于其一系列假设,因此在使用具体的模型时检验数据是否符合模型假设十分重要。经典的回归分析假设包括:
- 该样本代表推断预测的总体。
- 模型误差是一个随机变量,其关于解释变量的条件分布的平均值为零。
- 独立变量的测量没有错误,但如果此条假设不成立,可以使用其他技术来完成建模。
- 独立变量(预测变量)之间是线性独立的,即不可能将任何预测变量表示为其他变量的线性组合。
- 误差是不相关的,即误差的方差-协方差矩阵是对角矩阵,而每个非零元素是误差的方差。
- 误差的方差在观测中是恒定的(同方差性)。否则,可能需要使用加权最小二乘法或其他方法。
以上这些假设保证了参数估计在线性无偏估计量类中将是无偏,一致和有效的。但值得注意的是,实际数据很少能满足这些假设。因此即使假设不正确,也常常使用该方法。而许多统计方法也为了提供更宽松的假设而被提出来。
三、回归分析的应用
回归分析的应有有很多,各种预测问题都可以考虑使用回归模型,在知乎上看到一个关于金融方面应用的专栏 @武世伟感兴趣的朋友可以关注一下
四、回归分析常用工具(Python代码实现)
回归分析的工具也有很多,像常用的Excel、SPSS 、SAS和R都有较好的实现,这里的工具就不一一介绍了
下面是关于回归分析的Python代码实现,大家可以参考一下
from tpot import TPOTRegressor
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
housing = load_boston()
X_train, X_test, y_train, y_test = train_test_split(housing.data, housing.target, train_size=0.75, test_size=0.25)
tpot = TPOTRegressor(generations=5, population_size=20, verbosity=2)
tpot.fit(X_train, y_train)
tpot.export('tpot_pipeline.py') # 选择最优回归方法,输出可执行的代码
运行过程和结果:
五、如何选择合适的回归模型
那么面对这么多的回归分析方法,我们该怎么选择呢?以下是一些可以考虑的关键因素:
-
数据探索是构建预测模型不可或缺的一部,因此在选择正确的模型前,我们可以先分析数据,找到变量间的关系。
-
为了比较不同方法的拟合成都,我们可以分析统计显著性参数、R方、调整R方、最小信息标准、BIC和误差准则等统计值,或者是Mallow‘s Cp准则。将模型与所有可能的子模型进行比较来检查模型中可能存在的偏差。
-
交叉验证是评估预测模型最好的方法没有之一。
-
如果你的数据集中有多个奇怪变量,你最好手动添加而不要用自动的方法。
-
杀鸡焉用牛刀。根据你的任务选择强大/不强大的模型。
-
岭回归、Lasso回归和ElasticNet回归在高维度、多重共线性情况下有较好的表现。
补充一点回归分析的常用参数解释参考自:自由的行走
SS是平方和
回归误差平方和(SSE)
残差平方和(SSR)及总体平方和(SST)
df(degree of freedom)为自由度。
MS为SS与df的比值,与SS对应,SS是平方和,MS是均方,是指单位自由度的平方和。
coeft表明系数的,因为该因素t检验的P值是0.000,所以表明有很强的正效应,认为所检验的变量对模型是有显著影响的。
F是F test F 检验,联合显著检验值,是表明相关性的系数