简单线性回归 斜率 截距 计算
所属分类 quant
浏览量 442
linear regression
y = ax + b
x 自变量
y 因变量
a 斜率
b 截距
a = sum( (x - x_ ) * (y - y_ ) ) / sum( ( x - x_ )^2 )
b = y_ - a * x_
x_ x的均值
y_ y的均值
误差评估
MSE 均方差
MSE = sum((y - y_)^2) / n
import numpy as np
# 注意 后面的 :
def simpleLrFit(array_x,array_y):
x = np.array(array_x)
x_ = x.mean()
y = np.array(array_y)
y_ = y.mean()
v1 = (x - x_)*(y-y_)
# v2 = (x - x_) * (x-x_)
v2 = (x - x_) ** 2
a = v1.sum() / v2.sum()
b = y_ - a*x_
return a,b
list1 = [1,2,3]
list2 = [1,2,5]
x = np.array(list1)
y = np.array(list2)
a,b = np.polyfit(x, y, deg=1)
# 2.0 -1.3333333333333315
print(a,b)
# 2.0 -1.3333333333333335
a1,b1 = simpleLrFit(list1,list2)
print(a1,b1)
import scipy.stats as stats
result = stats.linregress(x, y)
print(result)
LinregressResult(slope=2.0, intercept=-1.3333333333333335, rvalue=0.9607689228305228, pvalue=0.1789123750220667, stderr=0.5773502691896255, intercept_stderr=1.2472191289246466)
上一篇
下一篇
沪深300 线性回归画趋势线
线性回归中常见的一些统计学术语(RSE RSS TSS ESS MSE RMSE R2 Pearson's r)
线性回归的R方
统计分析关键术语
python计算四分位
肥尾效应