线性回归作为数据分析的一项基本操作,是非常关键的,也是初学者必须掌握的内容,针对线性回归,本篇主要阐述如果用Python实现线性回归。
第三篇:10分钟学会用Python做线性回归
导语:线性回归作为数据分析的一项基本操作,是非常关键的,也是初学者必须掌握的内容,针对线性回归,本篇主要阐述如果用Python实现线性回归。
一、理解什么是线性回归
线性回归也被称为最小二乘法回归。它的数学模型是这样的:y = a+ bx+e 其中,a被称为常数项或截距;b被称为模型的回归系数或斜率;e为误差项。a和b是模型的参数。当然,模型的参数只能从样本数据中估计出来:y'= a' + b'x
我们的目标是选择合适的参数,让这一线性模型最好地拟合观测值。拟合程度越高,模型越好。
那么,接下来的问题就是,我们如何判断拟合的质量呢?
高斯和勒让德找到的方法是:被选择的参数,应该使算出来的回归线与观测值之差的平房和最小。用函数表示为:
这就是通常我们说的最小二乘法,其原理为:当预测值和实际值距离的平方和最小时,就选定模型中的两个参数a、b。
python的statsmodels包已经有进行最小二乘法的函数,我们只要会用就行,想详细了解其数学推导过程的同学可以自己翻阅计量经济学相关书籍。
二、利用statsmodels进行线性回归
首先我们创造一条线
In [3]:
import numpy as np
import pandas as pd
import statsmodels.api as sm
import matplotlib.pyplot as plt
# 创找一列从0到10等步长的array,共100个值
x = np.linspace(0, 10, 100)
x[:20]
Out[3]:
array([ 0. , 0.1010101 , 0.2020202 , 0.3030303 , 0.4040404 , 0.50505051, 0.60606061, 0.70707071, 0.80808081, 0.90909091, 1.01010101, 1.11111111, 1.21212121, 1.31313131, 1.41414141, 1.51515152, 1.61616162, 1.71717172, 1.81818182, 1.91919192])