分享

多因素方差分析前的正态性和方差齐性考察

 Memo_Cleon 2022-02-07

SPSS中的Univariate过程是被轻视了的一个分析方法,尤其是在较新版本的一些功能增加之后。在线性回归中遇到多分类变量时,我们是需要将其设置成哑变量的,你可以手动设置,也可以通过创建哑变量过程(转换Transform>>创建虚拟变量Create Dummy Variables),虽非难事,但我还是会奇怪为什么在线性回归的对话框里面不能像logistic回归那样有一个可以把分类变量设置成哑变量的按钮。我们常常说方差分析是线性回归的一个特殊形式,线性回归可以实现方差分析,但其实线性回归也可以在Univariate过程中实现,只需要将分类变量放入因子框、连续变量放入协变量框就可以了。放入因子框的变量会自动按哑变量处理。结果除了可以获得方差分析表,也可以获得线性回归里的参数估计表,只需要在【选项】按钮中选中参数估计[Parameter estimates]就可以了。另外【选项】里面提供的异方差检验[Heteroskedasticity test]也可以直接实现对线性模型方差齐同性的Breusch-PaganWhite等统计学检验,甚至还可以进行稳健回归,这在线性回归里面反而做不到。其他像趋势检验、事后(Post Hoc)多重比较,边际均值(EM means)估计与比较也不是线性回归能比拟的,而且还提供了估计值/残差/模型诊断参数的保存。

独立、正态、方差齐同是我们进行方差分析时的前提条件,在进行方差分析前我们需要对这些条件进行考察。这里面独立性最重要,可根据专业做出判断。正态性和方差齐性对的考察方法也很多,可参见《正态分布与方差齐性的检验方法》。

需要特别注意的是这里的正态性是指各个单元格的残差都呈正态分布,方差齐同是指各个单元格的残差的方差相等。什么是单元格?单元格指的是模型中各个因素各个水平的组合。比如一个三水平的单因素方差分析中,会有三个单元格,而在一个两因素的方差分析中,如果一个因素两水平,另外一个因素三水平,结果会有6个单元格。

在进行方差分析时,如两因素Yijk=u+αi+βj+εijk,考察各单元格残差的正态性和方差齐性跟考察单元格内的因变量的正态性和方差齐性结果是一致的。
另外,方差分析归属于一般线性模型,方差分析只不过是线性模型中自变量均为分类变量的特殊形式而已,因此我们也可采用线性回归中正态性和方差齐性的考察办法来考察方差分析中的正态性和方差齐性,这些方法可参见《线性回归中的正态分布》和《线性回归中的方差齐性探察》,这些在Univariate过程中也可以实现。
示例:我们使用1989HosmerLemeshow研究了低出生体重婴儿的影响因素的数据,结局变量是每个新生儿的具体体重(bwtg),只选取其中的两个分类变量:产妇在妊娠期间是否吸烟(smoke0=未吸、1=吸烟),种族(race1=白人、2=黑人、3=其他民族)。吸烟和种族对新生儿体重是否有影响?在进行两因素多水平的方差分析前,我们需要先检验一下数据的正态性和方差齐性。

分析(Analyze)>>一般线性模型(General Linear Models)>>单变量(Univariate)

因变量框选入bwt
固定因素(Fixed Factor)列表选入smokerace
【模型】默认全因子(Full factorial)模型。全因素模型分析主对话框中的所有的变量(包括因子和协变量)的主效应以及各因子间的交互作用,但注意想要分析AB的交互项每个单元格至少需要3个数据点;
【保存】选择未标准化的预测值和未标准化的残差;
【选项】选择描述性统计量(Descriptive statistics)以及与方差齐性检验相关的Homogeneity testSpread vs. Level plotResidual plot以及Heteroskedasticity test

Homogeneity test:各个单元格[受试者间因子(分类变量)各水平组合]中的因变量的方差是否相等的Levene检验,检验的是误差方差在各个单元格内是否恒定。
Spread vs. Level plot是单元格均值和标准差的散点图,是方差齐性的的可视化检验。
残差图(Residual plot)作用比较多,可用于线性、正态、等方差的大体判断。
异方差检验(Heteroskedasticity test)用于检验误差的方差是否取决于自变量的值,可以理解为从线性模型的角度,检测方差是否会随自变量的变化而变化,提供了Breusch-Pagan检验、修正的Breusch-Pagan检验、 F 检验和White检验。这些检验方法大体思路就是通过回归求得残差,然后以残差的平方为因变量与自变量再次回归,再次回归时有的方法可能用线性有的方法会加入高次项和交互项,如果再次回归时的系数都等于0就表示残差与自变量没啥关系,满足方差齐性。
本次笔记以演示方差分析中正态分布和方差齐性的考察为目的,吸烟和种族对新生儿体重的影响分析我们先暂不考虑,对话框中其他按钮暂不设置。
结果解读

