广义最小二乘法(GLS)及 Stata 操作步骤

目录

一、广义最小二乘法(GLS)的理论原理

二、准备数据

三、建立实证模型

[四、Stata 操作步骤](#四、Stata 操作步骤)

五、代码解释

六、代码运行结果


一、广义最小二乘法(GLS)的理论原理

广义最小二乘法(Generalized Least Squares,GLS)作为普通最小二乘法(Ordinary Least Squares,OLS)的重要拓展,在处理存在复杂问题的数据时发挥着关键作用。在经典的线性回归框架中,我们往往期望误差项具备一系列理想的特性,如零均值、同方差以及无自相关等。然而,现实中的数据常常无法完美契合这些假设。

当面临异方差或自相关等情况时,OLS方法所给出的估计结果虽然在无偏性方面仍然成立,但在效率性方面却不再是最优的。这意味着,OLS估计量的方差可能并非最小,从而影响了估计的精度和可靠性。

具体而言,假设我们的线性回归模型可以表示为 ,其中 代表因变量向量, 是自变量矩阵, 为待估计的参数向量,而 则是误差项。如果误差项的协方差矩阵被表示为 ,那么GLS的估计量则可以通过以下公式得出: 。

通过采用适当的变换策略,GLS能够有效地应对数据中的异方差或自相关问题,从而提供更为精确和有效的参数估计,为我们深入理解变量之间的关系提供了更有力的工具。

二、准备数据

在本次示例中,我们将运用Stata自带的波士顿房价数据集(boston.dta)来进行操作和分析。这个数据集涵盖了众多与房价相关的变量,为我们的研究提供了丰富的信息。

sysuse boston, clear

通过执行上述代码,我们成功地加载并清理了所需的数据集,为后续的建模和分析做好了充分的准备。

三、建立实证模型

为了探究房价的影响因素,我们假设要研究房屋价格(price)与房屋平均房间数量(rm)和犯罪率(crim)之间的关系。基于这样的研究目的,我们构建的实证模型可以表示为:

四、Stata 操作步骤

  1. 检查是否存在异方差

首先,我们运用普通最小二乘法(OLS)对数据进行回归,以便初步评估是否存在异方差的可能性。

reg price rm crim
rvfplot  // 绘制残差与拟合值的图形,初步判断异方差

执行 reg price rm crim 命令后,Stata 会输出回归的各项结果,包括系数估计值、标准误差、t 值和 p 值等关键统计量。然而,这些常规的回归结果并不能直接揭示数据中是否存在异方差的现象。

为了更直观和有效地判断异方差的存在,我们使用 rvfplot 命令来绘制残差与拟合值的图形。如果图形呈现出明显的非随机散布模式,例如呈现出喇叭口形状或者其他不规则的分布特征,那么就有较大的可能性存在异方差。

  1. 进行 GLS 估计
gen lny_resid = log(resid^2)
reg lny_resid rm crim
predict lnh, xb
gen var_pred = exp(lnh)

首先,通过 gen lny_resid = log(resid^2) 命令,我们创建了一个新的变量 lny_resid ,它是对回归残差平方取对数的结果。这一操作有助于我们在后续的分析中更清晰地捕捉异方差的模式。

接着,使用 reg lny_resid rm crim 命令对新创建的变量 lny_resid 与自变量 rmcrim 进行回归,旨在尝试估计异方差的具体形式。

然后,使用 predict lnh, xb 命令基于上述回归结果预测线性组合的值,并将其命名为 lnh

最后,通过 gen var_pred = exp(lnh) 命令创建变量 var_pred ,通过指数函数将 lnh 转换为预测的方差。

完成上述准备工作后,我们就可以进行GLS估计了:

gls price rm crim, weights(var_pred)

这里,weights(var_pred) 表示使用 var_pred 作为权重来执行广义最小二乘估计。

五、代码解释

  • reg price rm crim :此命令执行了一个包含自变量 rmcrim 的普通最小二乘回归。它为我们提供了初步的模型拟合结果,但不能直接判断异方差情况。
  • rvfplot :这个命令的作用是绘制残差与拟合值的图形。通过观察图形的形态和分布,我们可以获得关于数据是否存在异方差的直观线索。
  • gen lny_resid = log(resid^2) :创建一个新变量 lny_resid ,对回归的残差平方进行对数变换。这样的处理有助于后续对异方差形式的建模和分析。
  • reg lny_resid rm crim :对新创建的变量 lny_resid 与自变量 rmcrim 进行回归,试图估计出异方差的具体形式和相关参数。
  • predict lnh, xb :基于上述回归模型,预测线性组合的值,并将其命名为 lnh ,为后续生成方差预测值做准备。
  • gen var_pred = exp(lnh) :创建变量 var_pred ,通过指数函数将 lnh 转换为预测的方差值,用于在GLS估计中作为权重。
  • gls price rm crim, weights(var_pred) :使用 var_pred 作为权重,对因变量 price 以及自变量 rmcrim 进行广义最小二乘估计,以获得更有效的参数估计结果。

六、代码运行结果

当我们运行上述一系列代码后,Stata 将会输出 GLS 估计的详尽结果。这些结果通常涵盖了系数估计值、标准误差、t 值、p 值以及一系列与模型拟合质量相关的统计量等。

通过仔细剖析这些结果,我们能够评估自变量 rmcrim 对因变量 price 的影响是否具备统计学上的显著性。例如,若某个自变量的 p 值小于预先设定的显著性水平(通常为 0.05),则我们有足够的证据表明该自变量对房价具有显著的影响。

同时,我们还可以关注模型的拟合效果指标,如 值或其他相关的拟合优度度量,以判断模型对数据的解释能力和预测准确性。

需要特别注意的是,在实际应用中,确定异方差的准确形式往往是一个具有挑战性的任务。它可能需要我们凭借丰富的经验、对数据的深入理解以及专业知识来进行合理的假设和判断。此外,为了获取更为准确和可靠的结果,我们还可以进一步进行模型的诊断、验证和改进工作,例如检验残差的正态性、多重共线性等问题,并根据需要调整模型的结构或引入其他相关的变量和方法。

综上所述,通过运用广义最小二乘法(GLS)并结合Stata的强大功能,我们能够更有效地处理现实数据中存在的复杂问题,从而得出更具说服力和可靠性的研究结论。

【Stata学习】全面广义最小二乘法(FGLS)模型、组间异方差、组内自相关、组间同期相关检验stata实例(含命令、结果解析) (qq.com)https://mp.weixin.qq.com/s?__biz=MzkwOTYxOTk1MA==&mid=2247484362&idx=1&sn=f3aa0400c67eda5a8b6644195da7a9b6&chksm=c136a44bf6412d5d60684228c1380150f7fd80170f21a46b45374347fa91e3d62e5efcb3d038#rd

相关推荐
菌菌的快乐生活9 分钟前
理解支持向量机
算法·机器学习·支持向量机
爱喝热水的呀哈喽11 分钟前
《机器学习》支持向量机
人工智能·决策树·机器学习
大山同学14 分钟前
第三章线性判别函数(二)
线性代数·算法·机器学习
axxy200032 分钟前
leetcode之hot100---240搜索二维矩阵II(C++)
数据结构·算法
苏言の狗35 分钟前
Pytorch中关于Tensor的操作
人工智能·pytorch·python·深度学习·机器学习
黑客Ash44 分钟前
安全算法基础(一)
算法·安全
云云3211 小时前
搭建云手机平台的技术要求?
服务器·线性代数·安全·智能手机·矩阵
云云3211 小时前
云手机有哪些用途?云手机选择推荐
服务器·线性代数·安全·智能手机·矩阵
bastgia1 小时前
Tokenformer: 下一代Transformer架构
人工智能·机器学习·llm
十年一梦实验室1 小时前
【C++】sophus : sim_details.hpp 实现了矩阵函数 W、其导数,以及其逆 (十七)
开发语言·c++·线性代数·矩阵