stata如何处理结构方程模型(SEM)中具有缺失值的协变量

简介: stata如何处理结构方程模型(SEM)中具有缺失值的协变量

本周我正和一位朋友讨论如何在结构方程模型(SEM)软件中处理具有缺失值的协变量。我的朋友认为某些包中某些SEM的实现能够使用所谓的“完全信息最大可能性”自动适应协变量中的缺失。在下文中,我将描述我后来探索Stata的sem命令如何处理协变量中的缺失。


为了研究如何处理丢失的协变量,我将考虑最简单的情况,其中我们有一个结果Y和一个协变量X,Y遵循给定X的简单线性回归模型。首先我们将模拟一个大数据集,所以我们知道真正的参数值:

gen x = rnormal()
gen y = x + rnormal()

这里真正的截距参数为0,真实斜率参数为1.残差误差为方差1。接下来,让我们设置一些缺少的协变量值。为此,我们将使用缺失机制,其中缺失的概率取决于(完全观察到的)结果Y.这意味着缺失机制将满足所谓的随机假设缺失。具体来说,我们将根据逻辑回归模型计算观察X的概率,其中Y作为唯一的协变量进入:

gen rxb = -2 + 2 * y
gen r =(runiform()<rpr)
现在我们可以应用Stata的sem命令来适应SEM:

(7270 observations with missing values excluded)

Endogenous variables

Observed:  y

Exogenous variables

Observed:  x

Fitting target model:

Iteration 0:   log likelihood = -6732.1256
Iteration 1:   log likelihood = -6732.1256

Structural equation model                       Number of obs      =      2730
Estimation method  = ml
Log likelihood     = -6732.1256

------------------------------------------------------------------------------
             |                 OIM
             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
Structural   |
  y <-       |
           x |   .6179208   .0179671    34.39   0.000      .582706    .6531355
       _cons |    .999025   .0200306    49.88   0.000     .9597658    1.038284
-------------+----------------------------------------------------------------
     var(e.y)|   .6472101   .0175178                      .6137707    .6824714
------------------------------------------------------------------------------
LR test of model vs. saturated: chi2(0)   =      0.00, Prob > chi2 =      .

在没有缺失值的情况下,sem命令默认使用最大似然来估计模型参数。

但是sem还有另一个选项,它将使我们能够使用来自所有10,000条记录的观察数据来拟合模型。从命令行,我们可以通过以下方式选择它:


*output cut

Structural equation model                       Number of obs      =     10000
Estimation method  = mlmv
Log likelihood     = -20549.731

------------------------------------------------------------------------------
             |                 OIM
             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
Structural   |
  y <-       |
           x |   .9804851   .0156235    62.76   0.000     .9498637    1.011107
       _cons |  -.0145543    .025363    -0.57   0.566    -.0642649    .0351562
-------------+----------------------------------------------------------------
      mean(x)|   .0032305   .0257089     0.13   0.900     -.047158    .0536189
-------------+----------------------------------------------------------------
     var(e.y)|    1.02696   .0324877                      .9652191     1.09265
       var(x)|   .9847265   .0314871                       .924907    1.048415
------------------------------------------------------------------------------
LR test of model vs. saturated: chi2(0)   =      0.00, Prob > chi2 =      .

估计现在是无偏的。

因此,我们获得无偏估计(对于此数据生成设置),因为Stata的sem命令(在此正确)假设Y和X的联合正态性,并且缺失满足MAR假设。


非正态X
让我们现在重新运行模拟,但现在让X在一个自由度上遵循卡方分布,通过平方rnormal()绘制:


clear
set seed 6812312
set obs 10000
gen x=(rnormal())^2
gen y=x+rnormal()

gen rxb=-2+*y
gen rpr=(rxb)/(1+exp(rxb))
gen r=(() rpr)
 x=. if r==0

使用缺少值选项运行sem,我们获得:

*output cut

Structural equation model                       Number of obs      =     10000
Estimation method  = mlmv
Log likelihood     = -25316.281

------------------------------------------------------------------------------
             |                 OIM
             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
Structural   |
  y <-       |
           x |   .8281994   .0066085   125.32   0.000      .815247    .8411518
       _cons |   .4792567   .0161389    29.70   0.000      .447625    .5108883
