对一次线型回归参数的分析
本帖最后由 H.E.G. 于 2021-8-6 09:04 编辑一元线性回归方程
一元线性回归方程反映一个因变量与一个自变量之间的线性关系,当直线方程Y'=a+bx的a和b确定时,即为一元回归线性方程。
经过相关分析后,在直角坐标系中将大量数据绘制成散点图,这些点不在一条直线上,但可以从中找到一条合适的直线,使各散点到这条直线的纵向距离之和最小,这条直线就是回归直线,这条直线的方程叫作直线回归方程。
注意:一元线性回归方程与函数的直线方程有所区别,一元线性回归方程中的自变量X对应的是因变量Y的一个取值范围。
https://p1.ssl.qhimg.com/t013396697e8dcbe6d9.jpg
构建步骤
1. 根据提供的n对数据在直角坐标系中作散点图,从直观上看有无成直线分布的趋势。即两变量具有直线关系时,才能建立一元线性回归方程。
2. 依据两个变量之间的数据关系构建直线回归方程:Y'=a+bx
(其中:b=Lxy/Lxx a=y - bx)
计算步骤
1. 列计算表,求∑x,∑xx,∑y,∑yy,∑xy
class LenError(TypeError):# 制造关于错误的类
pass
def linear_regression(x=[], y=[]):
if len(x) != len(y):
raise LenError('len x is not equal to len y!')# 输出错误
Sx = sum(x)# 符号∑(Sigma)用“S”表示
Sy = sum(y)
Sxy = sum( * y for i in range(len(x))])
n = len(x)
x_ = Sx / n# 平均数计算,用于后期计算
y_ = Sy / n
2.计算Lxx,Lyy,Lxy
Lxx=∑(x-xˇ)(x-xˇ)
Lxy=∑(x-xˇ)(y-yˇ)
class LenError(TypeError):# 制造关于错误的类
pass
def linear_regression(x=[], y=[]):
if len(x) != len(y):
raise LenError('len x is not equal to len y!')# 输出错误
Sx = sum(x)# 符号∑(Sigma)用“S”表示
Sy = sum(y)
Sxy = sum( * y for i in range(len(x))])
n = len(x)
x_ = Sx / n# 平均数计算,用于后期计算
y_ = Sy / n
Lxy = Sxy - n * x_ * y_
Lxx = sum( ** 2 for i in range(len(x))]) - n * x_ ** 2
3.求回归系数b和常数a
=Lxy /Lxx
a=y - bx
class LenError(TypeError):# 制造关于错误的类
pass
def linear_regression(x=[], y=[]):
if len(x) != len(y):
raise LenError('len x is not equal to len y!')# 输出错误
Sx = sum(x)# 符号∑(Sigma)用“S”表示
Sy = sum(y)
Sxy = sum( * y for i in range(len(x))])
n = len(x)
x_ = Sx / n# 平均数计算,用于后期计算
y_ = Sy / n
Lxy = Sxy - n * x_ * y_
Lxx = sum( ** 2 for i in range(len(x))]) - n * x_ ** 2
b_ = Lxy / Lxx# 即上文的b与a
a_ = y_ - b_ * x_
return (a_, b_)
*以上资料参考https://baike.so.com/doc/6956818-7179250.html
页:
[1]