简单的双变量线性回归模型(一)

Simple Linear Model(SLM)

那么,从现在开始我们就要开始正式的回归模型学习啦!先来看看最简单的双变量线性回归模型吧!
关键词:线性模型;双变量模型

最小二乘法(OLS)

在我们常规的模型估计中,最小二乘法是最最最常见的估计方法,下面从原理开始看看OLS是怎么估计系数的吧!
假设现在有一组数据,包括4组观测值,具体分布如下:

XY
X1P1
X2P2
X3P3
X4P4

现在我们想要知道X和Y之间的线性关系,首先我们先假设这两个变量之间的关系为:
Y i = β 0 + β 1 X i + u i ( 1 ) Y_i=\beta_0+\beta_1X_i+u_i (1) Yi=β0+β1Xi+ui1
i i i作为下标表示的是具体某一个观测值,在这个案例中我们有4个观测值,所以 i = 1 , 2 , 3 , 4 i=1,2,3,4 i=1,2,3,4 u i u_i ui被称为误差项。我们有4个观测值,则样本总量 N = 4 N=4 N=4
接下来我们需要理解两个概念:样本和总体。
样本:是从总体中抽取一部分观测值,作为代表性的数据来估计总体,也就是说我们试图通过实用部分数据来估计总体的全貌。因此必然存在误差,而且随着样本数量的增加,误差会越来越小。
总体:就是所有观测值,比如我们要研究女性学历和女性工资之间的关系,那么地球上所有女性的信息在一起就叫做总体。很显然,我们无法获得总体数据,只能收集到尽可能多的女性信息,这就是样本。随着我们收集到的信息越多越全面,那么我们估计的结果就会越准确,这是因为我们遗漏的误差越少。
那么,公式(1)就是我们想要估计的总体模型,其中 β 0 \beta_0 β0, β 1 \beta_1 β1就叫做参数(parameter)。参数是固定的数值的一个数,表示的是X和Y之间真正的数量关系。可是,由于我们无法获得总体数据,只能用部分样本数据来估计模型,因此我们无法得到真正的参数值,只能获得该参数的估计值。
Y i ^ = b 0 + b 1 X i ( 2 ) \hat{Y_i}=b_0+b_1X_i (2) Yi^=b0+b1Xi2
其中 b 0 b_0 b0, b 1 b_1 b1即是我们对参数 β 0 \beta_0 β0, β 1 \beta_1 β1的估计值。随着样本数量的增加和模型的优化,我们估计的 b 0 b_0 b0, b 1 b_1 b1会越来越接近参数 β 0 \beta_0 β0, β 1 \beta_1 β1。公式(2)则是我们得到的样本模型。整个计量模型估计实际上就是在寻找 b 0 b_0 b0, b 1 b_1 b1,而整个计量模型的检验和改进都是为了找到尽可能接近参数 β 0 \beta_0 β0, β 1 \beta_1 β1的估计值 b 0 b_0 b0, b 1 b_1 b1。即便我们使用相同的变量和相同的模型,当我们选择不同的样本数据时,我们的估计值也不相同。
接下来我们用图形来描述下:
在这里插入图片描述
图1 观测值和拟合线
如图1所示,这四组观测值分别在图上表现为4个点,那条直线则是公式(2)所描述的直线。 Y i ^ \hat{Y_i} Yi^叫做估计值,也就是我们使用给定的X数值并且利用我们找到的参数估计值 b 0 b_0 b0, b 1 b_1 b1得到的Y的值。
在这里插入图片描述
图2 观测值和拟合线和残差项
可以看到,在X取值X1时,Y的预测值为R1,真实观测值为P1,两者之间的误差为e1。依次类推,可以得到四个观测值分别对应的误差值。这些误差值实际上衡量了公式(2)中估计值和真实值之间的差异也就是误差大小。
介绍完这些前提背景以后,我们来看看到底怎么使用OLS找到参数估计值 b 0 b_0 b0, b 1 b_1 b1。最小二乘法实际上就是最小化每个观测值的误差平方和,公式表示如下:
m i n ∑ i N e i 2 min \sum_i^N{e_i^2} miniNei2
有人会说为什么不是最小化每个观测值的误差和呢?实际上真的有这种估计方法,但是我们不做研究。大家可以想一下,误差是不是有正有负,如果直接用误差和,是不是会出现抵消?而误差的平方则都是正数,可以一定程度上反映出观测值和估计值之间的差距大小。言归正传,怎么最小化每个观测值的误差平方和呢?
e i = 真实观测值 − 估计值 = Y i − Y i ^ = Y i − ( b 0 + b 1 X i ) e_i=真实观测值-估计值=Y_i-\hat{Y_i}=Y_i-(b_0+b_1X_i ) ei=真实观测值估计值=YiYi^=Yi(b0+b1Xi)
因此,可得:
S 2 = ∑ i N e i 2 = ∑ i N ( Y i − Y i ^ ) 2 S^2=\sum_i^N{e_i^2}=\sum_i^N{(Y_i-\hat{Y_i})^2} S2=iNei2=iN(YiYi^)2
= ∑ i N ( Y i − ( b 0 + b 1 X i ) ) 2 =\sum_i^N{(Y_i-(b_0+b_1X_i ))^2} =iN(Yi(b0+b1Xi))2
= ( Y 1 − ( b 0 + b 1 X 1 ) ) 2 + . . . + ( Y N − ( b 0 + b 1 X N ) ) 2 =(Y_1-(b_0+b_1X_1 ))^2+...+(Y_N-(b_0+b_1X_N ))^2 =(Y1(b0+b1X1))2+...+(YN(b0+b1XN))2
= ∑ i N Y i 2 + N b 0 2 + b 1 2 ∑ i N X i 2 − 2 b 0 ∑ i N Y i − 2 b 1 ∑ i N X i Y i + 2 b 0 b 1 ∑ i N X i =\sum_i^N{Y_i^2}+Nb_0^2+b_1^2\sum_i^N{X_i^2}-2b_0\sum_i^N{Y_i}-2b_1\sum_i^N{X_iY_i}+2b_0b_1\sum_i^N{X_i} =iNYi2+Nb02+b12iNXi22b0iNYi2b1iNXiYi+2b0b1iNXi
基本的数学知识告诉我们:
m i n ∑ i N e i 2 min \sum_i^N{e_i^2} miniNei2
= m i n S 2 =minS^2 =minS2
求最小值的一阶条件为:
∂ S 2 ∂ b 0 = 0 \frac{\partial{S^2}}{\partial{b_0}}=0 b0S2=0 ∂ S 2 ∂ b 1 = 0 \frac{\partial{S^2}}{\partial{b_1}}=0 b1S2=0
由此可得:
∂ S 2 ∂ b 0 = 2 N b 0 − 2 ∑ i N Y i + 2 b 1 ∑ i N X i = 0 \frac{\partial{S^2}}{\partial{b_0}}=2Nb_0-2\sum_i^N{Y_i}+2b_1\sum_i^N{X_i}=0 b0S2=2Nb02iNYi+2b1iNXi=0
∂ S 2 ∂ b 1 = 2 b 1 ∑ i N X i 2 − 2 ∑ i N X i Y i + 2 b 0 ∑ i N X i = 0 \frac{\partial{S^2}}{\partial{b_1}}=2b_1\sum_i^N{X_i^2}-2\sum_i^N{X_iY_i}+2b_0\sum_i^N{X_i}=0 b1S2=2b1iNXi22iNXiYi+2b0iNXi=0
根据上述两式子可得:
2 N b 0 − 2 N Y ˉ + 2 b 1 N X ˉ = 0 2Nb_0-2N\bar{Y}+2b_1N\bar{X}=0 2Nb02NYˉ+2b1NXˉ=0
b 0 = Y ˉ − b 1 X ˉ b_0=\bar{Y}-b_1\bar{X} b0=Yˉb1Xˉ
然后将 b 0 = Y ˉ − b 1 X ˉ b_0=\bar{Y}-b_1\bar{X} b0=Yˉb1Xˉ代入第二个式子可得:
2 b 1 ∑ i N X i 2 − 2 ∑ i N X i Y i + 2 ( Y ˉ − b 1 X ˉ ) N X ˉ = 0 2b_1\sum_i^N{X_i^2}-2\sum_i^N{X_iY_i}+2(\bar{Y}-b_1\bar{X})N\bar{X}=0 2b1iNXi22iNXiYi+2(Yˉb1Xˉ)NXˉ=0
2 b 1 [ ∑ i N X i 2 − N X ˉ 2 ] = 2 ∑ i N X i Y i − 2 N Y ˉ X ˉ 2b_1[\sum_i^N{X_i^2}-N\bar{X}^2]=2\sum_i^N{X_iY_i}-2N\bar{Y}\bar{X} 2b1[iNXi2NXˉ2]=2iNXiYi2NYˉXˉ
b 1 [ ( 1 / N ) ∑ i N X i 2 − X ˉ 2 ] = ( 1 / N ) ∑ i N X i Y i − Y ˉ X ˉ b_1[(1/N)\sum_i^N{X_i^2}-\bar{X}^2]=(1/N)\sum_i^N{X_iY_i}-\bar{Y}\bar{X} b1[(1/N)iNXi2Xˉ2]=(1/N)iNXiYiYˉXˉ
很明显:
b 1 V a r ( X ) = C o v ( X , Y ) b_1Var(X)=Cov(X,Y) b1Var(X)=Cov(X,Y)
b 1 = C o v ( X , Y ) / V a r ( X ) = ( 1 / N ) ∑ i N X i Y i − Y ˉ X ˉ ( 1 / N ) ∑ i N X i 2 − X ˉ 2 = ∑ i N ( X i − X ˉ ) ( Y i − Y ˉ ) ∑ i N ( X i − X ˉ ) 2 b_1=Cov(X,Y)/Var(X)=\frac{(1/N)\sum_i^N{X_iY_i}-\bar{Y}\bar{X}}{(1/N)\sum_i^N{X_i^2}-\bar{X}^2}=\frac{\sum_i^N{(X_i-\bar{X})(Y_i-\bar{Y})}}{\sum_i^N{(X_i-\bar{X})^2}} b1=Cov(X,Y)/Var(X)=(1/N)iNXi2Xˉ2(1/N)iNXiYiYˉXˉ=iN(XiXˉ)2iN(XiXˉ)(YiYˉ)
以上则是简单OLS模型的系数求解推导全过程,若变为多变量,则过程类似只是求解难度更大。举一反三,知道最根本的求解原理是最重要的。
在下一个小节中,我们会详细解释OLS回归中的各种数值及其解释,如RSS, ESS, TSS, R 2 R^2 R2等,并会给出STATA实例分析及操作步骤。

  • 25
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
变量线性回归模型是指使用一个自变量和一个因变量来建立的线性回归模型。它的数学模型可以表示为: y = θ0 + θ1x 其中,y是因变量,x是自变量,θ0和θ1是模型参数。 实现单变量线性回归模型的步骤如下: 1. 收集数据:收集自变量和因变量的数据,并将它们存储在一个数据集中。 2. 数据预处理:对数据进行清洗和处理,包括缺失值处理、异常值处理、数据标准化等。 3. 拆分数据集:将数据集拆分成训练集和测试集,通常训练集占总数据集的70-80%。 4. 建立模型:使用训练集数据来建立线性回归模型,计算出模型参数θ0和θ1。 5. 模型评估:使用测试集数据来评估模型的性能,可以使用均方误差(MSE)或R平方等指标来评估模型的拟合程度。 6. 使用模型进行预测:使用训练好的模型来预测新的自变量对应的因变量值。 在Python中,可以使用scikit-learn库来实现单变量线性回归模型。具体实现过程如下: ```python import numpy as np from sklearn.linear_model import LinearRegression # 收集数据 X = np.array([1, 2, 3, 4, 5]).reshape(-1, 1) y = np.array([2, 4, 6, 8, 10]) # 建立模型 model = LinearRegression() model.fit(X, y) # 模型参数 theta0 = model.intercept_ theta1 = model.coef_[0] # 模型预测 y_pred = model.predict(X) ``` 其中,reshape(-1, 1)是将一维数组转换成二维数组的方法,intercept_表示模型的截距,coef_表示模型的系数。predict方法可以用来进行预测。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值