R语言结构方程SEM中的power analysis 效能检验分析

简介: R语言结构方程SEM中的power analysis 效能检验分析

简介

本文对结构方程模型进行效能分析。

本文从一些简单的例子开始。其余部分提供了一些关于统计背景的说明,各种效应大小的定义,以及本包所含函数的详细描述。

背景介绍

数学模型的统计评价通常是通过考虑测试统计量来进行的,测试统计量表示观察数据和拟合模型的数据之间的差异。在SEM中,大小为N的样本的相关测试统计量由T = Fˆ(N - 1)给出。Fˆ表示所选差异函数(如最大似然)的最小化样本值,从而表明模型与样本数据的不匹配。因此,T允许对模型正确的无效假设(H0)进行似然比检验。如果假设的模型在总体中成立,可以证明T在渐进上遵循中心χ 2(df)分布,df=.5-p(p+1)-q自由度,其中p是表现变量的数量,q表示自由参数的数量。这就是为什么T经常被称为 "卡方模型检验统计量"。

给出一个卡方检验统计量的观察值,可以进行一个无效假设的显著性检验。通常的检验过程如下。给定一个特定的α-误差水平(通常是α=0.05),从渐近中心χ 2(df)分布中得到一个临界卡方值。如果卡方检验统计量的观察值超过临界值,则拒绝模型符合数据的无效假设。否则,H0被保留。发现观察统计量超过临界值(意味着上尾概率低于指定的α水平),就会导致统计学上的判断,即假设和实际人口协方差矩阵之间的差异太大,不能仅仅归因于抽样误差。因此,具有统计学意义的卡方检验统计数字提供了反对假设模型有效性的证据。

当使用这个框架测试统计假设时,会出现两种类型的错误。不正确地拒绝一个真正的H0(一个正确的模型)的α错误(或I型错误)和不正确地保留一个错误的H0(一个错误的模型)的β错误(或II型错误)。

