原文链接:http://tecdat.cn/?p=6349

原文出处:拓端数据部落公众号

本周我正和一位朋友讨论如何在结构方程模型(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 variablesObserved:  yExogenous variablesObserved:  xFitting 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 cutStructural 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.09265var(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 cutStructural 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    .7853546var(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 cutStructural 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.074166var(x)|    1.83369   .0330307                       1.77008    1.899585
------------------------------------------------------------------------------
LR test of model vs. saturated: chi2(0)   =      0.00, Prob > chi2 =      .

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

拓端tecdat|stata如何处理结构方程模型(SEM)中具有缺失值的协变量相关推荐

  1. R语言:结构方程模型sem、潜变量分析

    原文链接:http://tecdat.cn/?p=3071 对于熟悉线性回归拟合结构方程模型的分析师来说,在R环境中,拟合结构方程模型涉及学习新的建模语法,新的绘图语法以及通常是新的数据输入方法(点击 ...

  2. 【视频】结构方程模型SEM分析心理学营销数据路径图可视化|数据分享

    最近我们被客户要求撰写关于结构方程模型的研究报告,包括一些图形和统计输出.结构方程建模 (SEM) 是一个非常广泛和灵活的数据分析框架,也许更好地被认为是一系列相关的方法,而不是单一的技术.它与营销研 ...

  3. 拓端tecdat荣获掘金社区入驻新人奖

    2021年7月,由掘金发起了"入驻成长礼"颁奖活动.本次活动邀请到知名开发者.服务机构代表等业界人士. 据了解,掘金社区"新入驻创作者礼"主要对已经积累了一定历 ...

  4. R语言结构方程模型SEM、路径分析房价和犯罪率数据、预测智力影响因素可视化2案例

    最近我们被客户要求撰写关于SEM的研究报告,包括一些图形和统计输出. 1 简介 在本文,我们将考虑观察/显示所有变量的模型,以及具有潜在变量的模型.第一种有时称为"路径分析",而后 ...

  5. 拓端tecdat荣获2022年度51CTO博主之星

    相信技术,传递价值,这是51CTO每一个技术创作者的动力与信念,2022 年度,拓端tecdat 作为新锐的数据分析咨询公司,在51CTO平台上,不断的输出优质的技术文章,分享前沿创新技术,输出最佳生 ...

  6. 拓端tecdat|bilibili视频流量数据潜望镜

    最近我们被客户要求撰写关于bilibili视频流量的研究报告,包括一些图形和统计输出. 最新研究表明,中国有超过7亿人在观看在线视频内容.Bilibili,被称为哔哩哔哩或简称为B站,是中国大陆第二个 ...

  7. python可以构建sem模型_结构方程模型(SEM)可用于微生态研究及R语言实现

    导读 结构方程模型(Structural Equation Modeling,SEM)是一种能基于变量之间的协方差矩阵分析多变量之间结构关系的多元统计分析方法,也被称为协方差结构模型.该方法是因子分析 ...

  8. 结构方程模型(SEM)

    转载自http://blog.163.com/jiangfeng_data/blog/static/206414038201242644241486/ 结构方程这几年热度不减,有必要研究一下它的R语言 ...

  9. SPSS + AMOS 结构方程模型(SEM)

    写在前面 抽空学习了一下结构方程模型,主要运用的软件是SPSS+AMOS,感觉之后能用得上,现将整体思路结构梳理如下,方便日后查阅.问卷采取 Likert 五级量表,1-5依次代表"非常不同 ...

  10. amos调节变量怎么画_结构方程模型建模思路及Amos操作--调节变量效果确定(一)(满满都是骚操作)...

    2233镇楼~新年第一篇当然是给陪伴吾等死肥宅这么久的B站,新年快乐~新的一年,穷B不买化妆品也要为自己氪大会员...(゜▽゜)つロ po一下天依老婆跨年的歌,烘托新年的气氛[洛天依|周华健]江苏卫视 ...

最新文章

  1. C# 开发微信扫码登录
  2. QtCreator中的Sysroot的含义及坑
  3. python各版本区别_关于python中不同版本的print区别
  4. jsp工程防止外部注入_XPATH注入详解|OWASP Top 10安全风险实践(五)
  5. 6-7 使用函数输出水仙花数_学习C语言居然对printf函数不理解???
  6. easyui 扩展tree 获取选中节点的级数
  7. python程序中结束while循环的两种方法是_Python中while循环
  8. Struts2中的异常处理
  9. 爱情四十八课,深情淡如水
  10. 字典树-大量字符串前缀及出现次数是否存在统计(Trie树-java)算法实现
  11. creo不完全约束_Creo绘图1:1输出AutoCAD配置方法详解,工程图输出再不用担心尺寸乱变!...
  12. oracle vm.drop_caches,墨菲定律一个参数Drop_caches导致集群数据库实例崩溃
  13. android vplayer 源码,videoplayer-Vplayer
  14. web前端学习13-19(HTML常用标签)
  15. 311运动(冰箱与内裤)的由来
  16. kettle导数据入HBase数据库报错解决
  17. WPS表格的常用操作技巧大全
  18. Java毕设项目——人事管理系统(java+SSM+Maven+Mysql+Jsp)
  19. ping 192.168.1.1-t命令有什么用?是什么意思?
  20. 基于python的图片序列转gif

热门文章

  1. 修改win10注册表来控制cpu的最大运行频率,实现电脑降温
  2. 多项式曲线,分段曲线,曲线参数化,平面曲线,插值方法的样条曲线
  3. 4月23 nuTonomy的语义层(人行横道,人行道,交通信号灯,停车线,车道等)的扩展包
  4. spark 数据倾斜调优
  5. centos7使用kubeadm搭建kubernetes集群
  6. samba 安装配置部署和优化
  7. 简单的HTML5 Web Storage留言册
  8. 把grid第一列设置为行号
  9. 博客平台、Markdown编辑器与hexo admin简介
  10. k邻近算法应用实例(一) 改进约会网站的配对效果