hello,大家好这里是X,不说了不说了,赶博客赶博客!!!冲压!!对了,现在秋天来了,大家要注意添衣噢🍂🍁🍁🍁
文章目录
介绍OLS
OLS即为:普通最小二乘法(ordinary least squares ),它是使得全部观察值的残差平方和最小的一种参数估计方法,在回归分析中应用最为广泛。
现在回想简单线性回归是由方程:y=
α
\alpha
α+
β
\beta
βx
α
\alpha
α
β
\beta
β
这里X说一句X看到的话:我们想知道两个变量之间的关系,我们可以用直线的斜率来表示X和Y,那么由图中的点确定线的这样的一个过程就是回归
如果说,现在再来一个参数u,来表示误差,那么:
y= α \alpha α+ β \beta βx+u
RSS求法
最优拟合直线应该使得各点到直线的距离的和最小,也可以表述为距离的平方和最小
根据这个原则,我们可以得到另一个表达式:
那么,使得残差的平方和最小,这个时候就得到了RSS(residual sum of squares,简称RSS):
我们暂且将这个公式叫做公式一
α \alpha α和 β \beta β的求法
先求解 β \beta β,方法就是对公式一的所有参数对 β \beta β求导、求偏导,并令其结果为0,即可得到: β \beta β,那么 α \alpha α直接套原公式即可求到:
例题模板
一套我自认为比较标准的“解题过程”
例题(手打简单线性回归)
好啦,例题来啦
第一关
定义一个函数fit(X, Y),其中X和Y都是numpy.ndarray类型的数组,X和Y的形状都是m行1列。函数返回X的平均数 x_bar 和Y的平均数 y_bar
例如:X=[[5], [6]],Y=[[7], [9]],则函数应该返回5.5和8。
def fit(X, Y):
import numpy as np
x = np.mean(X)
y = np.mean(Y)
return x,y
第二关——方差
def fit(X, Y):
import numpy as np
x_bar = np.mean(X)
VAR = np.mean((X-x_bar)**2)
return VAR
第三关——协方差
def fit(X, Y):
import numpy as np
x_bar = np.mean(X)
y_bar = np.mean(Y)
COVAR = np.mean((X-x_bar)*(Y-y_bar).reshape(-1,1))
return COVAR
第四关——斜率 β \beta β
# @coding: utf-8
def fit(X, Y):
import numpy as np
x_bar = np.mean(X)
y_bar = np.mean(Y)
COVAR = np.mean((X-x_bar)*(Y-y_bar).reshape(-1,1))
VAR = np.mean((X-x_bar)**2)
beta = COVAR/VAR
return beta
求解 α \alpha α
# @coding: utf-8
def fit(X, Y):
#先求解贝塔值,然后根据公式直接求出阿尔法
import numpy as np
x_bar = np.mean(X)
y_bar = np.mean(Y)
COVAR = np.mean((X-x_bar)*(Y-y_bar).reshape(-1,1))
VAR = np.mean((X-x_bar)**2)
beta = COVAR/VAR
k = y_bar - beta*x_bar
return k