Stata统计分析与实验指导(视频教学版)
上QQ阅读APP看书,第一时间看更新

实验4-2 多因素方差分析

 实验基本原理

在现实研究中,一个事件不可能仅受一个因素的影响,恰恰相反,一个事件是受多个因素综合作用的结果,所以多因素方差分析相比单因素方差分析有更广泛的应用空间。下面以双因素方差分析中无交互作用的情况为例介绍多因素方差分析的基本原理。

一般情况下,双因素方差分析的数据如表4.4所示排列,影响因素有A和B两个。

表4.4 双因素方差分析表

方差分析过程如下:

01 提出原假设是“因素A或B对结果没有影响”,备择假设是“因素A或B对结果有影响”。

02 所使用的统计量是:

MSA反映了A因素的组间差异,MSB反映了B因素的组间差异,MSE反映了随机误差。这两个F统计量的功能是用来衡量A或B因素对结果是否有影响,如果没有影响,组间差异就只由随机因素构成,MSA或MSB应与MSE的值接近,F统计量应该小于临界值。其中,各部分的计算公式如下:

03 分析结论:若FA或B>Fα,则拒绝原假设,认为因素A或B对结果有影响;否则,接受原假设。

 实验目的与要求

(一)实验目的

1.熟悉多因素方差分析的基本原理。

2.熟悉多因素方差分析的命令语句和显示结果的含义。

(二)实验要求

1.熟练掌握多因素方差分析的方法和命令语句。

2.熟练掌握多因素方差分析的输出结果所代表的含义,并对原假设做出合理的判断。

 实验内容及数据来源

实验数据来源于对某国男性工作情况的调查,其中变量marriage为是否结婚的分类变量,child为是否拥有子女的分类变量,wage代表工资水平(美元/每小时)。完整的数据位于本书下载资源\data\第4章\workdata.dta工作文件中,部分数据显示如表4.5所示。

表4.5 部分数据

利用数据进行分析:男性的工资会不会因结婚、有子女以及二者的互动而产生差异。

 实验操作指导

多因素方差分析的模型构建是非常灵活的,如果存在3个或者3个以上的因素,我们要纳入任何一项变量间的交互效应,那么只需指定有关变量的名称,并且之间用“#”连接(注意,之前的很多Stata版本用的是“*”)即可。

多因素方差分析的命令语句如下:

     anova varname [term [/] [term [/] ...]] [if] [in] [weight] [, options]

在这个命令语句中,anova是进行多因素方差分析的命令语句;varname是将要分析的变量名称;term的形式是varname[{#||}varname[...]],主要是进行影响因素的设定,“#”表示交叉积,第一个“|”表示或者,第二个“|”表示条件运算,“#”的运算级高于“|”;if是条件语句;in是范围语句;weight是权重语句;多因素方差分析的options选项的内容如表4.6所示。

表4.6 多因素方差分析的options选项的内容

例如,利用workdata.dta数据进行双因素方差分析的练习,在这个数据中,反映了某国男性工资、婚姻状况、拥有子女状况的情况,利用这些数据分析婚姻、子女以及二者的交互项是否对工资有影响。

对此问题进行双因素方差分析的命令语句为:

     anova wage marriage child child#marriage

在这个命令语句中,anova是进行多因素方差分析的命令语句,wage是因变量,child、marriage和child# marriage是影响因素,执行的结果如图4.4所示。

从结果图4.4中可以看到:整个模型的F检验值为5.45,P值为0.0027,通过了检验;child变量的P值为0.0111,通过了检验,所以可以认定孩子对工资的差异产生了影响;marriage变量的P值为0.0001,通过了检验,所以可以认定婚姻对工资的差异产生了影响;child#marriage变量的P值为0.0072,通过了检验,所以可以认定孩子和婚姻的交互效应对工资的差异产生了影响。

在使用anova命令进行方差分析之后,我们可以使用predict命令计算出预测值、残差、标准误以及各种统计量,还可以通过绘制其他合适图形的方式来更加形象地观察模型的预测情况。

图4.4 多因素方差分析结果图

在本例中,我们依次输入以下命令:

     predict wagemean

本步旨在预测wage均值。

     label variable wagemean "mean wage scale"

为预测形成的wage均值添加标签为"mean wage scale"。

     predict SEwage,stdp

加上stdp选项,为了计算预测wage均值的标准误。

     gen wagehigh=wagemean+3*Sewage

产生wagehigh变量,作为预测上限。

    gen wagelow=wagemean-
3*Sewage

产生wagelow变量,作为预测下限。

     graph twoway connected
wage
child||rcapwagehighwagelow
child||,by(marriage,legend(off)
note("")) ytitle("mean wage
scale")

输入上述命令以后,得到的结果如图4.5所示。

图4.5 多因素方差分析标准误差条形图