简单的函数来实现取两个列表的线性回归参数。
首先是我们的数据列。这里只支持输入两个列表,即一个x列和一个y列。
l_1 = [238,220,255,268,275,263,240,235,230,212]
l_2 = [29,27,30,31,32,33,30,30,28,27]
然后是函数。
def line(l_1,l_2): #求两列数据的线性回归参数
import numpy as np
from numpy.linalg import solve
sumx = np.sum(l_1) #x列的和
sumy = np.sum(l_2) #y列的和
n = len(l_1) #数据的个数
sumxy = np.sum(np.array(l_1)*np.array(l_2)) #xy两列的乘积的和
sumx2 = np.sum(np.array(l_1)**2) #x的平方的和
a = np.mat([[sumx,n],[sumx2,sumx]]) #用np.mat传入第一个矩阵
b = np.mat([sumy,sumxy]).T #用np.mat.T传入第二个矩阵
x = solve(a,b) #求出ab
return x #输出
把两列数据传入即可。
line(l_2,l_1)