如果H0为假,则卡方检验统计量不再是中心χ 2(df)分布,而是可以证明遵循非中心χ 2(df,λ)分布,具有非中心性参数λ和期望值df + λ(MacCallum, Browne, & Sugawara, 1996)。非中心性参数λ将非中心χ 2(df,λ)分布的期望值移到相应中心分布的右边。在确定了与中心χ 2(df)分布的期望α概率相关的临界值之后,可以通过构建具有一定非中心性参数λ的相应非中心χ 2(df,λ)分布并获得该分布向右的面积(即。相应地,统计效能是非中心χ 2(df,λ)分布在临界值右边的面积(即积分)。一般情况如图1所示。

图1描述了中心(实线)χ 2(df)和非中心(虚线)χ 2(df,λ)分布,df=200,λ=100。中心分布χ 2(df)在临界值右侧的面积反映了α误差。实线表示临界值为234,对应于α=0.05。虚线表示从折衷效能分析中得到的临界值为244,与α=0.018有关。临界值左边的χ 2(df,λ)分布区域是β-错误概率(临界值234和244的β=0.006和β=0.018)。统计效能定义为1-β,即临界值右边的非中心χ 2(df,λ)分布下的面积。

衡量标准

为了定义H0和H1模型之间的差异,可以使用任何基于非中心性的效果测量。

F0

F0是最大似然拟合函数的总体最小值,定义为

其中Σ是p总体协方差矩阵,Σˆ是p模型隐含的协方差矩阵,p是观测变量的数量。如果模型是正确的,Σˆ=Σ,F0=0。否则,F0>0,数值越大,表示模型与数据的差异越大(不匹配)。

RMSEA

近似根均方误差(RMSEA;Browne & Cudeck, 1992;Steiger & Lind, 1980)通过模型的自由度来衡量F0。

使RMSEA以零为界,较低的值表示较好的拟合。隐含的F0是:

用RMSEA来定义一个效应需要说明自由度。

Mc

Mc(McDonald,1989)是F0在0-1区间上的变换,数值越大表示越适合。

GFI

拟合指数(GFI;Jöreskog & Sörbom, 1984;Steiger, 1990)在0-1的区间内对F0进行标度,数值越高表示拟合度越好。

由于GFI取决于观察变量的数量(p),在用GFI定义效能时需要提供这个数字。

AGFI

调整后的拟合指数(AGFI;Jöreskog & Sörbom,1984;Steiger,1990)对GFI进行了修改,包括对自由参数数量的惩罚,由模型的自由度来衡量。

用AGFI来说明效果,需要同时说明观察变量的数量(p)和模型的自由度(df)。

不基于非中心性的方法

不基于非中心性的拟合指数与F0没有直接的关系,因此不太适合于效能分析。但是,如果通过H0和H1协方差矩阵来定义效应,至少可以计算出度量。

SRMR

标准化根-均方残差(SRMR)是对(标准化)模型和总体协方差矩阵之间平均(平方)差值的衡量,因此它的范围是0到1,数值越小表示拟合度越高。设E0为模型隐含与人群协方差矩阵之间的差值,E0=Σ-Σˆ,vech表示矢量化变换,Q为维度为.5p(p+1)的对角矩阵,包含观测变量i和j的标准差的乘积的逆值,那么,SRMR可以定义为

残差矩阵E0与F0的关系很复杂,取决于模型隐含的协方差矩阵,所以SRMR不太适合用F0来定义效应(基于ML估计)。

CFI

比较拟合指数(CFI)是一个增量指数,表示假设模型(F0H)相对于空模型(F0N)的不合适比例减少,空模型被定义为一个将所有协方差约束为零的模型。在总体中,CFI的范围是0到1,数值越高表示越适合。

虽然从CFI获得F0很简单,但这需要知道F0N,而这是很难先验确定的。

Power Analysis效能分析

进行效能分析时,一般需要说明要检测的效应的量度和大小,并提供模型的自由度。根据效能分析的类型,还需要进一步的论据。本节假设效应是以上述方法之一来指定的,如何借助模型隐含的和总体协方差矩阵来定义效应。

A-Priori:确定所需的N,给定α、β、效应和df

先验效能分析的目的是在给定的α误差下,确定检测一个效应所需的样本量。在结构方程模型的语言中,先验能力分析问的是:"我需要多少个观测值才能达到效果?如果我的模型实际上是错误的(在所选效应定义的范围内),我需要多少个观测值才能以X%的概率(力量)来证伪我的模型?

进行先验的效能分析需要指定α误差、所需的效能(或者,等同于可接受的β误差)、效应的类型和大小以及模型df。根据所选择的效应大小指标,可能还需要定义观察变量的数量。

假设,我们想要检测一个模型(涉及df=100个自由度)的错误说明所需的样本量,在α误差为0.05的情况下,效能为80%,其中失拟量对应于RMSEA=0.05。将结果存储在一个名为ap1的列表中。

effect = .05, effect.measure = 'RMSEA',
alpha = .05, power = .80, df = 100

在ap1上调用总结方法,输出结果和相关的中心和非中心卡方分布图

这表明N=164产生了大约80%的效能来检测指定的效果。输出结果进一步显示了临界Chi-Square,非中心性参数(NCP),以及错误概率之间的比率(隐含Alpha/Beta比率)。在这个例子中,阿尔法和贝塔之间的比率是0.25,表明犯Beta错误的可能性是犯Alpha错误的四倍。这显然是所选输入参数的结果,因为0.80的效能(1-β)意味着0.20的β误差,是所选0.05的α误差的四倍。

effect = .05, effect.measure = 'RMSEA',
alpha = .05, power = .80

现在我们也得到了RMSEA=0.05的GFI和AGFI等效值,假设df=100,p=20。当然也可以不指定所需的效能,而是指定可接受的β误差。例如,调用

effect.measure = 'RMSEA',
alpha = .05, beta = .20, df = 100, p = 20

给出了与上述相同的输出。如果你对一定范围内的样本量的效能变化感兴趣,要求提供效能图是很有用的,下面会详细说明。

事后分析Post-hoc:给定α、N、效应和df,确定达到的效能

事后效能分析的目的是确定在给定的样本量下,在一定的α误差下检测特定效应的实际达到的效能。用结构方程模型的语言来说,事后效能分析问的是:"在我手头的样本中,有多大?在我手头的样本中,如果我的模型确实是错误的(至少在所选效应定义的范围内),那么伪造我的模型的概率(力量)有多大?进行事后效能分析需要明确阿尔法误差、样本量、效应的类型和大小以及模型df。同样,根据所选择的效应大小指标,可能还需要定义观察变量的数量。假设,我们希望在样本量为N=1000的情况下达到的效能能够检测到模型(涉及df=100自由度)的错误,α误差为0.05,其中错误拟合量对应于RMSEA=0.05。我们将结果存储在一个名为ph1的列表中。

posthoc(effect = .05, effect.measure = 'RMSEA',
alpha = .05, N = 1000

在ph1上调用总结方法,显示效能非常高(效能>.9999)。相关的误差概率是以更高的精度提供的。具体来说,β误差为β=2.903302e-17,转化为2.9-10-17=0.000000000000000029。在实践中,在这些条件下,一个RMSEA>=.05(或F0>=0.25或Mc<=.882)的模型很不错。隐含的α/β比率是1.722177e+15,表明犯α错误的可能性是犯β错误的2万亿(1015)倍。如果你对一系列不同程度的效果(例如,对于RMSEA从0.01到0.15)的效能变化感兴趣,要求提供效能图是很有用的,下面会详细说明。

折衷效能分析:给定α/β比率、N、效应和df,确定α和β

折衷效能分析的目的是在给定的效应、一定的样本量以及期望的α和β比率的情况下,确定α和β(以及相关的卡方检验统计量的临界值)(Moshagen & Erdfelder, 2016)。用结构方程模型的语言来说,折衷分析问的是:"在我手头的样本中,应该如何处理?在我手头的样本中,我应该如何选择卡方模型检验的临界值,来决定我的模型是与完全拟合的假设相一致时获得相应的α和β误差?

假设,我们想确定临界卡方和相关的α和β误差,使它们相等(即比率为1)。我们的模型涉及100个df,我们的样本量为N=1000,我们将不可接受的不合适H1模型定义为RMSEA至少为0.08的模型。将结果存储在一个名为cp1的列表中。

compromise(effect = .08, effect.measure = 'RMSEA',
 N = 1000, df = 100)

结果显示,选择临界Chi-Square=312与平衡错误概率有关,α=1.2e-23和β=1.2e-23。按照要求,这两个错误概率都一样大。如果出于某种原因,你希望错误概率不同(例如,因为你认为错误地接受一个不正确的模型比错误地拒绝一个正确的模型要差100倍),你可以改变abratio参数。例如,要求α误差是β误差的100倍,可以通过设置 abratio = 100 来实现。

compromise(effect = .08, effect.measure = 'RMSEA',
abratio = 100, N = 1000, df = 100)

Power Plots效能图

效能图显示了隐含的效能与其他一些变量的关系。你可以绘制在不同样本量范围内检测某一效应的实现效能。或者,你可以在给定的N下绘制达到的效能,以检测不同效应大小的范围。

确定给定效应的效能是N的函数

创建了一个图,显示了在一定的样本量范围内检测一个给定的效应的达到的效能。然而,由于很难指定给定效应的诊断样本量,我们需要提供所需的效能范围。例如,假设我们对检测RMSEA=.05的效应的效能如何随N的变化而变化感兴趣,我们对从.05到.99的效能感兴趣(注意效能不能小于α)。可以通过设置参数power.min = .05和power.max = .99来实现。此外,与任何先验的效能分析一样,需要定义效应的类型和大小、df和α误差。

powerPlot

这表明,当N>250时,一个相关的RMSEA=0.05的模型被拒绝的效能非常大,而当N<100时,效能就很小。

在给定的N下,确定效能与效应大小的函数关系

创建了一个图,显示在给定的样本量下,在效应大小范围内达到的效能。例如,假设我们对N=500时的效能如何随效应大小的变化而变化感兴趣,对应的RMSEA范围是0.001到0.10。此外,与任何事后效能分析一样,需要定义样本量、df和α误差。

PlotEffect

这表明,在N=500的情况下,一个相关的RMSEA>0.04的模型被检测到的效能非常大,而RMSEA<0.03的效能则相当小。

参考文献

• Browne, M. W., & Cudeck, R. (1992). Alternative ways of assessing model fit. Sociological Methods & Research, 21, 230–258.

• Jöreskog, K. G., & Sörbom, D. (1984). LISREL VI user’s guide (3rd ed.). Mooresville: Scientific Software.


相关文章
|
2月前
|
数据采集 机器学习/深度学习 数据可视化
R语言从数据到决策:R语言在商业分析中的实践
【9月更文挑战第1天】R语言在商业分析中的应用广泛而深入,从数据收集、预处理、分析到预测模型构建和决策支持,R语言都提供了强大的工具和功能。通过学习和掌握R语言在商业分析中的实践应用,我们可以更好地利用数据驱动企业决策,提升企业的竞争力和盈利能力。未来,随着大数据和人工智能技术的不断发展,R语言在商业分析领域的应用将更加广泛和深入,为企业带来更多的机遇和挑战。
|
20天前
|
数据挖掘 C语言 C++
R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。
【10月更文挑战第21天】时间序列分析是一种重要的数据分析方法,广泛应用于经济学、金融学、气象学、生态学等领域。R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。本文将介绍使用R语言进行时间序列分析的基本概念、方法和实例,帮助读者掌握R语言在时间序列分析中的应用。
40 3
|
6月前
|
数据可视化 数据挖掘 API
【R语言实战】聚类分析及可视化
【R语言实战】聚类分析及可视化
|
2月前
|
数据采集 数据可视化 数据挖掘
R语言在金融数据分析中的深度应用:探索数据背后的市场智慧
【9月更文挑战第1天】R语言在金融数据分析中展现出了强大的功能和广泛的应用前景。通过丰富的数据处理函数、强大的统计分析功能和优秀的可视化效果,R语言能够帮助金融机构深入挖掘数据价值,洞察市场动态。未来,随着金融数据的不断积累和技术的不断进步,R语言在金融数据分析中的应用将更加广泛和深入。
|
3月前
|
机器学习/深度学习 数据采集 数据可视化
R语言在数据科学中的应用实例:探索与预测分析
【8月更文挑战第31天】通过上述实例,我们展示了R语言在数据科学中的强大应用。从数据准备、探索、预处理到建模与预测,R语言提供了完整的解决方案和丰富的工具集。当然,数据科学远不止于此,随着技术的不断发展和业务需求的不断变化,我们需要不断学习和探索新的方法和工具,以更好地应对挑战,挖掘数据的潜在价值。 未来,随着大数据和人工智能技术的普及,R语言在数据科学领域的应用将更加广泛和深入。我们期待看到更多创新的应用实例,为各行各业的发展注入新的动力。
|
3月前
|
数据采集 存储 数据可视化
R语言时间序列分析:处理与建模时间序列数据的深度探索
【8月更文挑战第31天】R语言作为一款功能强大的数据分析工具,为处理时间序列数据提供了丰富的函数和包。从数据读取、预处理、建模到可视化,R语言都提供了灵活且强大的解决方案。然而,时间序列数据的处理和分析是一个复杂的过程,需要结合具体的应用场景和需求来选择合适的方法和模型。希望本文能为读者在R语言中进行时间序列分析提供一些有益的参考和启示。
|
3月前
|
资源调度 数据挖掘
R语言回归分析:线性回归模型的构建与评估
【8月更文挑战第31天】线性回归模型是统计分析中一种重要且实用的工具,能够帮助我们理解和预测自变量与因变量之间的线性关系。在R语言中,我们可以轻松地构建和评估线性回归模型,从而对数据背后的关系进行深入的探索和分析。
|
3月前
|
程序员 数据处理
R语言控制结构:条件判断与循环在R中的应用
【8月更文挑战第27天】R语言中的条件判断和循环结构是编程中不可或缺的部分,它们允许程序员根据特定的条件或规则来控制程序的执行流程。通过灵活使用这些控制结构,可以编写出高效、可维护的R语言代码,以应对复杂的数据处理和分析任务。
|
3月前
|
存储 数据挖掘 数据处理
R语言基础数据类型与结构详解
【8月更文挑战第27天】R语言的基础数据类型与数据结构是理解和操作数据的基础。掌握这些基础概念,对于高效地进行数据分析和统计建模至关重要。
|
3月前
|
机器学习/深度学习 数据采集
R语言逻辑回归、GAM、LDA、KNN、PCA主成分分类分析预测房价及交叉验证
上述介绍仅为简要概述,每个模型在实施时都需要仔细调整与优化。为了实现高度精确的预测,模型选择与调参是至关重要的步骤,并且交叉验证是提升模型稳健性的有效途径。在真实世界的房价预测问题中,可能还需要结合地域经济、市场趋势等宏观因素进行综合分析。
68 3