结构方程中的缺失数据处理
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
宏勾选 “分析工具库”,确定;工具数据分析选需要的统 计分析功能,点“确定”在弹出窗口点“帮助”)
• 当数据量大于65526或者变量多于256时,需要 用LISREL或者SAS、R之类的软件
LISREL中的数据预览
• 导入数据:
– FileImport Data选数据文件,确认设定临时数据文件名, 确认手工设定变量个数、首行是否变量名
SAS中的MI与EM方法
•SAS是昂贵的商业软件,胜任大规模(比如样本量 超过10万)或高运算量的数据处理与统计。
•SAS的帮助文档内容翔实,范例很具体。但规模 太大,组织稍有些乱,初学者往往不能迅速查到。
•MI方法适用于一般的多元统计模型,比如多层分 析。SAS9的MI方法(附带EM) 子程序是Proc MI, 能提供原始数据替算缺失值的多组采样版本,此 外还提供了Proc MIANALYZE用于合并各个采样版 本对应的模型估计结果。
• R最新的(01JUN2006)版本是2.3.1,windows平 台上的安装包下载地址是:
/CRAN/bin/windows/base/R-2.3.1-win32.exe
*R的安装目录路径中不要留空格(不要安装在 Program Files目录下,为了与unix的规范兼容) *中文操作系统上安装的R界面缺省为中文,可以在桌面链接的 属性目标 中修改为英文。 …\bin\Rgui.exe LANGUAGE=en
其他拟合指标都有偏差?em应该输入的样本量大小没有定论但与参数均值估计的报告值不受输入的样本量大小影响只用无缺失的部分数据建模系统性的缺失marmnar参数估计有未知的系统性偏差拟合指标也可能有未知的系统性偏差独立随机的缺失mcar模型的功效statisticalpower受到损害但参数估计无偏拟合指标也无偏
什么是Full Information Maximizing-Likelihood
• 与EM、MI方法不同,FIML缺失数据方法只针对SEM。
• 假如所有的观测缺失的变量都相同,等同于缺失的变量从 模型里去掉。
• 按缺失的模式把所有的观测分组,每组内的数据缺失的变 量都相同。分组建模,再限制各组的参数相等,就是 FIML方法。
• 看多变量散点图、单变量直方图
– Graphs…
– 留意散点图中对鼠标右键功能的提示; – 留意直方图中的样本量N
• LISREL中需要定义缺失值
– DataDefine Variables选变量, 点Missing Values
LISREL图形界面中的缺失值设置
*全部的缺失值都写在下方Global missing values一栏;如果写在上方 Missing values栏,Lisrel8.7.2会在某些场合不认。 *除了设置缺失值,Define Variables窗口中,还要点Variable Types设置 变量类型
– MI, EM
• R2.3.1 -----开源的公共软件,灵活的自由编程
– EM, MI
LISREL提供的例子
• 浏览LISREL的安装目录
• 打开子目录 …\MISSINGEX\
• 把数据文件grant.dat 和 程序文件 MISSEX2A.ls8复制到自己创建的临时练 习目录中
在应用任何一方法之前
LISREL8.7.2中的EM方法
• 标记好缺失数据后,就可以在图形界面 作EM估计(StatisticsMultiple Imputation在弹出的窗口按缺省设置点 run拷贝编辑 .out 文件输出的协方差矩 阵,作为.ls8文件的输入数据
• MI实际上是Multiple Imputation的缩写。但LISREL8.7.2 并不提供完整的MI功能。EM是三个方法中最容易实现 的方法,所以FIML和MI都缺省地利用EM方法来提供 迭代的初值。
*例子中做的是多元回归模型。SAS中分析结构方程模型的子程序是Proc CALIS,参考/sashtml/stat/chap19/sect2.htm *例子中的Proc MIAnalyze中要把旧版本的var改成新版本的modeleffects
SAS的MI范例解析
R中的数据框
在命令窗口输入:mdata 回车,看这个 例子所用的数据。其中NA在R中标记缺 失数据。
实际应用中,用户还需要掌握与R交换 数据的技术,把自己的数据输入到R形 成例子中的mdata数据框,把计算出来的 相关系数矩阵存成外部文件。
*建议初次接触R的读者首先花一个学时,通过在R中作练习,学习李 东风老师的在线入门讲义前半部分(至《输入输出》一节)。
• FIML方法的具体实现变化很多,不同的软件有所差别。
LISREL8.7.2中的FIML法
• FIML方法不计算协方差矩阵,而是直接对 样本数据建模。看例子MISSEX2A.ls8
DA NI=6 … MI=-9 RA FI=GRANT.dat
RA就是Raw data,FI就是File;这一句取代了 通常CM/KM语句的协方差矩阵输入。
此外,在DA句中MI就是Missing Value,表示数 据中-9用来标记缺失数据。
Multiple Imputation 方法
• 与Single Imputation对比--Single Imputation就是把所有缺失位置给一个修 补的数值,用修补的结果建模
• Multiple Imputation就是按某种特定的随 机抽样法则去修补。对多个修补的版本 分别建模,然后汇总各个版本的参数估 计结果。
> getparam.norm(s,thetahat,corr=TRUE)$r #look at estimated correlations
[,1]
[,2]
[,3]
[,4]
[,5]
[1,] 1.00000000 0.88753257 -0.09642342 0.4889176 0.7145953
[2,] 0.88753257 1.00000000 0.09345297 0.5197721 0.5429959
原始含缺失的数据 (Proc MI)抽样m份修补的数据 (模型估计)m份参数估计结果 (Proc MIAnalyze)合并一份最终结果
R中的EM、MI方法
• R是遵从GPL条款的Copyleft软件。R编程 用S语言。参考北大数学学院李东风老师两 个学时的在线讲义《S语言介绍》:
/teachers/lidf/docs/statsoft/html/s/index.html
• 检查数据是否因为缺失而错列
– 看最后几列数据的缺失率是否特别大
• 检查缺失值的标记,把不合理的数值改为 缺失
• 用直方图、散点图概览(尤其是数据量很 大时)
Excel中的数据预览
• 如何导入自由格式、列对齐格式数据到Excel
(数据获取外部数据导入文本文件)
• 如何在Excel中看直方图与描述统计量 (工具加载
> data(mdata) #这一句把数据框mdata载入
> s <- prelim.norm(mdata) #do preliminary manipulations
> thetahat <- em.norm(s) #compute mle
Iterations of EM:
1...2...3...4...5...6...7...8...9...10...11...12...13...14...15...16...17...
[3,] -0.09642342 0.09345297 1.00000000 0.2930083 -0.3598209
[4,] 0.48891759 0.51977207 0.29300826 1.0000000 0.3029066
[5,] 0.71459529 0.54299589 -0.35982094 0.3029066 1.0000000
结构方程中的缺失数据处理
EM 、FIML 、MI--软件操作与理论探讨
李晓煦 2006/10/06 香港中文大学教育心理系
lixiaoxu@.hk
第一部分:软件操作
• LISREL8.7.2 -----专业的结构方程分析软件
– FIML, EM
• SAS9.1.3 ---胜任大规模的数据,高强度的运算
在R中启动程序包
• 每次启动norm程序包,需要在主窗口菜单 点Packages->Lபைடு நூலகம்ad package...
• 在弹出的窗口中选 norm, 然后点确认。
R中的EM方法
• 在命令窗里输入:help(em.norm) 回车,弹出的帮助窗口解释 em.norm的用法。首先从最后一段的实例入手。这段例子可以 直接copy运行,得到EM估计的协方差矩阵:
在R中安装norm程序包
• 要在R中应用EM方法,需要安装专门处理缺失 数据多元统计的norm程序包。norm包的主页是:
/src/contrib/Descriptions/norm.html
• 可以下载norm压缩包,把压缩包里的norm文件 夹保存到R安装目录的子目录...\library\ 下;也 可以在主窗口菜单下选择更新网站的镜像 Packages Set CRAN Mirror,然后点PackagesInstall Package(s),在弹出的程序包选项里选择需要添装 的项目)。
ageh agew edu inc kid
1 34 30 12 40000 1 2 45 44 16 60150 3 3 42 42 17 55300 2 4 30 22 12 60200 2 5 53 46 10 65800 4 6 33 35 12 34500 2 7 67 44 12 83500 5 8 28 28 16 41000 3 9 30 28 15 15000 0 10 43 NA NA 41260 2 11 34 30 17 55000 1 12 40 NA 7 67050 3 13 67 55 NA 78000 3 14 34 30 16 NA 2 15 25 26 12 NA 1 16 44 40 20 67800 2 17 36 NA 18 83200 1 18 42 37 NA NA 3 19 22 22 7 32000 2 20 38 NA 0 25000 3 21 65 NA 5 70000 4 22 34 36 12 85000 1 23 40 35 16 NA NA 24 38 38 18 95000 2 25 41 37 12 NA 2
SAS提供的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个)采样版 本。这些版本的数据逐一用于模型估计,得到的估计参数分为两类:一类 是均值估计,一类是协方差、方差估计。这两类参数都输入给Proc MIANALYZE汇总为最后的结果。
R中的“缺失模式”报告
• 注意语句
> s <- prelim.norm(mdata) #do preliminary manipulations
• 输入 s 回车看这个预处理的结果
[,1] [,2] [,3] [,4] [,5] 14 1 1 1 1 1 410111 111011 110011 311101 111001 111100
[,1] [,2] [,3] [,4] [,5]
[1,] -0.53008882 -0.63531440 -0.1731410 -0.8248034 -1.1088319
[2,] 0.41039134 1.05885733 0.6733260 0.1121561 0.6652991
“EM”的两层意思
• Expectation-Maximization(EM)是源自缺失数据 处理的一种参数估计算法,在许多广泛应用的 模型(比如HLM)上有重要的应用
• 缺失数据中的EM方法特指用EM算法从含缺失 的数据估计出协方差/相关系数矩阵、均值向量。 大部分多元统计模型只需要协方差和均值输入。 SEM只是其中一种。
• 当数据量大于65526或者变量多于256时,需要 用LISREL或者SAS、R之类的软件
LISREL中的数据预览
• 导入数据:
– FileImport Data选数据文件,确认设定临时数据文件名, 确认手工设定变量个数、首行是否变量名
SAS中的MI与EM方法
•SAS是昂贵的商业软件,胜任大规模(比如样本量 超过10万)或高运算量的数据处理与统计。
•SAS的帮助文档内容翔实,范例很具体。但规模 太大,组织稍有些乱,初学者往往不能迅速查到。
•MI方法适用于一般的多元统计模型,比如多层分 析。SAS9的MI方法(附带EM) 子程序是Proc MI, 能提供原始数据替算缺失值的多组采样版本,此 外还提供了Proc MIANALYZE用于合并各个采样版 本对应的模型估计结果。
• R最新的(01JUN2006)版本是2.3.1,windows平 台上的安装包下载地址是:
/CRAN/bin/windows/base/R-2.3.1-win32.exe
*R的安装目录路径中不要留空格(不要安装在 Program Files目录下,为了与unix的规范兼容) *中文操作系统上安装的R界面缺省为中文,可以在桌面链接的 属性目标 中修改为英文。 …\bin\Rgui.exe LANGUAGE=en
其他拟合指标都有偏差?em应该输入的样本量大小没有定论但与参数均值估计的报告值不受输入的样本量大小影响只用无缺失的部分数据建模系统性的缺失marmnar参数估计有未知的系统性偏差拟合指标也可能有未知的系统性偏差独立随机的缺失mcar模型的功效statisticalpower受到损害但参数估计无偏拟合指标也无偏
什么是Full Information Maximizing-Likelihood
• 与EM、MI方法不同,FIML缺失数据方法只针对SEM。
• 假如所有的观测缺失的变量都相同,等同于缺失的变量从 模型里去掉。
• 按缺失的模式把所有的观测分组,每组内的数据缺失的变 量都相同。分组建模,再限制各组的参数相等,就是 FIML方法。
• 看多变量散点图、单变量直方图
– Graphs…
– 留意散点图中对鼠标右键功能的提示; – 留意直方图中的样本量N
• LISREL中需要定义缺失值
– DataDefine Variables选变量, 点Missing Values
LISREL图形界面中的缺失值设置
*全部的缺失值都写在下方Global missing values一栏;如果写在上方 Missing values栏,Lisrel8.7.2会在某些场合不认。 *除了设置缺失值,Define Variables窗口中,还要点Variable Types设置 变量类型
– MI, EM
• R2.3.1 -----开源的公共软件,灵活的自由编程
– EM, MI
LISREL提供的例子
• 浏览LISREL的安装目录
• 打开子目录 …\MISSINGEX\
• 把数据文件grant.dat 和 程序文件 MISSEX2A.ls8复制到自己创建的临时练 习目录中
在应用任何一方法之前
LISREL8.7.2中的EM方法
• 标记好缺失数据后,就可以在图形界面 作EM估计(StatisticsMultiple Imputation在弹出的窗口按缺省设置点 run拷贝编辑 .out 文件输出的协方差矩 阵,作为.ls8文件的输入数据
• MI实际上是Multiple Imputation的缩写。但LISREL8.7.2 并不提供完整的MI功能。EM是三个方法中最容易实现 的方法,所以FIML和MI都缺省地利用EM方法来提供 迭代的初值。
*例子中做的是多元回归模型。SAS中分析结构方程模型的子程序是Proc CALIS,参考/sashtml/stat/chap19/sect2.htm *例子中的Proc MIAnalyze中要把旧版本的var改成新版本的modeleffects
SAS的MI范例解析
R中的数据框
在命令窗口输入:mdata 回车,看这个 例子所用的数据。其中NA在R中标记缺 失数据。
实际应用中,用户还需要掌握与R交换 数据的技术,把自己的数据输入到R形 成例子中的mdata数据框,把计算出来的 相关系数矩阵存成外部文件。
*建议初次接触R的读者首先花一个学时,通过在R中作练习,学习李 东风老师的在线入门讲义前半部分(至《输入输出》一节)。
• FIML方法的具体实现变化很多,不同的软件有所差别。
LISREL8.7.2中的FIML法
• FIML方法不计算协方差矩阵,而是直接对 样本数据建模。看例子MISSEX2A.ls8
DA NI=6 … MI=-9 RA FI=GRANT.dat
RA就是Raw data,FI就是File;这一句取代了 通常CM/KM语句的协方差矩阵输入。
此外,在DA句中MI就是Missing Value,表示数 据中-9用来标记缺失数据。
Multiple Imputation 方法
• 与Single Imputation对比--Single Imputation就是把所有缺失位置给一个修 补的数值,用修补的结果建模
• Multiple Imputation就是按某种特定的随 机抽样法则去修补。对多个修补的版本 分别建模,然后汇总各个版本的参数估 计结果。
> getparam.norm(s,thetahat,corr=TRUE)$r #look at estimated correlations
[,1]
[,2]
[,3]
[,4]
[,5]
[1,] 1.00000000 0.88753257 -0.09642342 0.4889176 0.7145953
[2,] 0.88753257 1.00000000 0.09345297 0.5197721 0.5429959
原始含缺失的数据 (Proc MI)抽样m份修补的数据 (模型估计)m份参数估计结果 (Proc MIAnalyze)合并一份最终结果
R中的EM、MI方法
• R是遵从GPL条款的Copyleft软件。R编程 用S语言。参考北大数学学院李东风老师两 个学时的在线讲义《S语言介绍》:
/teachers/lidf/docs/statsoft/html/s/index.html
• 检查数据是否因为缺失而错列
– 看最后几列数据的缺失率是否特别大
• 检查缺失值的标记,把不合理的数值改为 缺失
• 用直方图、散点图概览(尤其是数据量很 大时)
Excel中的数据预览
• 如何导入自由格式、列对齐格式数据到Excel
(数据获取外部数据导入文本文件)
• 如何在Excel中看直方图与描述统计量 (工具加载
> data(mdata) #这一句把数据框mdata载入
> s <- prelim.norm(mdata) #do preliminary manipulations
> thetahat <- em.norm(s) #compute mle
Iterations of EM:
1...2...3...4...5...6...7...8...9...10...11...12...13...14...15...16...17...
[3,] -0.09642342 0.09345297 1.00000000 0.2930083 -0.3598209
[4,] 0.48891759 0.51977207 0.29300826 1.0000000 0.3029066
[5,] 0.71459529 0.54299589 -0.35982094 0.3029066 1.0000000
结构方程中的缺失数据处理
EM 、FIML 、MI--软件操作与理论探讨
李晓煦 2006/10/06 香港中文大学教育心理系
lixiaoxu@.hk
第一部分:软件操作
• LISREL8.7.2 -----专业的结构方程分析软件
– FIML, EM
• SAS9.1.3 ---胜任大规模的数据,高强度的运算
在R中启动程序包
• 每次启动norm程序包,需要在主窗口菜单 点Packages->Lபைடு நூலகம்ad package...
• 在弹出的窗口中选 norm, 然后点确认。
R中的EM方法
• 在命令窗里输入:help(em.norm) 回车,弹出的帮助窗口解释 em.norm的用法。首先从最后一段的实例入手。这段例子可以 直接copy运行,得到EM估计的协方差矩阵:
在R中安装norm程序包
• 要在R中应用EM方法,需要安装专门处理缺失 数据多元统计的norm程序包。norm包的主页是:
/src/contrib/Descriptions/norm.html
• 可以下载norm压缩包,把压缩包里的norm文件 夹保存到R安装目录的子目录...\library\ 下;也 可以在主窗口菜单下选择更新网站的镜像 Packages Set CRAN Mirror,然后点PackagesInstall Package(s),在弹出的程序包选项里选择需要添装 的项目)。
ageh agew edu inc kid
1 34 30 12 40000 1 2 45 44 16 60150 3 3 42 42 17 55300 2 4 30 22 12 60200 2 5 53 46 10 65800 4 6 33 35 12 34500 2 7 67 44 12 83500 5 8 28 28 16 41000 3 9 30 28 15 15000 0 10 43 NA NA 41260 2 11 34 30 17 55000 1 12 40 NA 7 67050 3 13 67 55 NA 78000 3 14 34 30 16 NA 2 15 25 26 12 NA 1 16 44 40 20 67800 2 17 36 NA 18 83200 1 18 42 37 NA NA 3 19 22 22 7 32000 2 20 38 NA 0 25000 3 21 65 NA 5 70000 4 22 34 36 12 85000 1 23 40 35 16 NA NA 24 38 38 18 95000 2 25 41 37 12 NA 2
SAS提供的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个)采样版 本。这些版本的数据逐一用于模型估计,得到的估计参数分为两类:一类 是均值估计,一类是协方差、方差估计。这两类参数都输入给Proc MIANALYZE汇总为最后的结果。
R中的“缺失模式”报告
• 注意语句
> s <- prelim.norm(mdata) #do preliminary manipulations
• 输入 s 回车看这个预处理的结果
[,1] [,2] [,3] [,4] [,5] 14 1 1 1 1 1 410111 111011 110011 311101 111001 111100
[,1] [,2] [,3] [,4] [,5]
[1,] -0.53008882 -0.63531440 -0.1731410 -0.8248034 -1.1088319
[2,] 0.41039134 1.05885733 0.6733260 0.1121561 0.6652991
“EM”的两层意思
• Expectation-Maximization(EM)是源自缺失数据 处理的一种参数估计算法,在许多广泛应用的 模型(比如HLM)上有重要的应用
• 缺失数据中的EM方法特指用EM算法从含缺失 的数据估计出协方差/相关系数矩阵、均值向量。 大部分多元统计模型只需要协方差和均值输入。 SEM只是其中一种。