统计学─从数据到结论第八章列联表、c2检验和对数线性模型三维列联表(关于某项政策调查所得结果:table7.txt)观点:赞成观点:不赞成低收入中等收入高收入低收入中等收入高收入男201055810女25157279列联表•前面就是一个所谓的三维列联表(contingencytable).•这些变量中每个都有两个或更多的可能取值。这些取值也称为水平;比如收入有三个水平,观点有两个水平,性别有两个水平等。该表为3×2×2列联表•在下面SPSS数据中,表就和上面的不同,收入的“低”、“中”、“高”用代码1、2、3代表;性别的“女”、“男”用代码0、1代表;观点“赞成”和“不赞成”用1、0代表。有些计算机数据对于这些代码的形式不限(可以是数字,也可以是字符串)。列联表•列联表的中间各个变量不同水平的交汇处,就是这种水平组合出现的频数或计数(count)。•二维的列联表又称为交叉表(crosstable)。•列联表可以有很多维。维数多的叫做高维列联表。•注意前面这个列联表的变量都是定性变量;但列联表也会带有定量变量作为协变量。二维列联表的检验•研究列联表的一个主要目的是看这些变量是否相关。比如前面例子中的收入和观点是否相关。•这需要形式上的检验二维列联表的检验•下面表是把该例的三维表简化成只有收入和观点的二维表(这是SPSS自动转化的:Analyze-DescriptiveStatistics-Crosstabs-…..).OPINION*INCOMECrosstabulationCount71519414525128252403112301OPINIONTotal123INCOMETotal二维列联表的检验•对于上面那样的二维表。我们检验的零假设和备选假设为•H0:观点和收入这两个变量不相关;H1:这两个变量相关。•这里的检验统计量在零假设下有(大样本时)近似的c2分布。•当该统计量很大时或p-值很小时,就可以拒绝零假设,认为两个变量相关。二维列联表的检验•实际上有不止一个c2检验统计量。包括Pearsonc2统计量和似然比(likelihoodratio)c2统计量;它们都有渐近的c2分布。•对于我们的数据,根据计算可以得到(对于这两个统计量均有)p-值小于0.001。因此可以说,收入高低的确影响观点。21niiiiOEQE12lnniiiiOTOEPearsonc2统计量似然比c2统计量二维列联表的检验•刚才说,这些c2统计量是近似的,那么有没有精确的统计量呢?•当然有。这个检验称为Fisher精确检验;它不是c2分布,而是超几何分布。•对本问题,计算Fisher统计量得到的p-值也小于0.001。•Fisher精确检验的又一例子二维列联表的检验•聪明的同学必然会问,既然有精确检验为什么还要用近似的c2检验呢?•这是因为当数目很大时,超几何分布计算相当缓慢(比近似计算会差很多倍的时间);而且在计算机速度不快时,根本无法计算。因此人们多用大样本近似的c2统计量。而列联表的有关检验也和c2检验联系起来了。具体运算:先加权,加权之后,按照次序选Analyze-DescriptiveStatistics-Crosstabs。在打开的对话框中,把opinion和income分别选入Row(行)和Column(列);至于哪个放入行或哪个放入列是没有关系的。如果要Fisher精确检验则可以点Exact,另外在Statistics中选择Chi-square,以得到c2检验结果。最后点击OK之后,就得到有关Pearsonc2统计量、似然比c2统计量以及Fisher统计量的输出了(这里的Sig就是p-值)。Chi-SquareTests20.456a2.000.00021.1902.000.00020.713.00020.290b1.000.000.000.000123PearsonChi-SquareLikelihoodRatioFisher'sExactTestLinear-by-LinearAssociationNofValidCasesValuedfAsymp.Sig.(2-sided)ExactSig.(2-sided)ExactSig.(1-sided)PointProbability0cells(.0%)haveexpectedcountlessthan5.Theminimumexpectedcountis10.33.a.Thestandardizedstatisticis-4.504.b.下面就是SPSS计算机对于这个问题的输出高维列联表和(多项分布)对数线性模型•前面例子原始数据是个三维列联表,其检验和对两维类似。•但高维列联表在计算机软件的选项上有所不同,而且可以构造一个所谓(多项分布)对数线性模型(loglinearmodel)来进行分析。•利用对数线性模型的好处是不仅可以直接进行预测,而且可以增加定量变量作为模型自变量的一部分。对数线性模型•现在简单直观地通过二维表介绍一下对数线性模型,假定不同的行代表第一个变量的不同水平,而不同的列代表第二个变量的不同水平。用mij代表二维列联表第i行,第j列的频数。人们常假定这个频数可以用下面的公式来确定:ln()ijijijm这就是所谓的对数线性模型。这里i为行变量的第i个水平对ln(mij)的影响,而j为列变量的第j个水平对ln(mij)的影响,这两个影响称为主效应(maineffect);ij代表随机误差。(多项分布)对数线性模型•该模型看上去和回归模型很象,但由于分布假设不同,不能简单地用线性回归的方法来套用(和Logistic回归类似);计算过程也很不一样(把这个留给计算机去操心)。只要利用数据来拟合这个模型就可以得到对于参数m的估计(没有意义),以及i和j的“估计”。•有了估计的参数,就可以预测出任何i,j水平组合的频数mij了(通过对数)(多项分布)对数线性模型•注意,这里的估计之所以打引号是因为一个变量的各个水平的影响是相对的,•只有事先固定一个参数值(比如1=0),或者设定类似于Si=0这样的约束,才可能估计出各个的值。•没有约束,这些参数是估计不出来的。(多项分布)对数线性模型•二维列联表的更完全的对数线性模型为ln()()ijijijijm•这里的(ij代表第一个变量的第i个水平和第二个变量的第j个水平对ln(mij)的共同影响,称为交叉效应。即当单独作用时,每变量的某水平对ln(mij)的影响只有i(或j)大,但如这两个变量共同影响就不仅是i+j,而且还多出一项。•这里的交叉项的诸参数的大小也是相对的,也需要约束条件来得到其“估计”。用table7.txt数据拟合对数线性模型•假定(多项分布)对数线性模型为•这里i为收入(i1,2,3代表收入的低、中、高三个水平),j为观点(j1,2代表不赞成和赞成两个水平),gk为性别(k1,2代表女性和男性两个水平),mijk代表三维列联表对于三个变量的第ijk水平组合的出现次数,ijk为残差•而从相应的参数估计输出结果,可以得到对i的三个值的估计为0.5173,0.2549,0.0000,对j的两个值的估计为-0.6931,0.0000,对gk的两个值的估计为0.1139,0.0000。(多项对数线性模型无常数项)ln()ijkijkijkmg对数线性模型•高维表的检验统计量和二维表一样也包含了Pearsonc2统计量和似然比c2统计量,检验对数线性模型拟合的好坏程度的。•就我们这里的三维列联表问题,如果只考虑各个变量单独的影响,而不考虑变量组合的综合影响,计算机输出的Pearsonc2统计量和似然比c2统计量得到的p-值分别为0.0029和0.0011。多项分布对数线性模型的SPSS实现•[数据table7.sav]假定已经加权(加权一次并存盘了既可)•这时的选项为Analyze-Loglinear-General,•首先选择格子中频数的分布,这里是多项分布(其默认值是Poisson对数线性模型).•然后把三个变量(sex,opinion,income)选入Factors(因子);•再选Model(模型),如果选Saturated(饱和模型),那就是所有交叉效应都要放入模型;但如果不想这样,可以选Custom(自定义),在BuildingTerms(构造模型的项)选Maineffect(主效应),再把三个变量一个一个地选进来(如果两个或三个一同选入,等于选入交叉效应).•如果想要知道模型参数,在Options中选择Estimates。•最后Continue-OK即可得出结果.•在计算机输出的结果中可以找到我们感兴趣的结果。•如果SPSS的Viewer输出不完全,可以选中不完全的输出,利用Edit-CopyObjects来复制到例如记事本那样的文件中,就可以看到完整输出了注意,无论你对模型假定了多少种效应,并不见得都有意义;有些可能是多余的。本来没有交叉影响,但如果写入,也没有关系,在分析过程中一般可以知道哪些影响是显著的,而那些是不显著的。然后可决定舍取变量。另一种对数线性模型•常用的对数线性模型主要是两种,我们已经介绍了多项分布对数线性模型(格子里面的频数满足多项分布)。•另一类为Poisson对数线性模型.它假定每个格子里面的频数满足一个Poisson分布.•在统计软件的选项中会有关于分布的选项的。Poison对数线性模型•有的时候,类似的高维表并不一定满足多项分布对数线性模型。下面例子是关于哮喘病人个数和空气污染程度,年龄和性别的数据(asthma.txt)•数据为某地在一段时间记录下来的60组在不同空气污染状态的不同年龄及不同性别的人的发生哮喘的人数。Poison对数线性模型•其中性别为定性变量S(sex,1代表女性,2代表男性),•空气污染程度P也是定性变量(polut,1、2、3分别代表轻度、中度和严重污染),•年龄A(age)为定量变量,为那一组人的平均年龄;•数目C(count)为相应组的哮喘人数。•该表格和前面的列联表的不同点在于每一格的计数并不简单是前面三个变量的组合的数目(某个年龄段,某种性别及某种污染下的人数),而是代表了某个年龄段,某种性别及某种污染下发生哮喘的人数。Poisson对数线性模型•假定哮喘发生服从Poisson分布;但是由于条件不同,Poisson分布的参数l也应该随着条件的变化而改变。这里的条件就是给出的性别、空气污染程度与年龄。当然,如何影响以及这些条件影响是否显著则是我们所关心的。这个模型可以写成•这里m为常数项,i为性别(i=1,2分别代表女性和男性两个水平),j为空气污染程度(j=1,2,3代表低、中高三个污染水平),x为连续变量年龄,而g为年龄前面的系数,ij为残差项。ln()ijijxlmgPoisson对数线性模型•从对于数据(asthma.txt)的Poisson对数线性模型的相应SPSS输出,可以得到对m的估计为4.9820,对i的两个值的“估计”为-0.0608、0.0000,对j的三个值的“估计”为-0.1484,0.1223、0.0000,对g的估计为0.0126。•注意,这里的对主效应I和j的估计只有相对意义;它们在一个参数为0的约束条件下得到的。Poisson对数线性模型•看来,年龄和性别对哮喘影响不很显著。轻度污染显然比中度污染和严重污染哮喘要好。但是似乎严重污染时哮喘稍微比中度污染少些(不显著)。•通过更进一步的分析(这里略),可以发现,中度和严重空气污染(无论单独还是一起)和轻度空气污染比较都显著增加哮喘人数,而中度及严重污染时的哮喘人数并没有显著区别。Poisson对数线性模型的SPSS实现•[数据asthma.sav]假定已经加权•这时的选项为Analyze-Loglinear-General,•首先选择格子中频数的分布,这里是Poisson分布。•然后把两个变量(sex,polut)选入Fa