Python 线性回归一个简单的例子
# -*- coding: utf-8 -*-
"""
Created on Wed Sep 20 16:46:53 2017
@author: Jackie
"""
import numpy as np
from statsmodels import regression
import statsmodels.api as sm
import matplotlib.pyplot as plt
import math
''' 编辑线性回归函数 '''
def linreg(X,Y):
'''线性回归'''
X = sm.add_constant(X)
model = regression.linear_model.OLS(Y, X).fit()
'''Y = a + bX '''
a = model.params[0]
b = model.params[1]
'''X[:,1] 就是取所有行的第1个数据
X = sm.add_constant(X) 此时的X已变为
[[ 1. 0.52630651]
...,
[ 1. 0.05758532]]'''
X = X[:, 1]
'''绘图并返回信息'''
X2 = np.linspace(X.min(), X.max(), 100) # 等差数列
Y_hat = X2 * b + a
plt.scatter(X, Y, alpha=0.3) # 显示原始数据 alpha是透明程度
plt.plot