结构方程模型的基本观念
(一) 结构方程模型是什么结构方程模型可以说,就是「路径分析 (path analysis)」和「因子分析 (factor analysis)」的结合体。它的用途,与大家所熟悉的多元回归分析十分相似,但是不同的地方在于,结构方程模型是一种更为强大的统计方法,在构造模型和估计参数的过程里,可以直接处理多组方程间的互动干扰、非线性关系、不独立(相关)的自变量、残差相关、衡量误差、以及将多组相依的衡量模型共冶于一个单一模型当中。事实上,我们可以将结构方程模型视为「广义线性模型 (general linear model: GLM)」的延伸,它的强大功能,绝对可以用来取代我们惯用的回归分析、路径分析、因子分析、时间序列分析、甚至共变量分析。不过限于篇幅,本书将聚焦于结构方程模型在因子分析、潜变量路径分析、和一般路径分析上的应用。
相对于多元回归分析,结构方程模型在应用上的限制也较少,关键的亮点包括在进行「路径分析」的时候,即使自变量间存在明显的共线性 (multicollinearity),结构方程模型依然可以照单全收,丝毫不影响其解释上的有效性。利用结构方程模型来进行「验证性因子分析」,更可以通过将多个可观测变量指定给单一潜变量,从而可以在根源处直接降低衡量误差。尤其在残差的处理上,很少有统计方法可以这么方便地直接检查每一个可观测变量的残差,甚至操弄这些残差之间的相关。结构方程模型在路径系数的处理上也高人一等,不仅可以同时估计多个自变量对多组因变量的关系,还能够进行多样本多模型之间的系数比较。最重要的优势是,结构方程模型不仅仅可以估计单一参数的系数,还能够直接估计整体模型的拟合度,这是许多传统统计方法所望尘莫及的。
如前所述,结构方程模型的主要用途,其实是用来验证研究者心中对于他所想象世界的猜想,而比较不是用来探索一个新的世界。换言之,在应用结构方程模型的一开始,大多数的研究者在他的心中,早已存在某些定见了。这些定见的存在形式,大抵上可以分成两种:(1) 研究者想要检验他的某个想法是否正确,于是构造了一个结构方程模型,在代入真实数据对模型进行估计后,研究者可以根据拟合指标的好坏,来判断真实世界里的数据,和他所构造的模型之间是否一致,从而明白他原先的想法是否可以接受。(2) 研究者根据不同理论,得出两种或两种以上可以用来描述这个世界的不同看法,然后针对这些不同看法,分别构造出不同的结构方程模型来,在代入真实数据分别对这些模型进行估计后,研究者可以根据拟合指标的好坏,来判断究竟哪种看法,更加切合实际。
尽管如此,我们还是可以在文献中看到有些研究者,利用结构方程模型来进行模型探索,而不是正确使用结构方程模型,来验证心中事先设定的模型猜想。例如有些研究者在验证原先设定好的结构模型时,发现拟合指标很差,于是通过「修正指标 (modification index)」的暗示,「为数字而数字」地对模型任意调整改动,直到拟合指标达到及格标准为止。当然这样的作法并不可取,因为通过这种过程而勉强予以接受的结构模型,可能只是刚好反映了这组特定样本的特征,而不是因为模型本身可以放诸四海而皆准,换句话说,是因为这组特定样本造就了一个事先想象不到、缺乏理论依据的模型,而不是通过真实数据,验证了一个具有理论深度的模型。这样的模型即使拟合指标合格了,可能还是缺乏外部效度,我们很难接受这样的模型会是能够代表事实真理的模型。对于这种情形下所构造出来的结构方程模型,研究者有必要使用多组不同的样本,对相同模型进行多次验证,也就是「强韧度测试 (robust tests)」,如果多组样本都证实了相同结构模型的「拟合指标」都是及格的,那么我们才能够正式接受这个结构方程模型。 (二) 结构方程模型的前提假定
如前所述,结构方程模型在应用上的限制相对已经较少了,但是它和其他的多变量分析技术一样,在实际应用的时候,仍然有其特定的前提假定必须遵守。
(1) 结构方程模型里面的「可观测变量」必须服从正态分布。
由于在估计结构方程模型的拟合指标时,我们所采用的最基本工具是卡方检定 (chi-square test),卡方检定对于变量的正态性 (normality) 十分敏感,即使轻微的违背这个要求,都可能导致卡方检定结果发生很大的偏差。同时,大多数结构方程模型在估计参数时所采用的方法都是「极大似然估计法」,这方法在应用时的基本前提也是变量的正态性,尤其对于模型中「内生变量 (endogenous variables)」的正态性更是严格要求,因此「可观测变量」服从正态分布,是进行结构方程模型时不可回避的必要条件。这里补充说明一下,如果「可观测变量」不服从正态分布,但是其残差却:(a) 服从正态分布,(b) 所有残差的方差都很接近(代表残差同质),(c) 残差间彼此独立(也就是不相关),这时卡方的估计结果还是不偏的。不过这三个条件看来比要求「可观测变量」服从正态分布还要困难。
在实务上,避免违背这个条件的简易方法,首先就是尽可能不去使用「顺序尺度 (ordinal scale)」或是「名目尺度 (nominal scale)」这种「类别的」,或是「离散的」变量衡量方法。其次,在万不得已必须使用类别型变量衡量的时候,还可以选用一些「转换 (transformation)」技术,来「正态化 (normalize)」那些有问题的变量。所谓「转换」,就是根据变量的分布特征,通过数学代换,将原本不属于正态分布的变量,设法将之转变成具有正态分布性质的变量。常见的转换技术包括:取平方根 (square root)、取自然对数 (logarithmic)、或是函数1/x反转 (inverse)等等,其中函数反转优于取自然对数,自然对数又优于取平方根。
例如,对于服从「卜瓦松 (Poisson)」分布的变量,我们通常直接对它取平方根,即可赋予变量正态分布的特征;对于百分比形式的变量,「反正弦 (arcsine )」处理也许是个好方法;对于二项式分布的变量,通常使用的方法是通过「胜率 (Odds)」转换成概率后,再利用自然对数函数log(p/(1-p))进行转换;对于「韦布 (Weibull)」型「极值分布 (extreme value distribution)」形式的变量,则使用反转函数log(-log(1-x))进行转换。无论如何,这些变量转换必须有根有据,确实依据数学原理让变量获得正态分布的性质,否则再怎么奇巧转换也是无益的。最后,当然还需要利用一些统计方法,来验证模型中所使用的「可观测变量」的正态性。这些方法包括QQ-plot,Shapiro-Wilk Statistic,或是Kolmogorov-Smirnov Statistic等等,兹不赘叙。
(2) 结构方程模型里面作为「因变量」的「潜变量」必须服从正态分布。
所以结构模型里面,所有的「因变量」都不可以被设计成类别型变量的形式。如果万不得已必须使用类别衡量的变量作为因变量,那么必须改用「类别型潜变量分析 (latent class analysis: LCA)」方法处理,一般的结构方程模型软件并不能处理这种问题。坊间存在若干特殊的统计软件是专门用来处理这种类别型潜变量问题的,例如 Statistical Innovations公司的Latent GOLD软件(商业软件),或是Jeroen Vermunt博士的LEM(自由软件)。
(3) 线性关系的假定
结构方程模型预设了所有的「可观测变量」和它们所属的「潜变量」之间,以及「潜变量」和「潜变量」之间的关系,都必须是线性的。不过这倒不至于构成太严重的限制,因为就和一般的回归分析一样,对于我们所假定的变量间的非线性关系,我们仍然可以针对变量进行函数转换,来适应这个变量间必须是线性的要求。
(4) 潜变量的假定
在结构方程模型里面,我们基本上假定所有的路径关系,都只能采用非直接衡量的方式加以处理,也就是只存在「潜变量路径分析」。
(5) 多元的可观测变量
在结构方程模型中,所有的「潜变量」都必需由至少三个以上的「可观测变量」来加以描述,如果只有一个「可观测变量」在解释着某个特定的「潜变量」,那么这就不是结构方程模型,而是回归分析。如果只有两个「可观测变量」在解释着某个特定的「潜变量」,那么在模型中,这两个「可观测变量」必须被正式地表述 (specify)为相关,通过对这个相关的估计(等于新增一个可观测变量),才能够避免因为「可观测变量」不足所导致的「识别不足 (under identification)」问题,如果「识别不足」,则模型将受制于自由度不足而无法求解,连带的,当然也无法估计模型的「拟合指标」。
一个衡量模型至少必须满足「恰好识别 (just identification)」的条件才可能求解。「恰好识别」的模型又称为「饱和模型 (saturated model)」,也就是模型所构造的协方差矩阵(港台称为共变异矩阵,covariance matrix)中的元素数量,刚好和所需要估计的参数数量相等,这时在估计参数的时候,刚好用尽了所有的自由度,所以参数虽然可以被估计出来,但是却也因此而无法估计「拟合指标」,因为没有自由度的估计,其实就等于是真实的计算,也就是百分之一百的拟合,或者这么说,其实根本就没有拟合的概念可言。在这样的情形下,用来估计结构方程模型的软件,不论是Lisrel还是AMOS,都将会报告自由度为0,卡方值为0,同时无法计算显著水平。
研究者真正想要的其实是「过度识别 (over identification)」,「过度识别」代表已知变量间的协方差数量,大于未知的待估计参数的数量,所以这时模型的自由度将会是正的数值,我们才能够应用结构方程模型的软件来估计参数,同时计算出模型的各种「拟合指标」来。事实上由信度的立场来看这个问题,越多的「可观测变量」通常其结构信度也较佳,这可由Cronbach's alpha信赖系数的计算即可清晰观察出来,在同一个构念中,当我们放入的近似的衡量题项愈多,Cronbach's alpha的值很容易就可以升高。
所以在构造衡量题项的时候,最好尽可能从多维度多视角的多元观点来广泛采纳「可观测变量」,不要吝惜于「可观测变量」被纳入研究工具中的数量。毕竟在研究工具接受前测中效度信度检查的时候,就可能开始删减题项了,再加上田野调查之后,根据大规模数据进行衡量模型的效度信度检查时,还可能继续删减题项,如果原始题项不足,在最后的结构模型分析阶段,就很可能发生「识别不足」或是「恰好识别」的问题,为研究过程带来无谓的麻烦。 (三) 结构方程模型的构造与参数估计过程
诚如前述,结构方程模型基本上是「路径分析」和「因子分析」的结合体,其中的「路径」,指的是「潜变量」之间的因果关系,而「因子分析」指的则是「衡量模型」,由「可观测变量」和「潜变量」组合而成。事实上,不论是「路径」还是「衡量模型」,这些变量之间的关系,全都可以使用一般人容易明白的图解形式很直观地加以表达,同时,它们也可以使用学者所熟悉的数学语言,例如线性代数的形式,精确地加以表述。这两种方式,是一而二,二而一的事,本质上没有区别。
在这里,本书将采用AMOS软件为例,来对比一下结构方程模型的构造过程。不过在正式开始构造结构方程模型之前,让我们先来复习一下线性代数中,关于矩阵向量的一些基本概念。
(1) 向量与矩阵的基本概念
[img]http://www.spsschina.com/images/default/attachimg.gif[/img] [img]http://www.spsschina.com/attachments/forumid_62/20110121_1197a9c4512ff4eb3765zYkkoY8ayakr.jpg[/img]
(2) 构造结构方程模型的工作环境
接下来,让我们简单感受一下在AMOS中,用来构造结构方程模型的工作环境。在打开Amos Graphics之后,首先映入眼帘的是如下图这样的画面,AMOS提供了一个十分直观的图形化介面,和许多有用的模型构造工具,来帮助我们建构结构方程模型,而不需要使用诸如向量和矩阵等数学语言来定义模型。基本上,在AMOS中构造结构方程模型十分简单,只要使用鼠标将相应的元素点选后,直接在画面中的工作区里画出来就可以了。其中白色的方框代表「可观测变量」,白色的圆圈代表「潜变量」,单箭头表示「因果路径」,双箭头表示「相关」。其他的工具也都在帮助研究者,加速并降低构造模型所必须付出的努力,详情请参见软件使用说明与相关手册。
[img]http://www.spsschina.com/images/default/attachimg.gif[/img] [img]http://www.spsschina.com/attachments/forumid_62/20110121_4be2920158abce3cce929UXE7OEep3cZ.jpg[/img] (3) 模型的表述 (specification) 方式
[img]http://www.spsschina.com/images/default/attachimg.gif[/img] [img]http://www.spsschina.com/attachments/forumid_62/20110121_ce9f3c2819ecefa35dafzTWSCskWSZsI.jpg[/img]
(3) 模型的表述 (specification) 方式
[img]http://www.spsschina.com/images/default/attachimg.gif[/img] [img]http://www.spsschina.com/attachments/forumid_62/20110121_5c8c82d85c260d89e437rKX4X5ZP4PKc.jpg[/img]
[img]http://www.spsschina.com/images/default/attachimg.gif[/img] [img]http://www.spsschina.com/attachments/forumid_62/20110121_af4a6aa3d454d91fc5756glggtO36o3o.jpg[/img]
结构方程模型中数学符号的总整理
事实上,如果使用现代的统计软件来进行结构方程模型的参数估计,以上这些矩阵表达形式都已经不再需要了,商业软件中,不论是Lisrel还是 AMOS,早已提供了十分便利、而且功能强大的图形工具,帮助我们用最直观的方式来构造模型,甚至免费的自由软件Mx,都已经在最新的版本里提供了以图解方式构造模型的功能,所以上述这些数学表述的模型构造方式,似乎早已落伍,大可随手扬弃了。
不过,能够理解上面这些矩阵方程的表述形式,可以帮助我们更深入明白结构方程模型的内涵,使我们在以图解模式构造模型时,更能理解这些结构背后的意义与限制,从而提升我们在模型构造上的能力。同时,懂得这些矩阵表述式,可以让我们对于统计工具的选择更加自由,例如R这免费自由软件也提供估计结构方程模型的模块,只是必须使用矩阵表述方式来构造模型,即便如此,由于R在统计上超级强大的功能,我们就可以在R里面,通过具有逻辑回路的编程,将不同类型的统计过程结合在一起,甚至自行编写特殊用途的统计程序,自动化地进行许多更深入的统计分析,这是使用专属的结构方程统计软件所无法达成的事情。
所以,学习以矩阵方程的形式来构造结构方程模型,还是很有价值的。起码,熟悉这些数学语言,可以大幅度地释放我们在阅读一些关于结构方程模型的经典文献时,可能面临的困难。毕竟这些重要文献,大多存在许多这样的矩阵表述。以下将这些数学符号略作整理。
[img]http://www.spsschina.com/images/default/attachimg.gif[/img] [img]http://www.spsschina.com/attachments/forumid_62/20110121_cd67a202ffd6b4ffe0e3j8xEJCL2DAEx.jpg[/img]
模型识别
构造好结构方程模型以后,紧接着的工作,当然就是使用统计软件,对这个模型进行参数估计。这看起来非常容易,但是对于初学者而言,马上出现的问题,通常是模型「识别不足 (under identification)」的问题,换言之,统计软件跑不出我们所想要的模型估计,而且在电脑萤幕上出现一些程序错误的警告信息。如前所述,我们在进行结构方程模型估计的时候,最想要的模型设计是「过度识别」,也就是模型中的自由度,希望能高于所必须估计的参数数量,这个要求,不仅对于「衡量模型」非常重要,对于「结构模型」而言,也是一个必要的条件。
前面我们提到过,「识别不足」与「过度识别」的中线,是所谓的「恰好识别」,也就是所谓的「饱和模型」,如果能够辨认「恰好识别」的状态,我们就可以事先觉察所设计的模型会不会遇到「识别不足」的问题。例如某个模型总共有三个潜变量,A、B、与C,假定其中A同时影响B与C,而B又单独影响C。在这个简单的结构模型里,如果明白我们前述的「协方差矩阵」的表述方式,那么这里我们有三个待估计的参数(也就是这三条潜变量路径系数:A到B、A到C、与B 到C),同时这个模型的「协方差矩阵」里也刚好有三个元素 (COV(a,b)、COV(a,c)、与COV(b,c)),这刚好就是个「恰好识别」的模型,这时,如果我们增加一个待估计参数,比如猜想C对A在理论上存在因果作用,那么马上就出现了「识别不足」的问题。
避免出现「识别不足」和「恰好识别」现象的先决条件,当然就是在设计理论模型(或概念模型)的时候,就已经考虑了自由度的问题。最简单的判别方式就是去计算协方差矩阵里的元素数量,是否高于所需要估计的参数数量。当然,更容易的方法,就是让统计软件告诉我们,究竟这个模型估计跑不跑得动。例如,在通过田野调查大量搜集数据之前,先使用虚构的假资料来试试这个理论模型,可以很容易的看清楚模型设计里的缺陷。那么,为甚么要这么麻烦地使用虚构数据进行测试呢?为甚么不能在搜集好数据之后,使用真实数据来进行测试呢?原因是,我们马上要谈到,处理「识别不足」问题的方法之一,就是增加模型中的「自变量」数量,但是要能增加「自变量」,必须在大规模调研之前,在构造研究工具的时候,就要在衡量题项里加以考虑了,这可不是在田野调查之后还能亡羊补牢的事情。
但是,即使我们的理论模型看起来是「过度识别」了,在利用真实数据,进行模型参数估计的时候,统计软件还是可能告诉我们「识别不足」或是「恰好识别」,这是为甚么呢?最可能的原因有两个:一是在「非递归 (non- recursive) 」路径模型里,存在了数值过小的路径系数;或者,模型里的自变量(潜变量)之间,存在过于明显的多重共线 (multicollinearity)。以下针对这两种情形略加探讨。
相对于「非递归模型 (non-recursive model)」,「递归模型 (recursive model)」是指那些因果路径方向完全一致,不存在任何回路的模型,同时因变量的残差(干扰项)之间也不可以存在任何相关,因为一旦相关,就有了回路了(所以我们预期因变量残差的协方差矩阵中所有的元素都接近0)。例如前述这个A到B、A到C、与B到C的模型就是一个「递归模型」,但是如果在其中添增一个C到A或是C到B的路径,或者B与C的残差之间存在相关,这个模型就变成了一个「非递归模型」了。对于「非递归模型」,如果模型中的路径系数接近0,也就是说,预期发生因果关系的潜变量之间,事实上,在真实数据的检验之下,其实是无关的,这时一方面由于模型中存在回路,需要估计的参数比起「递归模型」要多得多,甚至可能已经是「恰好识别」了,另一方面,这些需要估计的参数(路径),实质上根本不存在显著因果关系,将使得结构模型的求解发生困难,在内定的迭代运算次数里还达不到均衡解,于是统计软件将之判断为「识别不足」。事实上,只要将模型设定成「递归模型」,同时我们确信因变量残差之间不存在相关,那么就一定不出现「识别不足」的问题。反之,由这里的描述,我们可以明白两种造成「识别不足」的可能情况:(1) 模型被构造成「非递归模型」的形式,同时其中存在接近0的路径系数;(2) 因变量的残差之间存在相关,同时模型中存在接近0的路径系数。
另一个造成「识别不足」的原因是自变量(潜变量)之间的多重共线问题。很显然的,这还是和我们当初是如何来猜想这个世界、如何来构造模型有关。一个优秀的模型,必须满足「简洁 (parsimony)」的要求,换言之,在周延地考虑了与研究问题真正相关的变量之后,所选定的变量与变量之间,必须在概念上能够互斥,在概念上高度相关的变量,就应该视为同一个变量,使用相同的潜变量加以处理,不可以枝枝节节,同时使用好几个潜变量来表述相同的概念。只要能够注意这一点,就不容易出现自变量之间的多重共线问题,从而,也就比较可以避免研究者最讨厌的「识别不足」的问题。
可是,有些时候,我们实在不够了解这个世界,我们在想象中以为不相关的概念,在真实的世界里,也许正是高度相关的,这与我们的人生境界、所接受的训练、对于研究问题的经验、认识等等,都有关系。那么,当我们的结构方程模型发生「识别不足」的时候,我们该如何来归因,才能够知道这可能是因为自变量之间的多重共线所造成的问题呢?首先是观察「标准化回归系数 (standardized regression weights)」,也就是「标准化路径系数」的数值,如果两个潜变量之间的「标准化路径系数」接近1,就代表这两个潜变量所代表的概念几乎相同,换句话说,这两个潜变量其实就是如假包换的同一个变量,这时如果将这两个潜变量同时当作自变量,来估计它们同时对另一个潜变量的影响,结构方程模型将无法计算这两条本来在概念上应该只有一条的路径系数,计算结果很可能就是其中一条的路径系数大于+1,而另一条却小于-1。所以在检查统计软件所跑出来的「标准化回归系数 」矩阵时,如果看见这种情形,那么就可以明白这个模型之所以「识别不足」,可能就导因于自变量的多重共线问题。
其次,如前所述,如果模型中存在两条共线很严重的路径,或者说,存在两个高度相关的自变量潜变量,共同在影响着同一个因变量潜变量,由于统计软件在参数估计上遇到困难,很可能直接将这些在迭代的过程中所面临的不稳定现象,都归入了「标准误 (standard errors)」,以致使得存在共线问题的路径的标准误,明显地大于其它不存在共线问题的路径的标准误,因此,我们也可以通过观察「未标准化回归系数 (unstandardized regression weights)」的「标准误」,来检查自变量之间是否存在多重共线的问题,进而确定模型发生「识别不足」的可能原因。
同样的,前述这个计算困难的问题,也可能反映在所估计参数的协方差矩阵 (covariance of the parameter estimates)里,那些协方差特别高的成对路径,很可能就在暗示着存在着共线的问题。另一个明显的指标是,存在共线的路径所指向的那个因变量(潜变量)的方差估计 (variance estimate) 可能为负值。所有这些征候,都反映着模型的「识别不足」问题,正可能是来自于自变量间的高度共线性所造成的。
如果很不幸地(事实上研究者通常就是这么不幸),我们的理论模型看起来很好,一点也没有「识别不足」的问题,但是在昂贵的田野调查之后,利用统计软件和大量样本,针对模型进行参数估计时,电脑却出现令人懊恼的「识别不足」问题,这时我们该怎么办呢?以下列出一些经验之谈:
(1) 设法找出并消除模型中的回路型的路径,换言之,就是设法将模型构造成「递归模型 (recursive model)」的形式。
(2) 从理论与实务同时下手,看看能不能找出证据,来支持模型中的某些待估计参数,其实是不需要估计的。换句话说,假如模型中原本有些预设需要估计的参数,但是在思考之后,我们发现这些参数的值,是可以合理的直接予以规定的,那么我们就可以直接将那些数值明白地表述 (explicitly specify) 在模型当中,这样每多指定一个固定 (fixed) 的值,模型就多出一个自由度来,可以很有效地消除模型「识别不足」的问题。但是能够这样做的前提,还是需要有根有据,不能为所欲为。
(3) 如果找不到证据支持来直接指定待估计参数的值,但是却必须利用这方法来增加自由度,那么还有一个秘诀可以使用。在AMOS的Analysis Properties的Output设定窗口里,勾选critical ratios for differences (CR) 这个选项,然后检查所跑出来的配对的路径系数的这个CR值(这个CR值,事实上等于两个路径系数的差,除以它的标准误,换句话说,就是标准化正态分布下的 Z值)如果CR<1.96,就代表这配对的两条路径之间的路径系数差异不显著(p>0.05),因此可以重新设定模型,将这两条路径的系数直接指定相同的任意值(当然要接近刚刚电脑跑出的估计值),因此就可以直接节省两个自由度。
(4) 设法减少模型中的路径。事实上,每减少一条路径,就等于减少一个待估计参数,也就同时增加了一个自由度。如果在模型中直接将路径系数指定为固定 (fixed) 的值0,这与在模型中删除这条路径的效果是一样的。
(5) 设法删减变量,让模型变得更简洁。
(6) 删除(合并)那些相关系数很高的自变量潜变量。
(7) 在模型中增添(导入)新的自变量潜变量。
(8) 保证每个潜变量的可观测变量都至少三个或以上。
(9) 确保样本数据中不存在遗漏值。
(10) 一般的统计软件直接内定使用「极大似然法 (maximum likelihood)」来进行参数的估计运算,可以考虑改用其他方法(例如GLS)试试看。
(11) 设法在统计软件中设定更高的迭代次数。
(12) 把电脑砸烂。(开玩笑的,后果请自负!)
拟合指标与模型修正
即使模型没有「识别不足」的问题,还有一件事,是研究者很惧怕看到的,那就是「拟合指标」不好,或者称为「违犯估计」的问题。「拟合指标」不及格,代表我们所想要验证的模型是不可以被接受的,也反映了模型的表述 (specification)方式 不好,不能充分地描述它所想要描绘的真实世界。这里所谓的「不好」,是指我们所搜集的数据「拒绝」了我们事先猜想的理论模型,如果这个数据来自随机抽样,而且真的能够代表我们所生存的真实世界,那么就证明了我们的模型确实不好,必需要加以修正;反之,如果模型的「拟合指标」及格,那么就代表我们所表述的模型,可能比较靠近了真理,或者至少是可以表达真里的众多模型中的其中之一。这里的主要问题是,我们无法确认代进模型中的数据,真的是真理的化身,真的充分的反映了这个世界的真相。所以即使我们的模型,「结构过硬」、「拟合及格」,我们也不能说,我们已经通过了结构方程模型证明了某个真理,至多只能说,我们的数据,并没有拒绝了我们对这个世界的猜想。
事实上,这里还有个所谓「对等模型 (equivalent models)」的问题,也就是,除了我们所表述的模型之外,可能还存在一些「拟合指标」很接近、「方差-协方差矩阵」很相似甚至完全相同,但是其实是不同表述形式的模型。考虑下列拥有相同三个潜变量的模型:
(1) A-->B-->C
(2) B-->C, B-->A, C-->A
(3) A-->B, A-->C, B-->C
(4) A<-->B, B-->C, C-->A
(5) .....
假定这四个不同表述方式的模型,它们的「拟合指标」都一样好,那么,究竟哪一个才真正代表真理呢?比较合理看待这个问题的态度是,回归洋八股的基本思想,我们在一开始设计这个模型的时候,就充分的引用了相关理论,来帮助我们解释这个世界的种种现象和行为,模型中特定概念之间的关系,不管是相关还是因果,也不管他们的影响方向,总之,全部必须有根有据,不能单纯基于空穴来风的臆测,这就是所谓的「先验理论优势 (status of a priori theory)」的观点,换句话说,有理论支撑的模型,要比没有理论支撑的模型更有效,我们在设计模型的时候,一定要充分考虑到模型中的理论支持,这样再来考虑模型的「拟合指标」才有实际的意义。同时,研究者在利用「结构方程模型」进行研究的时候,在不同理论和不同范式 (paradigms) 的支持下,也要多方考虑各种可能存在的「对等模型」,甚至通过「替代理论 (competing theories)」来考虑各种可能的「替代模型 (competing models)」,而不应该只考虑了一种模型设计,在代入数据后,侥幸得到及格的拟合度,就说自己验证了真理。事实上,寻找真神,哪里是这么容易的事!正确的作法是,在一开始整理文献、构造理论的时候,就该开始考虑「对等模型」了,而且,在发展模型的过程中,还应该在理论的支持下,清楚说明放弃这些「对等模型」的原因。当然更严谨的作法是,对于「拟合指标」很接近(检定下不显著)的「对等模型」,最好能够设计实验进行更仔细的检查,看看在不同的研究情境下,哪个模型更好。
诚然模型的拟合指标及格不代表我们找到了上帝,但是如果模型的拟合不及格,那么肯定这个模型出了问题。出了什么问题呢?简单的说,就是模型和数据之间不相匹配的问题。想要比较模型和数据之间是否拟合,最简单的概念就是去比较「由样本得来的真实的数据」和「使用模型所估计出来的数据」之间,是否十分接近,而用来进行检查的手段,最简单的,但是也是最重要的,就是卡方检定 (Chi-square test)。在结构方程模型中,实现这个过程的方法,主要就是去比较「样本的协方差矩阵」,和「所估计参数的协方差矩阵」之间,是否存在显著的差异,如果差异不显著(卡方值很小,或是卡方值的显著水平不显著),就代表这两者之间的差异不明显,换句话说,模型能够相对正确地估计出和真实数据接近的数值,因此我们就说,这个模型的拟合度良好。
但是卡方检定有个严重的缺点,就是对样本数太敏感,或者说,卡方检定比较适用于大样本的检定上,对于小样本,卡方检定的辨识能力实在不高,因为对于小样本,即使我们构造了一个距离事实很远的理论模型,由于小样本的缘故,我们只能得出一个很小的卡方值,所以拟合值比较可能及格;相对的,对于特别大的样本,卡方检定的辨识能力又过份强大,十分容易就会弃却一个和事实其实差距甚小的理论模型,这样就使得结构方程模型在进行「拟合指标」的检查时,出现了一些有待解决的问题。在过去一二十年当中,许多学者对这个问题分别提出了个别的解决方案,因此也就造就了许多种不同类型的「拟合指标」,来取代卡方检定的拟合检查。不过这些拟合指标,大多还是以卡方检定为基础来进行改良,并不是十分划时代的变革。这些指标,最主要可以分成以下这三大类,这当然不是完整的归纳,事实上还不断的有学者在提出新的拟合指标出来,但是明白了这三大类指标,对于只想要认识和应用「结构方程模型」的初学者来说,应该也已经很足够了。
(1) 绝对拟合指标 (absolute fit indices)
绝对拟合指标的计算方式,就是直接拿我们所猜想、所设定的「理论模型」,去和「饱和模型 (saturated model)」相比较。所谓「饱和模型」就是考虑了所有的变量间可能出现的所有情形的模型,模型中所有变量之间不论是两两成对的、以至于多变量间同时发生的交互作用,全部都被纳入构造模型的考量之内,也就是说,已经涵盖了真实世界中所有的可能状态,因此其自由度已经全部用尽,以致自由度为0,这是所有模型中最复杂,最庞大的模型类型。所以如果我们的理论模型居然和这个最完整的饱和模型若合符节,那么当然就代表我们的猜想和这个真实的世界「绝对拟合」啦。常用的「绝对拟合指标」除了卡方值外,还有GFI及 AGFI,他们的推荐值一般要大于0.9才算及格。这类指标最大的问题就是容易受到样本数的影响,样本数太小时,估计不可靠,样本数太大时,又太容易显著,所以饱受学者批评。
(2) 增量拟合指标 (incremental fit indices)
增量拟合指标的计算方式,就是拿「理论模型」,去和「基准模型 (base model)」相比较,来看看两个模型是否存在显著差异。所谓基准模型,刚好和前述的饱和模型相反,也就是单纯将变量摆在一起,但是排除变量间任何可能相关的模型,因此这是所有模型中最不拟合的模型类型。将理论模型和基准模型相互比较,可以看出理论模型比基准模型要更好多少,看看模型的拟合度改进了多少,这就是「增量」的概念,所增的量就是拟合的量。常用的「增量拟合指标」有NFI、NNFI、CFI、和IFI等,他们的推荐值一般要大于0.9才算及格。
(3) 简洁拟合指标 (parsimony fit indices)
上述两种拟合指标都只考虑单一理论模型的好坏,而没考虑到模型比较时,不同的理论模型间,究竟哪个更好的问题。这时除了上述两种拟合指标需要加以考虑外,还需要引入模型的「简洁原则 (parsimony)」,认为参数偏多的模型就是较差的模型。计算方法是利用前述的「增量拟合指标」,乘上一个「简洁比例 (parsimony ratio)」,来产生一个新的指标,就称为「简洁拟合指标」。这个「简洁比例」有几种不同的算法,不过在概念上简单说来,就是两个模型「自由度」的比例(理论模型的自由度/基准模型的自由度),所以如果理论模型愈复杂(愈接近饱和模型),模型的自由度就愈少,这个「简洁比例」就愈小,使得所计算出来的「简洁拟合指标」明显地低于原本的「增量拟合指标」。反之,如果理论模型愈精简,则其自由度愈接近「基准模型」,因此所计算出来的「简洁拟合指标」和「增量拟合指标」便不至于有明显差异。常用的「简洁拟合指标」包括PNFI(愈大愈好,在不做模型比较时,一般的推荐值以大于0.5为及格;在做模型比较时,希望两模型间至少存在0.06以上的差别)、PGFI(愈大愈好,一般的推荐值以大于0.5为及格)、AIC(愈小愈好)、和Normed chi-square(亦即卡方值除以自由度的值。如果小于1,表示受样本数影响,估计可能有偏差;一般推荐值介于1和2之间)。 目前结构方程在国内好像不是很受重视啊
页:
[1]