结构方程中软件操作过程课件_第1页
结构方程中软件操作过程课件_第2页
结构方程中软件操作过程课件_第3页
结构方程中软件操作过程课件_第4页
结构方程中软件操作过程课件_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

结构方程中的缺失数据处理EM、FIML、MI--软件操作与理论探讨李晓煦2006/10/06香港中文大学教育心理系lixiaoxu@.hk结构方程中的缺失数据处理EM、FIML、MI--软件操作1第一部分:软件操作LISREL8.7.2-----专业的结构方程分析软件FIML, EMSAS9.1.3---胜任大规模的数据,高强度的运算MI,EMR2.3.1-----开源的公共软件,灵活的自由编程EM,MI第一部分:软件操作LISREL8.7.2-----专业的结2LISREL提供的例子浏览LISREL的安装目录打开子目录…\MISSINGEX\把数据文件grant.dat和程序文件MISSEX2A.ls8复制到自己创建的临时练习目录中LISREL提供的例子浏览LISREL的安装目录3在应用任何一方法之前检查数据是否因为缺失而错列看最后几列数据的缺失率是否特别大检查缺失值的标记,把不合理的数值改为缺失用直方图、散点图概览(尤其是数据量很大时)在应用任何一方法之前检查数据是否因为缺失而错列4Excel中的数据预览如何导入自由格式、列对齐格式数据到Excel(数据获取外部数据导入文本文件)如何在Excel中看直方图与描述统计量(工具加载宏勾选“分析工具库”,确定;工具数据分析选需要的统计分析功能,点“确定”在弹出窗口点“帮助”)当数据量大于65526或者变量多于256时,需要用LISREL或者SAS、R之类的软件Excel中的数据预览如何导入自由格式、列对齐格式数据到Ex5LISREL中的数据预览导入数据:FileImportData选数据文件,确认设定临时数据文件名,确认手工设定变量个数、首行是否变量名看多变量散点图、单变量直方图Graphs…留意散点图中对鼠标右键功能的提示;留意直方图中的样本量NLISREL中需要定义缺失值DataDefineVariables选变量,点MissingValuesLISREL中的数据预览导入数据:6LISREL图形界面中的缺失值设置*全部的缺失值都写在下方Globalmissingvalues一栏;如果写在上方Missingvalues栏,Lisrel8.7.2会在某些场合不认。*除了设置缺失值,DefineVariables窗口中,还要点VariableTypes设置变量类型LISREL图形界面中的缺失值设置*全部的缺失值都写在下方G7“EM”的两层意思Expectation-Maximization(EM)是源自缺失数据处理的一种参数估计算法,在许多广泛应用的模型(比如HLM)上有重要的应用缺失数据中的EM方法特指用EM算法从含缺失的数据估计出协方差/相关系数矩阵、均值向量。大部分多元统计模型只需要协方差和均值输入。SEM只是其中一种。“EM”的两层意思Expectation-Maximizat8LISREL8.7.2中的EM方法标记好缺失数据后,就可以在图形界面作EM估计(StatisticsMultipleImputation在弹出的窗口按缺省设置点run拷贝编辑.out文件输出的协方差矩阵,作为.ls8文件的输入数据MI实际上是MultipleImputation的缩写。但LISREL8.7.2并不提供完整的MI功能。EM是三个方法中最容易实现的方法,所以FIML和MI都缺省地利用EM方法来提供迭代的初值。LISREL8.7.2中的EM方法标记好缺失数据后,就可以在9什么是FullInformationMaximizing-Likelihood与EM、MI方法不同,FIML缺失数据方法只针对SEM。假如所有的观测缺失的变量都相同,等同于缺失的变量从模型里去掉。按缺失的模式把所有的观测分组,每组内的数据缺失的变量都相同。分组建模,再限制各组的参数相等,就是FIML方法。FIML方法的具体实现变化很多,不同的软件有所差别。什么是FullInformationMaximizing10LISREL8.7.2中的FIML法FIML方法不计算协方差矩阵,而是直接对样本数据建模。看例子MISSEX2A.ls8DANI=6…MI=-9 RAFI=GRANT.dat

RA就是Rawdata,FI就是File;这一句取代了通常CM/KM语句的协方差矩阵输入。此外,在DA句中MI就是MissingValue,表示数据中-9用来标记缺失数据。LISREL8.7.2中的FIML法FIML方法不计算协方差11MultipleImputation方法与SingleImputation对比--SingleImputation就是把所有缺失位置给一个修补的数值,用修补的结果建模MultipleImputation就是按某种特定的随机抽样法则去修补。对多个修补的版本分别建模,然后汇总各个版本的参数估计结果。MultipleImputation方法与Single12SAS中的MI与EM方法

SAS是昂贵的商业软件,胜任大规模(比如样本量超过10万)或高运算量的数据处理与统计。

SAS的帮助文档内容翔实,范例很具体。但规模太大,组织稍有些乱,初学者往往不能迅速查到。MI方法适用于一般的多元统计模型,比如多层分析。SAS9的MI方法(附带EM)子程序是ProcMI,能提供原始数据替算缺失值的多组采样版本,此外还提供了ProcMIANALYZE用于合并各个采样版本对应的模型估计结果。

SAS中的MI与EM方法

13SAS提供的EM与MI的范例EM方法的范例/rnd/app/da/new/802ce/stat/chap9/sect32.htm

EM是适用一般多元统计模型的缺失数据处理方法。最后输出的是均值与方差矩阵的(无偏)估计值。MI方法的范例/rnd/app/da/new/802ce/stat/chap10/sect2.htm MI输出的中间结果是原始数据替算缺失值后的多个(缺省为5个)采样版本。这些版本的数据逐一用于模型估计,得到的估计参数分为两类:一类是均值估计,一类是协方差、方差估计。这两类参数都输入给ProcMIANALYZE汇总为最后的结果。 *例子中做的是多元回归模型。SAS中分析结构方程模型的子程序是ProcCALIS,参考/sashtml/stat/chap19/sect2.htm

*例子中的ProcMIAnalyze中要把旧版本的var改成新版本的modeleffectsSAS提供的EM与MI的范例EM方法的范例http://su14SAS的MI范例解析

原始含缺失的数据(ProcMI)抽样m份修补的数据(模型估计)m份参数估计结果(ProcMIAnalyze)合并一份最终结果SAS的MI范例解析 原始含缺失的数据15R中的EM、MI方法R中的EM、MI方法16Copyleftv.s.CopyrightCopyleft,或译为“公共版权”、“版权左派”。Copyleft软件提供源代码,允许用户修改、传播,但禁止化公为私。任何人利用Copyleft源代码创作的软件也必须按Copyleft条款发布。但只限于软件,不包含书籍文章。R程序任何的扩展程序包都免费并开放源代码。但关于R的文章或书籍仍可以有版权。参考:/wikipedia/zh/wiki/Copyleft/Copyleftv.s.CopyrightCopy17在R中安装norm程序包要在R中应用EM方法,需要安装专门处理缺失数据多元统计的norm程序包。norm包的主页是:/src/contrib/Descriptions/norm.html

可以下载norm压缩包,把压缩包里的norm文件夹保存到R安装目录的子目录...\library\下;也可以在主窗口菜单下选择更新网站的镜像PackagesSetCRANMirror,然后点PackagesInstallPackage(s),在弹出的程序包选项里选择需要添装的项目)。在R中安装norm程序包要在R中应用EM方法,需要安装专门处18在R中启动程序包每次启动norm程序包,需要在主窗口菜单点Packages->Loadpackage...在弹出的窗口中选norm,然后点确认。在R中启动程序包每次启动norm程序包,需要在主窗口菜单点P19在命令窗里输入:help(em.norm)回车,弹出的帮助窗口解释em.norm的用法。首先从最后一段的实例入手。这段例子可以直接copy运行,得到EM估计的协方差矩阵:

>

data(mdata)#这一句把数据框mdata载入

>

s<-prelim.norm(mdata)

#dopreliminarymanipulations

>

thetahat<-em.norm(s)

#computemle

IterationsofEM:

1...2...3...4...5...6...7...8...9...10...11...12...13...14...15...16...17...

>

getparam.norm(s,thetahat,corr=TRUE)$r#lookatestimatedcorrelations

[,1]

[,2]

[,3]

[,4]

[,5]

[1,]

1.000000000.88753257-0.096423420.4889176

0.7145953

[2,]

0.887532571.00000000

0.093452970.5197721

0.5429959

[3,]-0.096423420.09345297

1.000000000.2930083-0.3598209

[4,]

0.488917590.51977207

0.293008261.0000000

0.3029066

[5,]

0.714595290.54299589-0.359820940.3029066

1.0000000R中的EM方法在命令窗里输入:help(em.norm)回车,弹出的帮助20R中的数据框 agehagewedu

inckid 1

34

30

1240000

1

2

45

44

1660150

3

3

42

42

1755300

2

4

30

22

1260200

2

5

53

46

1065800

4

6

33

35

1234500

2

7

67

44

1283500

5

8

28

28

1641000

3

9

30

28

1515000

0

10

43

NA

NA41260

2

11

