附python代码:(网上很多版本bo计算公式有误)
import numpy as np def LSmethod(x,y): n=len(x) numerator = 0#分子 dinominator=0#分母 for i in range(0,n): numerator +=(x[i]-np.mean(x))*(y[i]-np.mean(y)) dinominator+=(x[i]-np.mean(x))**2 b1=numerator/float(dinominator) b0=np.mean(y)-b1*np.mean(x) return b0,b1 def predict(x,b0,b1): return b0+b1*x x = [1, 3, 2, 1, 3] y = [14, 24, 18, 17, 27] b0, b1 =LSmethod(x, y) print( "intercept:", b0, " slope:", b1) x_test = 6 y_test = predict(6, b0, b1) print ("y_test:", y_test)