因素分析 使用lisrel做结构方程模型(验证性因素分析)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
有关因素分析的一些基本问题
(2007-05-27 23:38:16)
转载▼
分类:读书笔记
有关因素分析的一些基本问题
1、因素分析的意义
因素分析的意义主要在于一是寻求数据的基本结构,另一方面是为了简化数据。
2、因素分析的基本原理
因子分析模型
X i=f1+a i2f2+…+a im f m+u i(i=1,2,3,4,5,6,…,k)
在该模型中:
(1) f1,f2,…,f m叫做公因子(Common factors),它们是各个观测变量所共有的因子,解释了变量之间的相关。
(2) u i称为特殊因子(Unique factor),它是每个观测变量所特有的因子,相当于多元回归中的残差项,表示该变量不能被公因子所解释的部分。
(3) a ij称为因子负载(Factor loadings),它是第i个变量在第j个公因子上的负载,相当于多元回归分析中的标准回归系数(i=1,…,k;j=1,…,m)。
几个重要概念:
因素载荷/因素负荷量:原始变量与因素分析抽取出的共同因素的相关,反映了原始变量与共同因素之间关系的密切程度。
共同性/公因子方差:每个原始变量在每个共同因素的符合量的平方和,也就是可以被共同因素解释的变异百分比,从共同性的大小可以判断这个原始变量与共同因素之间的关系程度。
特征值:每个变量在某一共同因素负荷量的平方总和。
特征最大的共同因素首先被抽取。
特征值除以总题数为此共同因素可以解释的变异量。
因素分析的目的在于以最少的共同因素对总变异量做最大的解释,因而抽取的因素越少越好,但抽取因素之累积解释变异量越大越好。
3、进行因素分析的样本规模
一般有以下几个指标:
(1)绝对样本规模。
200为最低要求;
(2)样本与项目数之比,一般要求要大于5。
如,编制一份预试问卷,有20到题目(项目数),则样本人数最少不少于100。
(3)项目数与因子数之比,要求大于4。
如20道题目,抽取的因子不能大于5个。
4、因素抽取方法的选择?
因素抽取方法多采用主成分分析,SPSS指导手册,也是如此建议。
另外也有采用主轴法的。
5、关于因素的旋转?
正交旋转正交旋转假定各因素之间是相互独立的,没有相关,其目的在于获得因子的简单结构,即使每个变量在尽可能少的因子上有较高的负载。
评:比较简单,概念上比较清晰。
但是因素分析模型并没有规定因素之间必须独立;心理学研究中的许多概念是相关的,人为的将其限定为相互独立的因素并不符合事实;正交旋转人为的设置了多余的限制,导致旋转后的因素负荷矩阵简单性和清晰性,导致整个模型的拟合度比斜交旋转要差。
斜交旋转斜交旋转对因子间的是否相关并无限制,比起正交旋转更具有一般性。
斜交旋转能提供更多的信息,即因素之间的相关矩阵。
另外如果因素之间相关较高的话,还意味着可能存在着“高阶”因素,还可以进行更高阶的因素分析,这一点是正交旋转办不到的。
6、关于因素个数的确定?
一般有如下几种方法:
(1)特征值大于1法。
(2)碎石检验法
(3)平行分析法(Parallel analysis)
如因素抽取采用最大使似然法,则确定因素个数的具体方法有:(使用前提,所有变量都呈正态分布)
(1)perfect fit test 完全拟合检验;
(2)Tuker-Lewis法;
(3)RMSEA法。
更好的一个程序是:
(1)研究者在理论种是否事先假定了因素个数
(2)考虑一些简单的方法,先看一下如特征值大于1法和碎石图法
(3)考虑由最大似然法所产生的模型拟合程度的信息
(4)根据以上三方面的信息,将可能的因素压缩到一个比较小的范围
(5)根据第四步确定的因素范围分别抽取不同个数的因素,比较旋转个因素负荷的可解释性,作出最终决定。
7、论文写作应注意的
论文写作应将因素负荷矩阵的数据全部加以报告。
8、双载荷的含义?以及删减题项的标准是什么?
在因子载荷矩阵中,首先找出在每个因子上有显著负载的变量,根据这些变量的意义给因子一个合适的名称,具有较高负载的变量对因子名称的影响更大。
一般认为绝对值小0.3的因子载荷就是显著的。
负载的绝对值越大,在解释因子时越重要。
因子负载反映了观测变量和因子之间的相关系数,负载的平方表示因子所解释的变量的总方差。
如有文章中删除小于0.3的题项和在多个题项上载荷大于0.3的项目。
每个因子所包含的题目数不能少于3个,因子载荷为负,并不代表小,只代表方向。
使用lisrel做结构方程模型(验证性因素分析)
(2012-07-04 15:56:11)
主要包括两个过程:数据的预处理和建立模型
1 假设数据现在是以sav的格式保存在你E盘的某个文件夹里的。
这时需要在C盘建立一个文件夹存放将要分析的sav数据。
数据应该事先做整理,这个数据文件应该只包括需要分析的变量,而不应该包括其他无关的变量,以方便到后面使用。
(根据经验,prelis生成的协方差矩阵只有放在C盘,需要时才能被找得到)
2 file-import external data in other formats.根据对话框,在文件类型里选择你刚刚保存数据的文件类型,点击文件名,打开。
为即将产生的prelis data(后缀名为.psf)命名,比如test.psf。
保存,出现prelis data的数据表。
3 data-define variables先对变量进行定义,比如定义变量的类型、缺失值、重命名变量,如果是分类变量,还可以定义类型标签等。
根据需要,我们以定义连续型数据为例:选中一个变量,点击variable type,选中continues,如果所有的变量都定义为连续变量,选中apply to all,OK,所有的变量将都是连续型数据。
返回到define variable对话框,继续定义缺失值:点击missing values,进入对话框,选中missing values。
导入后数据表中缺失值以-999999.00表示,在定义缺失值对话框中选中missing values,在填入框中填入所指定的值即可(如果要定义某个数值范围为缺失,填入最低最高的值即可)点击apply to all可以对所有的变量都定义同样的数值为缺失。
一般来讲,到此处缺失值就定义完毕了,然而,根据经验如果 global missing value中不做定义的话,个别功能不能识别出缺失值,因此,建议在此处也进行同样的设置。
定义完缺失值,还需要对缺失值进行处理,这里提供两种处理方式,即listwise(列删)pairwise(对删)。
直接按照默认的列删即可。
4.1 如果各变量的缺失值不多,删除带有缺失的样本很可惜,那么可以通过一些算法对缺失值进行填补即可。
statistics-multiple imputation,出现对话框,选择带有缺失值的变量进入右边的框,选择EM算法或者MCMC算法(两种算法的区别可以阅读一些学术文献了解其优缺点,一般这里按照默认的EM算法即可)。
其他选项默认。
点击output variable,出现对话框,选择协方差矩阵,勾选save to file,并命以名字,命名以.cov为后缀,比如test.cov,勾选lisrel system data,勾选save the transformed data to file
并命名以dsf为后缀。
OK之后,就会产生这些文件保存在C盘所建立的文件夹里了。
在这里test.cov最关键,因为接下来马上需要用。
这里等到一个填补缺失值后的prelis data,协方差矩阵也是根据这个数据表出来的。
到此,数据的预处理工作算是完毕了。
关闭prelis data。
4.2 第三步只是对原始数据进行了处理,并没有计算协方差矩阵。
如果没有4.1的情况,应该按照以下步骤得到协方差矩阵:statistics-output option,勾选save to file,并命以名字,命名以.cov为后缀,比如test.cov,勾选lisrel system data,勾选save the transformed data to file 并命名以dsf为后缀。
OK之后这些文件都会在C盘建立的文件夹里。
test.cov是很关键的,因为接下来马上需要用。
到此,数据的预处理工作算是完毕了,关闭prelis data。
5 接下来,是建立模型。
建立模型有两种途径:一是之间写syntax,二是通过path diagram
建模型。
这里主要记录使用path diagram的经验。
file-new,在下拉框中选择path diagram,出现对话框,为path diagram命名,后缀名为.pth,例如:test.pth。
保存之后就会出现绘图窗口。
左边小框为观测变量和潜变量的窗口,右边为画布。
菜单:setup-title and comments 出现对话框,可以给个题目和注释,不填也可以,直接next,分组变量,没有不填直接next。
接下来labels窗口,左边为观测变量,点击add/read variables,出现对话框,read from file,可以选择lisrel system file或者prelis system file,两者的变量名都相同,file name,点击browse,出现对话框,如果前面选择了lisrel system file,则出现dsf文件,如果前面选择prelis system file,则出现psf文件。
OK,观测变量名就加进来了。
右边为潜变量,add latent variables,直接命名潜变量即可。
next,进入data对话框,summary statistics-statistics,下拉框选择covariances,files下拉框,选择external ascii data,browse,选择C盘里建的文件夹,找到test.cov,选择、打开。
number of填入实际的样本量。
OK。
6 在右侧的变量窗口里,在观测变量里,点击Y列下的方块,显示打叉,表示相应的观测变量为内生潜变量的观测指标,下方的潜变量,在右侧的Eta列下打叉,表示相应的潜变量为内生潜变量。
把观测变量拖到右边的画布上,外生变量指标放左边,内生变量指标放右边。
先拖动内生潜变量到右边的画布,然后拖动外生潜变量(根据经验先拖动内生变量然后拖动外生变量不会出现问题)。
7 根据理论,点击单向箭头连接潜变量和测量指标,外生潜变量和内生潜变量,内生潜变量和内生潜变量(根据理论决定每个路径,同时注意:外生潜变量之间只能用双向箭头表示相关关系,不能用单向箭头表示因果关系,但是内生潜变量之间可以使用单向箭头表示因果关系)。
最后建立好模型。
8 setup-built lisrel syntax,生成程序语句,run lisrel,如果模型和协方差矩阵没有什么问题,潜变量间的路径系数、指标和潜变量间的载荷即可估计出来,并生成一个结果文件test.out。
在test.out文件中也可以看到路径系数和载荷,另外还可以看到模型的拟合指数等结果信息。
9 简单提一下如何修订模型:在path diagram中,etimate的下拉窗口中选择T-values,如果系数过小,T- values将会小于1.96,并显示为红色,表示该路径没有统计学意义应该删除。
选择modification indics将显示需要增加的路径,数值表示增加该路径后卡方值得下降量。
可以根据理论增加路径,一般从下降量最大的一条加起,一条一条进行。
注意每做一次修改后要把lisrel syntax文件重命名保存一次,方便选择相对理想的模型。