34

30

1755000

1

12

40

NA

767050

3

13

67

55

NA78000

3

14

34

30

16

NA

2

15

25

26

12

NA

1

16

44

40

2067800

2

17

36

NA

1883200

1

18

42

37

NA

NA

3

19

22

22

732000

2

20

38

NA

025000

3

21

65

NA

570000

4

22

34

36

1285000

1

23

40

35

16

NA

NA

24

38

38

1895000

2

25

41

37

12

NA

2在命令窗口输入:mdata

回车,看这个例子所用的数据。其中NA在R中标记缺失数据。实际应用中,用户还需要掌握与R交换数据的技术,把自己的数据输入到R形成例子中的mdata数据框,把计算出来的相关系数矩阵存成外部文件。*建议初次接触R的读者首先花一个学时,通过在R中作练习,学习李东风老师的在线入门讲义前半部分(至《输入输出》一节)。

R中的数据框 agehagewedu

inck21R中的“缺失模式”报告注意语句>

s<-prelim.norm(mdata)

#dopreliminarymanipulations输入s回车看这个预处理的结果[,1][,2][,3][,4][,5]1411111410111111011110011311101111001111100

[,1][,2][,3][,4][,5][1,]-0.53008882-0.63531440-0.1731410-0.8248034-1.1088319[2,]0.410391341.058857330.67332600.11215610.6652991…[14,]-0.188096030.332783731.09655951.7326544-0.2217664[15,]-0.01709964NA-1.23122460.43300080.6652991…[18,]2.12035526NA-1.65445810.57017361.5523647[19,]2.291351652.38999225NA0.94216740.6652991[20,]0.23939495NANA-0.7662143-0.2217664….R中的“缺失模式”报告注意语句[,1][,2][,22R的MI方法与sem包R的norm包还提供了应用于一般MI方法的子程序。在命令窗里输入help(mi.inference)和help(imp.norm)看相关的帮助。更专业的MI方法软件包是mitools。

在R中分析结构方程模型,需要安装运行sem程序包,参考Fox,J.(2006),StructuralequationmodelingwiiththesempackageinR.StructuralEquationModeling,13:465-486R的MI方法与sem包R的norm包还提供了应用于一般MI方23第二部分:理论背景与方法比较理念与现状Rubin的理论框架EM、FIML、MI各自的原理三种方法对比无偏性与效率软件界面便利性相互关系实质性困难第二部分:理论背景与方法比较理念与现状24现状:缺失数据常见,令人满意的处理报告却罕见最糟糕:修饰数据为整齐,不报告缺失数据差强人意:报告用列删法(LD)、对删法(PD)、或者单次替算(SI)法专业水准:采用近年受到推荐的FIML、EM或者MI方法现状:缺失数据常见,令人满意的处理报告却罕见最糟糕:修饰数据25不同报告背后的理念对比整理修饰的数据信息不完整、形式整齐

含缺失的原数据形式不整齐、信息完整不同报告背后的理念对比整理修饰的数据26影响专业方法普及的因素软件界面对方法普及作用最关键最直接的因素是审稿人的标准--正在变化不理想的方法并不是在所有情况下都必定导致致命错误影响专业方法普及的因素软件界面对方法普及作用最关键27不同缺失模式的实际例子学生可能因为漏交答题纸而没有成绩;* 可能因为平时作业成绩优秀被豁免参加考试;* 可能因为某一科发挥太差而放弃剩下科目;**可能因为看到考卷太难而索性交白卷不同缺失模式的实际例子学生可能因为漏交答题纸而没有成绩;28Rubin经典框架的思路 最大似然估计是否可以不受缺失机制影响?只要缺失模式的概率由模式中观测位的变量值确定,独立于缺失位的值 IgnorableMissing MissingatRandom(MAR)Rubin经典框架的思路 最大似然估计是否可以不受缺失机制影29MCARMNARMCAR,缺失模式的概率与任何变量值无关MNAC,=NotMARMCARMNARMCAR,缺失模式的概率与任何变量值无关30MCAR、MNAR与MAR关系MCAR、MNAR与MAR关系31Expectation-Maximization(EM)算法的突破:Rubin等人(1977)思想:已知模型参数时可以反过来计算缺失位置上观测值的分布迭代/wikipedia/en/wiki/Expectation-maximization_algorithmExpectation-Maximization(EM)算法32MultipleImputation(MI)Rubin(1987)给出MI算法的关键基础需要抽样多少次?如何汇总方差估计?思想:多次抽样,类似蒙特卡罗法。与常见的蒙特卡罗法相比,MI需要的抽样次数很小。MultipleImputation(MI)Rubin(133MI抽样环节是否最大似然法则抽样?是否抽均值估计点?否!MI抽样是随机多次抽,每次抽样之间互相独立。不是只抽取似然函数最大值点。MI不是将抽样作平均后代入模型,而是逐一代入。MI抽样环节是否最大似然法则抽样?是否抽均值估计点?否!34SEM中的FIML大约在1987年这个方法成熟了,在各软件中的具体实现不尽相同思想把数据按缺失模式分组,然后在组内建立子模型应用SEM中的多组模型,约束各组的参数相等。

SEM中的FIML大约在1987年这个方法成熟了,在各软件中35SEM中的比较:估计的无偏性与效率EMFIMLMI对饱和模型是最大似然估计趋近最大似然估计,但要求样本量大非最大似然估计。但相对效率可以接近相等*最大似然估计意味着最优效率和MAR下的无偏SEM中的比较:估计的无偏性与效率EMFIMLMI对饱和模型36软件界面的便利性EMFIMLMI最方便;主流通用统计软件与主流SEM软件都有实现;而且便于添加辅助变量在主流SEM软件中有实现;但不方便添加辅助变量最不便。主流SEM软件中没有实现;需要配合其它软件使用但便于添加辅助变量软件界面的便利性EMFIMLMI最方便;主流通用统计软件与主37相互关系EMFIMLMI其特例MCEM中用到MI思想算法具体步骤可用到EM算法,参数初值可用EM估计抽样所需要的分布的初值可以用EM估计相互关系EMFIMLMI其特例MCEM中用到MI思想算法具体38困难:

缺少样本量的调整估计拟合指标EMFIMLMI只能给出协方差矩阵离差F0,参数的标准误差上下界估计偏差太大只能给出似然比估计的p值,参数的标准误差估计优于EM目前有估计似然比p值的方法,但未有方便的软件实现;可以无偏地估计参数标准误差困难:

缺少样本量的调整估计拟合指标EMFIMLMI只能给出39NO=?样本量更大好还是更小好名义上的样本量对参数的均值估计、拟合指标F0没有影响。协方差与均值就完全决定了这些报告值。样本越多,协方差和均值估计越精确参数均方误差估计与输入的样本量直接有关;绝大部分拟合指标是F0和输入的样本量、模型自由度的函数,因此受输入的样本量影响。用部分数据计算出的协方差建模,输入全部数据的样本量,会使模型的报告错误地显得更差;用全部数据计算出的协方差建模,输入部分数据的样本量,会使模型的报告错误地显得更好。NO=?样本量更大好还是更小好名义上的样本量对参数的均值估计40EM、FIML与MI样本量问题FIML与MI在建模时没有输入样本量的问题,但在报告时仍然有样本量的问题。报告的p值(卡方值从p值计算)是无偏的,但其他拟合指标都有偏差EM应该输入的样本量大小没有定论,但F0、与参数均值估计的报告值不受输入的样本量大小影响EM、FIML与MI样本量问题FIML与MI在建模时没有输入41只用无缺失的部分数据建模系统性的缺失(MAR,MNAR)参数估计有未知的系统性偏差,拟合指标也可能有未知的系统性偏差独立随机的缺失(MCAR)模型的功效(StatisticalPower)受到损害,但参数估计无偏,拟合指标也无偏。只用无缺失的部分数据建模42用含缺失的全部数据建模MAR,MCAR参数估计无偏,部分拟合指标有未知的系统性偏差,StatisticalPower不受损害MNAR经验表明,参数估计的偏差比其他方法更小,部分拟合指标比其他方法偏差更小思考:在什么情况下,用含缺失的全部数据还不如只用完整的部分数据建模?用含缺失的全部数据建模43RMSEA的几何意义在一般的无缺失情形,如果模型完全正确(总体RMSEA=0),那么有普通卡方=(N-1)*F0如果模型只是近似正确(总体RMSEA虽然小,但大于0,不可完全被忽略)非中心卡方(非中心参数λ)=(N-1)*F0其中,非中心参数λ=(N-1)*df*RMSEA2RMSEA的几何意义在一般的无缺失情形,如果模型完全正确(总44END欢迎参加2006/10/07晚的课程SAS系统入门与证书考试介绍

李晓煦香港中文大学教育学院lixiaoxu@.hkEND欢迎参加2006/10/07晚的课程45结构方程中的缺失数据处理EM、FIML、MI--软件操作与理论探讨李晓煦2006/10/06香港中文大学教育心理系lixiaoxu@.hk结构方程中的缺失数据处理EM、FIML、MI--软件操作46第一部分:软件操作LISREL8.7.2-----专业的结构方程分析软件FIML, EMSAS9.1.3---胜任大规模的数据,高强度的运算MI,EMR2.3.1-----开源的公共软件,灵活的自由编程EM,MI第一部分:软件操作LISREL8.7.2-----专业的结47LISREL提供的例子浏览LISREL的安装目录打开子目录…\MISSINGEX\把数据文件grant.dat和程序文件MISSEX2A.ls8复制到自己创建的临时练习目录中LISREL提供的例子浏览LISREL的安装目录48在应用任何一方法之前检查数据是否因为缺失而错列看最后几列数据的缺失率是否特别大检查缺失值的标记,把不合理的数值改为缺失用直方图、散点图概览(尤其是数据量很大时)在应用任何一方法之前检查数据是否因为缺失而错列49Excel中的数据预览如何导入自由格式、列对齐格式数据到Excel(数据获取外部数据导入文本文件)如何在Excel中看直方图与描述统计量(工具加载宏勾选“分析工具库”,确定;工具数据分析选需要的统计分析功能,点“确定”在弹出窗口点“帮助”)当数据量大于65526或者变量多于256时,需要用LISREL或者SAS、R之类的软件Excel中的数据预览如何导入自由格式、列对齐格式数据到Ex50LISREL中的数据预览导入数据:FileImportData选数据文件,确认设定临时数据文件名,确认手工设定变量个数、首行是否变量名看多变量散点图、单变量直方图Graphs…留意散点图中对鼠标右键功能的提示;留意直方图中的样本量NLISREL中需要定义缺失值DataDefineVariables选变量,点MissingValuesLISREL中的数据预览导入数据:51LISREL图形界面中的缺失值设置*全部的缺失值都写在下方Globalmissingvalues一栏;如果写在上方Missingvalues栏,Lisrel8.7.2会在某些场合不认。*除了设置缺失值,DefineVariables窗口中,还要点VariableTypes设置变量类型LISREL图形界面中的缺失值设置*全部的缺失值都写在下方G52“EM”的两层意思Expectation-Maximization(EM)是源自缺失数据处理的一种参数估计算法,在许多广泛应用的模型(比如HLM)上有重要的应用缺失数据中的EM方法特指用EM算法从含缺失的数据估计出协方差/相关系数矩阵、均值向量。大部分多元统计模型只需要协方差和均值输入。SEM只是其中一种。“EM”的两层意思Expectation-Maximizat53LISREL8.7.2中的EM方法标记好缺失数据后,就可以在图形界面作EM估计(StatisticsMultipleImputation在弹出的窗口按缺省设置点run拷贝编辑.out文件输出的协方差矩阵,作为.ls8文件的输入数据MI实际上是MultipleImputation的缩写。但LISREL8.7.2并不提供完整的MI功能。EM是三个方法中最容易实现的方法,所以FIML和MI都缺省地利用EM方法来提供迭代的初值。LISREL8.7.2中的EM方法标记好缺失数据后,就可以在54什么是FullInformationMaximizing-Likelihood与EM、MI方法不同,FIML缺失数据方法只针对SEM。假如所有的观测缺失的变量都相同,等同于缺失的变量从模型里去掉。按缺失的模式把所有的观测分组,每组内的数据缺失的变量都相同。分组建模,再限制各组的参数相等,就是FIML方法。FIML方法的具体实现变化很多,不同的软件有所差别。什么是FullInformationMaximizing55LISREL8.7.2中的FIML法FIML方法不计算协方差矩阵,而是直接对样本数据建模。看例子MISSEX2A.ls8DANI=6…MI=-9 RAFI=GRANT.dat

RA就是Rawdata,FI就是File;这一句取代了通常CM/KM语句的协方差矩阵输入。此外,在DA句中MI就是MissingValue,表示数据中-9用来标记缺失数据。LISREL8.7.2中的FIML法FIML方法不计算协方差56MultipleImputation方法与SingleImputation对比--SingleImputation就是把所有缺失位置给一个修补的数值,用修补的结果建模MultipleImputation就是按某种特定的随机抽样法则去修补。对多个修补的版本分别建模,然后汇总各个版本的参数估计结果。MultipleImputation方法与Single57SAS中的MI与EM方法

SAS是昂贵的商业软件,胜任大规模(比如样本量超过10万)或高运算量的数据处理与统计。

SAS的帮助文档内容翔实,范例很具体。但规模太大,组织稍有些乱,初学者往往不能迅速查到。MI方法适用于一般的多元统计模型,比如多层分析。SAS9的MI方法(附带EM)子程序是ProcMI,能提供原始数据替算缺失值的多组采样版本,此外还提供了ProcMIANALYZE用于合并各个采样版本对应的模型估计结果。

SAS中的MI与EM方法

58SAS提供的EM与MI的范例EM方法的范例/rnd/app/da/new/802ce/stat/chap9/sect32.htm

EM是适用一般多元统计模型的缺失数据处理方法。最后输出的是均值与方差矩阵的(无偏)估计值。MI方法的范例/rnd/app/da/new/802ce/stat/chap10/sect2.htm MI输出的中间结果是原始数据替算缺失值后的多个(缺省为5个)采样版本。这些版本的数据逐一用于模型估计,得到的估计参数分为两类:一类是均值估计,一类是协方差、方差估计。这两类参数都输入给ProcMIANALYZE汇总为最后的结果。 *例子中做的是多元回归模型。SAS中分析结构方程模型的子程序是ProcCALIS,参考/sashtml/stat/chap19/sect2.htm

*例子中的ProcMIAnalyze中要把旧版本的var改成新版本的modeleffectsSAS提供的EM与MI的范例EM方法的范例http://su59SAS的MI范例解析

原始含缺失的数据(ProcMI)抽样m份修补的数据(模型估计)m份参数估计结果(ProcMIAnalyze)合并一份最终结果SAS的MI范例解析 原始含缺失的数据60R中的EM、MI方法R中的EM、MI方法61Copyleftv.s.CopyrightCopyleft,或译为“公共版权”、“版权左派”。Copyleft软件提供源代码,允许用户修改、传播,但禁止化公为私。任何人利用Copyleft源代码创作的软件也必须按Copyleft条款发布。但只限于软件,不包含书籍文章。R程序任何的扩展程序包都免费并开放源代码。但关于R的文章或书籍仍可以有版权。参考:/wikipedia/zh/wiki/Copyleft/Copyleftv.s.CopyrightCopy62在R中安装norm程序包要在R中应用EM方法,需要安装专门处理缺失数据多元统计的norm程序包。norm包的主页是:/src/contrib/Descriptions/norm.html

可以下载norm压缩包,把压缩包里的norm文件夹保存到R安装目录的子目录...\library\下;也可以在主窗口菜单下选择更新网站的镜像PackagesSetCRANMirror,然后点PackagesInstallPackage(s),在弹出的程序包选项里选择需要添装的项目)。在R中安装norm程序包要在R中应用EM方法,需要安装专门处63在R中启动程序包每次启动norm程序包,需要在主窗口菜单点Packages->Loadpackage...在弹出的窗口中选norm,然后点确认。在R中启动程序包每次启动norm程序包,需要在主窗口菜单点P64在命令窗里输入:help(em.norm)回车,弹出的帮助窗口解释em.norm的用法。首先从最后一段的实例入手。这段例子可以直接copy运行,得到EM估计的协方差矩阵:

>

data(mdata)#这一句把数据框mdata载入

>

s<-prelim.norm(mdata)

#dopreliminarymanipulations

>

thetahat<-em.norm(s)

#computemle

IterationsofEM:

1...2...3...4...5...6...7...8...9...10...11...12...13...14...15...16...17...

>

getparam.norm(s,thetahat,corr=TRUE)$r#lookatestimatedcorrelations

[,1]

[,2]

[,3]

[,4]

[,5]

[1,]

1.000000000.88753257-0.096423420.4889176

0.7145953

[2,]

0.887532571.00000000

0.093452970.5197721

0.5429959

[3,]-0.096423420.09345297

1.000000000.2930083-0.3598209

[4,]

0.488917590.51977207

0.293008261.0000000

0.3029066

[5,]

0.714595290.54299589-0.359820940.3029066

1.0000000R中的EM方法在命令窗里输入:help(em.norm)回车,弹出的帮助65R中的数据框 agehagewedu

inckid 1

34

30

1240000

1

2

45

44

1660150

3

3

42

42

1755300

2

4

30

22

1260200

2

5

53

46

1065800

4

6

33

35

1234500

2

7

67

44

1283500

5

8

28

28

1641000

3

9

30

28

1515000

0

10

43

NA

NA41260

2

11

34

30

1755000

1

12

40

NA

767050

3

13

67

55

NA78000

3

14

34

30

16

NA

2

15

25

26

12

NA

1

16

44

40

2067800

2

17

36

NA

1883200

1

18

42

37

NA

NA

3

19

22

22

732000

2

20

38

NA

025000

3

21

65

NA

570000

4

22

34

36

1285000

1

23

40

35

16

NA

NA

24

38

38

1895000

2

25

41

37

12

NA

2在命令窗口输入:mdata

回车,看这个例子所用的数据。其中NA在R中标记缺失数据。实际应用中,用户还需要掌握与R交换数据的技术,把自己的数据输入到R形成例子中的mdata数据框,把计算出来的相关系数矩阵存成外部文件。*建议初次接触R的读者首先花一个学时,通过在R中作练习,学习李东风老师的在线入门讲义前半部分(至《输入输出》一节)。

R中的数据框 agehagewedu

inck66R中的“缺失模式”报告注意语句>

s<-prelim.norm(mdata)

#dopreliminarymanipulations输入s回车看这个预处理的结果[,1][,2][,3][,4][,5]1411111410111111011110011311101111001111100

[,1][,2][,3][,4][,5][1,]-0.53008882-0.63531440-0.1731410-0.8248034-1.1088319[2,]0.410391341.058857330.67332600.11215610.6652991…[14,]-0.188096030.332783731.09655951.7326544-0.2217664[15,]-0.01709964NA-1.23122460.43300080.6652991…[18,]2.12035526NA-1.65445810.57017361.5523647[19,]2.291351652.38999225NA0.94216740.6652991[20,]0.23939495NANA-0.7662143-0.2217664….R中的“缺失模式”报告注意语句[,1][,2][,67R的MI方法与sem包R的norm包还提供了应用于一般MI方法的子程序。在命令窗里输入help(mi.inference)和help(imp.norm)看相关的帮助。更专业的MI方法软件包是mitools。

在R中分析结构方程模型,需要安装运行sem程序包,参考Fox,J.(2006),StructuralequationmodelingwiiththesempackageinR.StructuralEquationModeling,13:465-486R的MI方法与sem包R的norm包还提供了应用于一般MI方68第二部分:理论背景与方法比较理念与现状Rubin的理论框架EM、FIML、MI各自的原理三种方法对比无偏性与效率软件界面便利性相互关系实质性困难第二部分:理论背景与方法比较理念与现状69现状:缺失数据常见,令人满意的处理报告却罕见最糟糕:修饰数据为整齐,不报告缺失数据差强人意:报告用列删法(LD)、对删法(PD)、或者单次替算(SI)法专业水准:采用近年受到推荐的FIML、EM或者MI方法现状:缺失数据常见,令人满意的处理报告却罕见最糟糕:修饰数据70不同报告背后的理念对比整理修饰的数据信息不完整、形式整齐

含缺失的原数据形式不整齐、信息完整不同报告背后的理念对比整理修饰的数据71影响专业方法普及的因素软件界面对方法普及作用最关键最直接的因素是审稿人的标准--正在变化不理想的方法并不是在所有情况下都必定导致致命错误影响专业方法普及的因素软件界面对方法普及作用最关键72不同缺失模式的实际例子学生可能因为漏交答题纸而没有成绩;* 可能因为平时作业成绩优秀被豁免参加考试;* 可能因为某一科发挥太差而放弃剩下科目;**可能因为看到考卷太难而索性交白卷不同缺失模式的实际例子学生可能因为漏交答题纸而没有成绩;73Rubin经典框架的思路 最大似然估计是否可以不受缺失机制影响?只要缺失模式的概率由模式中观测位的变量值确定,独立于缺失位的值 IgnorableMissing MissingatRandom(MAR)Rubin经典框架的思路 最大似然估计是否可以不受缺失机制影74MCARMNARMCAR,缺失模式的概率与任何变量值无关MNAC,=NotMARMCARMNARMCAR,缺失模式的概率与任何变量值无关75MCAR、MNAR与MAR关系MCAR、MNAR与MAR关系76Expectation-Maximization(EM)算法的突破:Rubin等人(1977)思想:已知模型参数时可以反过来计算缺失位置上观测值的分布迭代/wikipedia/en/wiki/Expectation-maximization_algorithmExpectation-Maximization(EM)算法77MultipleImputation(MI)Rubin(1987)给出MI算法的关键基础需要抽样多少次?如何汇总方差估计?思想:多次抽样,类似蒙特卡罗法

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论