-------------+----------------------------------------------------------------
      mean(x)|   .5842649   .0224815    25.99   0.000     .5402019    .6283279
-------------+----------------------------------------------------------------
     var(e.y)|   .7537745   .0157842                      .7234643    .7853546
       var(x)|   3.073801   .0551011                       2.96768    3.183717
------------------------------------------------------------------------------
LR test of model vs. saturated: chi2(0)   =      0.00, Prob > chi2 =      .

现在我们再次有偏差估计,因为Y和X的联合常态假设不再成立。因此,如果我们使用此选项,当我们缺少协变量时,我们会发现联合正态假设是至关重要的。

完全随机缺失

让我们最后一次运行模拟,再次使用X卡方形分布,但现在X随机完全丢失(MCAR):


gen x=(rnormal())^2
gen y=x+rnormal()
replace x=if (()<0.5)

*output cut

Structural equation model                       Number of obs      =     10000
Estimation method  = mlmv
Log likelihood     = -25495.152

------------------------------------------------------------------------------
             |                 OIM
             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
Structural   |
  y <-       |
           x |   .9985166   .0093366   106.95   0.000     .9802173    1.016816
       _cons |  -.0092478   .0158659    -0.58   0.560    -.0403445    .0218488
-------------+----------------------------------------------------------------
      mean(x)|   .9738369   .0158113    61.59   0.000     .9428474    1.004826
-------------+----------------------------------------------------------------
     var(e.y)|   1.033884    .020162                      .9951133    1.074166
       var(x)|    1.83369   .0330307                       1.77008    1.899585
------------------------------------------------------------------------------
LR test of model vs. saturated: chi2(0)   =      0.00, Prob > chi2 =      .

尽管联合正态性假设被违反,现在我们再次进行无偏估计。我认为这是因为当数据是MCAR时,即使违反了正态性假设,也可以一致地估计均值和协方差结构.


相关文章
|
3月前
|
机器学习/深度学习 数据采集 算法
数据稀缺条件下的时间序列微分:符号回归(Symbolic Regression)方法介绍与Python示例
有多种方法可以处理时间序列数据中的噪声。本文将介绍一种在我们的研究项目中表现良好的方法,特别适用于时间序列概况中数据点较少的情况。
66 1
数据稀缺条件下的时间序列微分:符号回归(Symbolic Regression)方法介绍与Python示例
|
7月前
|
机器学习/深度学习 前端开发 数据可视化
R语言缺失数据变量选择LASSO回归:Bootstrap重(再)抽样插补和推算
R语言缺失数据变量选择LASSO回归:Bootstrap重(再)抽样插补和推算
|
7月前
R语言EG(Engle-Granger)两步法协整检验、RESET、格兰杰因果检验、VAR模型分析CPI和PPI时间序列关系
R语言EG(Engle-Granger)两步法协整检验、RESET、格兰杰因果检验、VAR模型分析CPI和PPI时间序列关系
|
7月前
stata对包含协变量的模型进行缺失值多重插补分析
stata对包含协变量的模型进行缺失值多重插补分析
|
7月前
R语言分析协变量之间的非线性关系
R语言分析协变量之间的非线性关系
|
7月前
R语言计量经济学:虚拟变量(哑变量)在线性回归模型中的应用
R语言计量经济学:虚拟变量(哑变量)在线性回归模型中的应用
|
7月前
SPSS两变量相关性分析
SPSS两变量相关性分析
142 0
|
机器学习/深度学习 人工智能 分布式计算
因果推断:效应估计的常用方法及工具变量讨论
日常工作中很多的策略/产品的效果是无法设计完美的随机实验的,要求我们从观察性数据中去(拟合随机试验)发现因果关系、测算因果效应。
1911 0
|
算法 数据挖掘 物联网
多变量数据的嵌入参数估计(Matlab代码实现)
多变量数据的嵌入参数估计(Matlab代码实现)
118 0
|
资源调度 算法 关系型数据库
概率图推断之变量消除算法
事实证明,推理是一项颇具挑战的任务。对于很多我们感兴趣的概率,要准确回答这些问题都是NP难题。至关重要的是,推理是否容易处理取决于描述概率的图的结构。尽管有些问题很难解决,我们仍然可以通过近似推理方法获得有用的答案。
272 0
概率图推断之变量消除算法

热门文章

最新文章