描述性统计量显示了每个单元格内及分类汇总的均值、标准差及样本量。 

误差方差齐性的Levene检验给出的是误差方差在各个单元格内是否恒定的检验结果,本例显示显著性检验P=0.831 >0.05,没有理由认为违反了等方差假设,或者说在描述性统计表中观察到的单元格的标准差的差异是由于随机变异造成的。 

同时异质性检验(White检验、修正的Breusch-Pagan检验、Breusch-Pagan检验、 F 检验)结果也都显示因变量残差方差的变化并不取决于自变量,即方差是恒定的。

Spread vs. Level plot

Spreadlevel图有两副,一幅是单元格均值和标准差,另外一幅是单元格均值和方差的。该图只有在存在分类变量时才产生。下图显示的是level(均值)Spread(标准差),该图直接显示了均值和标准差之间的关系,相对level(均值)差异(约900)而言,spread(标准差)差异(约200)并不算大,因此大体可判断假设方差在组间是同质的。

异质性检验在检验单元格内无重复数据的方差分析的方差齐性时还是比较有用的。比如在区组设计、交叉设计、正交设计这些设计,每个单元格中只有1个数据点(元素),1个数字是也无法考察正态性的,1个数字连方差都没法计算更别说方差齐性了。对于这些设计进行方差分析时常常因为条件不具备而不做这方面的检验,如果需要考察其实是可以方差分析中的异质性检验来进行的。

以《方差分析》一文中的随机区组设计的方差分析为例,因变量框选入Weight;固定因素列表选入GroupBlock;【模型】默认全因子(Full factorial)模型;【选项】选择描述性统计量、Homogeneity testHeteroskedasticity test中的White检验。

结果会首先收到警告WarningsAll absolute deviations are constant within each cell. Levene F statistics cannot be computed. 各单元格方差齐性的Levene检验无法进行,因为每个单元格中只有一个数据点, Levene F统计量无法计算。然后会发现在描述性统计表中,标准差无法计算,单元格样本量为1。同样在最后的组间效应检验也无法给出显著性检验【要分析AB的交互项每个单元格至少需要3个数据点,随机区组设计的方差分析只能分析主效应,需要在[模型]中将默认全因素模型去掉交互项构建只含主效应的模型】。

但这不妨碍我们对模型的残差进行异质性检验,White检验结果表明残差齐同。

组间效应检验结果表明吸烟和种族并不存在交互作用,接下来我们需要去掉交互项以简化模型

在【模型】模型按钮中将默认的全因素(Full factorial)模型改为构建项(Build Term),将smokeprance选入型(Model)框,构建类型(Type)为“主效应(Main effects)”,其他设置同前。
Levene检验结果如下:F=0.646P=0.665,这跟全模型下的检验结果虽然一致,但具体结果(F=0.424P=0.831)却不尽相同。因为该检验是基于单元格的数据进行的,两种模型对应的单元格数据都是一样的,结果却出现了这种绝对差异,搞了好几天也没弄明白其背后的算法和逻辑。。。

异质性检验(White检验、修正的Breusch-Pagan检验、Breusch-Pagan检验、 F 检验)结果也都显示无统计学意义(方差恒定),但检验统计量和P值跟全模型下却不再相同。其实这很容易理解,当模型发生变化时,每个个案对应的残差也会不同,以残差为基础的检验结果自然会发生变化。White检验、修正的Breusch-Pagan检验结果如下:

我们前面就说过多因素方差分析中的正态性和方差齐性检验是以单元格为基本单位的,本例只有两个因素:吸烟和种族,吸烟有两个水平,种族有三个水平,这样会形成6个单元格,分别是:不吸烟白人、不吸烟黑人、不吸烟其他种族、吸烟白人、吸烟黑人、吸烟其他种族,我们用新变量cellgroup来标识,那么对模型的正态性和方差齐性检验就可以直接转变成对这6个单元格的出生体重(或残差)的正态性和方差齐性的检验。
分析(Analyze)>>描述统计量(Descriptive Statistics)>>探索(Explore)
因变量列表选入bwt(出生体重)、RES_1(全模型残差)、RES_2(简约模型残差);因子列表选入cellgroup;【绘制】按钮中选中带检验的正态图及方差齐性检验(Spreads vs Level with Levene Test,不转换)。
6个单元格的正态性和方差齐性检验结果如下:并不是所有的单元格都严格满足正态性,当然方差分析对正态分布的要求并不高。单元格内模型残差的正态性和方差齐性与单元格内的因变量检测结果一致。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多