
列联表、卡方检验与对数线性模型.ppt
43页单击此处编辑母版标题样式,,单击此处编辑母版文本样式,,第二级,,第三级,,第四级,,第五级,,,*,列联表、,c,2,检验和对数线性模型,,,三维列联表,(关于某项政策调查所得结果:,table7.sav,),,,观点:赞成(1),,观点:不赞成(0),,,低收,入(1),中等收入(2),高收入(3),低收入(1),中等收入(2),高收入(3),男1,,20,,10,,5,,5,,8,,10,,女0,,25,,15,,7,,2,,7,,9,,,列联表,前面就是一个所谓的三维,列联表,(contingency table).,,这些变量中,每个都有两个或更多的可能取值,这些取值也称为,水平,;比如收入有三个水平,观点有两个水平,性别有两个水平等该表为3,×2×2列联表,,在SPSS数据中,表就不和课本印的一样,收入的“低”、“中”、“高”用代码1、2、3代表;性别的“女”、“男”用代码0、1代表;观点“赞成”和“不赞成”用1、0代表有些计算机数据对于这些代码的形式不限(,可以是数字,也可以是字符串,)Table7.sav 数据,,列联表,列联表的中间各个变量不同水平的交汇处,就是这种水平组合出现的频数或,计数,(count)。
二维的列联表又称为,交叉表,(cross table)列联表可以有很多维维数多的叫做,高维列联表注意前面这个列联表的变量都是定性变量;但列联表也会带有,定量变量作为协变量二维列联表的检验,,研究列联表的一个主要目的是看这些变量是否相关比如,前面例子中的,收入和观点,是否相关,这需要形式上的检验,,二维列联表的检验,,下面表是把该例的三维表简化成,只有收入和观点的二维表,(这是,SPSS,自动转化的:,Analyze-Descriptive Statistics-Crosstabs-…..).,,二维列联表的检验,对于上面那样的二维表我们检验的零假设和备选假设为,,H,0,:观点和收入这两个变量不相关;,H,1,:这两个变量相关这里的检验统计量在零假设下有(大样本时),近似的,c,2,分布当该统计量很大时或,p,-,值很小时,就可以拒绝零假设,认为两个变量相关实际上有不止一个,c,2,检验统计量包括,Pearson,,c,2,统计量,和,似然比,(likelihood ratio),c,2,统计量,;它们都有渐近的,c,2,分布根据计算可以得到(对于这两个统计量均有),p,-,值小于,0.001,。
因此可以说,收入高低的确影响观点Pearson,,c,2,统计量,似然比,c,2,统计量,O,i,代表第i个格子的计数,,E,i,代表按照零假设,(行列无关),对第i格子的计数的期望值,,二维列联表的检验,刚才说,这些,c,2,统计量是近似的,那么,有没有精确的统计量呢?,,当然有这个检验称为,Fisher,精确检验,;它不是,c,2,分布,而是,超几何分布,对本问题,计算,Fisher,统计量得到的,p,-,值也小于,0.001,聪明的同学必然会问,既然有精确检验,为什么,还要用近似的,c,2,检验呢?,,这是因为当数目很大时,超几何分布计算相当缓慢(比近似计算会差很多倍的时间);而且在计算机速度不快时,根本无法计算因此人们多用大样本近似的,c,2,统计量而列联表的有关检验也和,c,2,检验联系起来了Fisher精确检验,,SPSS: Weight-Describ-crosstab-exact…,,[table7.sav],,其中有变量性别(,sex,)、观点(,opinion,)和收入(,income,);,每一列相应于其代表的变量的水平;,每一行为一种水平的组合(共有,2,×,3,×,2,=,12,种组合(,12,行),,,而每种组合的数目(也就是列联表中的频数)在,number,那一列上面,这就是每种组合的权重(,weight,),需要把这个数目考虑进去,称为加权(,weight,).如果不加权,最后结果按照所有组合只出现一次来算(也就是说,按照列联表每一格的频数为,1,).由于在后面的选项中没有加权的机会,因此在一开始就要加权.方法是点击图标中的小天平(“权”就是天平的意思),出现对话框之后点击,Weight cases,,然后把“,number,”选入即可。
二维列联表情况,,加权之后,按照次序选,Analyze,-,Descriptive Statistics,-,Crosstabs,在打开的对话框中,把,opinion,和,income,分别选入,Row,(行)和,Column,(列);至于哪个放入行或哪个放入列是没有关系的如果要,Fisher,精确检验则可以点,Exact,,另外在,Statistics,中选择,Chi-square,,以得到,c,2,检验结果最后点击,OK,之后,就得到有关,Pearson,c,2,统计量、似然比,c,2,统计量以及,Fisher,统计量的输出了(这里的,Sig,就是,p,-,值)加权:,,下面为,SPSS,对于table7.savs数据产生的,下面二维列联表,相关分析的输出,,利用crosstabs处理,三维列联表,问题的SPSS选项,,利用crosstabs,处理,三维,列联表,问题的输出,,利用crosstabs,处理,三维,列联表,问题的输出,,利用crosstabs,处理,三维,列联表,问题的输出,,高维列联表和,(多项分布),对数线性模型,,前面例子,原始数据是个三维列联表,对三维列联表的检验也类似。
但高维列联表在计算机软件的选项可有所不同,而且可以构造一个所谓(多项分布),对数线性模型,(loglinear model),来进行分析利用对数线性模型的好处是不仅可以直接进行预测,而且可以增加,定量变量作为模型的一部分对数线性模型,现在简单直观地通过二维表介绍一下对数线性模型,假定不同的行代表第一个变量的不同水平,而不同的列代表第二个变量的不同水平用,m,ij,代表二维列联表第,i,行,第,j,列的频数人们常假定这个频数可以用下面的公式来确定:,这就是所谓的,多项分布,对数线性模型这里,a,i,为行变量的第,i,个水平对,ln(m,ij,),的影响,而,b,j,为列变量的第,j,个水平对,ln(m,ij,),的影响,这两个影响称,为主效应(,main effect,),多项分布)对数线性模型,这个模型看上去和回归模型很象,但由于对于分布的假设不同,不能简单地用线性回归的方法来套用,(和Logistic回归类似),;计算过程也很不一样当然我们把这个留给计算机去操心了只要利用数据来拟合这个模型就可以得到对于,a,i,和,b,j,的“估计”有了估计的参数,就可以预测出任何,i,,,j,水平组合的频数,m,ij,了(通过其对数)。
注意,这里的估计之所以打引号是因为一个变量的各个水平的影响是相对的,因此,只有事先固定一个参数值(,比如,a,1,=0,),或者设定类似于,Sa,i,=0,这样的约束,才可能估计出各个的值没有约束,则这些参数是估计不出来的多项分布)对数线性模型,二维列联表的更完全的对数线性模型为,这里的,(,ab),ij,代表第一个变量的第,i,个水平和第二个变量的第,j,个水平对,ln(m,ij,),的共同影响,(,交叉效应,),即当单独作用时,每个变量的一个水平对,ln(m,ij,),的影响只有,a,i,(,或,b,j,),大,但如果这两个变量一同影响就不仅是,a,i,+,b,j,,,而且还多出一项这里的交叉项的诸参数的大小也是相对的,也需要,约束条件,来得到其“估计”;涉及的变量和水平越多,约束也越多注意,无论你对模型假定了多少种效应,,并不见得都有意义,;有些可能是多余的本来没有交叉影响,但如果写入,也没有关系,在分析过程中一般可以知道哪些影响是显著的,而那些是不显著的两种,对数线性模型,前面介绍的,多项分布对数线性模型,假定所有的可能格子里面的频数满足多项分布另一类为,Poisson对数线性模型,.它假定每个格子里面的频数满足一,Poisson分布(后面再介绍).,,统计软件的选项中有关于分布的选项,,高维表的检验统计量和二维表一样也包含了,Pearson,c,2,统计量和似然比,c,2,统计量。
用table7.sav数据拟合对数线性模型,假定(多项分布)对数线性模型为,这里,a,i,为收入(,i,=1,2,3,代表收入的低、中、高三个水平),,b,j,为观点(,j,=1,2,代表不赞成和赞成两个水平),,g,k,为性别(,k,=1,2,代表女性和男性两个水平),,,,m,ijk,代表三维列联表对于三个变量的第,ijk,水平组合的出现次数而从相应的参数估计输出结果,可以得到对,a,i,的三个值的估计为,0.5173, 0.2549,0.0000,,对,b,j,的两个值的估计为,-0.6931,0.0000,,对,g,k,的两个值的估计为,0.1139,0.0000,多项对数线性模型常数无意义,输出的常数项仅仅是数学意义,),,SPSS输出,就这里的三维列联表问题,如只考虑各个变量单独的影响,而不考虑变量组合的综合影响,其,SPSS,输出的,Pearson,c,2,统计量和似然比,c,2,统计量得到的,p,-,值分别为,0.0029,和,0.0011,SPSS输出,,,SPSS的,实现,[数据table7.sav],假定已经加权 (加权一次并存盘了既可),,这时的选项为Analyze-Loglinear-General,,,首先选择格子中频数的分布,这里是多项分布 (其默认值是Poisson对数线性模型).,,然后把三个变量(sex,opinion,income)选入Factors(因子);,,再选Model(模型),如果选Saturated(饱和模型),那就是所有交叉效应都要放入模型;但如果不想这样,可以选Custom(自定义),在Building Terms(构造模型的项)选Main effect(主效应),再把三个变量一个一个地选进来(如果两个或三个一同选入,等于选入交叉效应).,,如果想要知道模型参数,在,Options,中选择,Estimates,。
最后Continue-OK即可得出结果.,,在计算机输出的结果中可以找到我们感兴趣的结果如果,SPSS,的,Viewer,输出不完全,可以选中不完全的输出,利用,Edit-Copy Objects,来复制到例如记事本那样的文件中,就可以看到完整输出了,,Poison,对数线性模型,,有的时候,类似的高维表并不一定满足多项分布对数线性模型下面看一个例子这是关于哮喘病人个数和空气污染程度,年龄和性别的数据(,asthma.sav,),,后面表格为某地在一段时间记录的60组在不同空气污染状态的不同年龄及不同性别的人的,发生哮喘的人数,其中,性别为定性变量,S(sex, 1代表女性,2代表男性),,,空气污染程度P也是定性变量,(polut, 1、2、3分别代表轻度、中度和严重污染),,,年龄A (age)为定量变量,,为那一组人的平均年龄;,,还有一列,计数C (count),为这一组的哮喘人数这个表格和前面的列联表的不同点在于每一格的计数并不简单是前面三个变量的组合的数目(某个年龄段,某种性别及某种污染下的人数),而是代表了某个年龄段,某种性别及某种污染下,发生哮喘的人数,Poisson对数线性模型简介,,在某些固定的条件下, 人们认为某些事件出现的次数服从,Poisson分布,, 比如在某一个时间段内某种疾病的发生病数, 显微镜下的微生物数, 血球数, 门诊病人数, 投保数, 商店的顾客数, 公共汽车到达数, 接通数等等. 然而, 条件是不断变化的. 因此, 所涉及的Poisson分布的参数也随着变化.,,Poisson对数线性模型,假定哮喘发生服从,Poisson,分布;但是由于条件不同,,Poisson,分布的参数,l,也应该随着条件的变化而改变。
这里的条件就是给出的性别、空气污染程度与年龄当然,如何影响以及这些条件影响是否显著则是我们所关心的这个模型可以写成,,这里,m,为常数项,,a,i,为性别,(,i=1,2,分别代表女性和男性两个水平),,b,j,为空气污染程度,(,j=1,2,3,代表低、中高三个污染水平),,x,为连续变量年龄,,,而,g,为年龄前面的系数,,,e,ij,为,残差项,Poisson对数线性模型,从对于数据,(asthma.sav),的,Poisson,对数线性模型的相应,SPSS,输出,可以得到对,m的估计为4.9820,,对,a,i,的两个值的“估计”为,-0.0608,、,0.0000,,对,b,j,的三个值的“估计”为,-0.1484,,,0.1223,、,0.0000,,对,g,的估计为,0.0126,注意,这里的对主效应,a,I,和,b,j,的估计只有相对意义;它们在一个参数为,0,的约束条件下得到的从模型看上去,年龄和性别对哮喘影响都不那么重要轻度污染显然比中度污染和严重污染哮喘要好但是似乎严重污染时哮喘稍微比中度污染少些,(,差别不显著,),通过更进一步的分析(这里不进行),可以发现,中度和严重空气污染(无论单独还是一起)和轻度空气污染比较都显著增加哮喘人数,而中度及严重污染时的哮喘人数并没有显著区别。
数据,(asthma.sav),,m=read.table("d:/booktj1/data/asthma.txt"),,names(m)=c("Sex","Polution","Age","Count"),,attach(m),,a=glm(Count~Sex+Polution+Age,family=poisson),,Sex=factor(Sex);Polution=factor(Polution),,a=glm(Count~Sex+Polution+Age,family=poisson),,summary(a),,数据,(asthma.sav),m=read.table("d:/booktj1/data/asthma.txt"),Call:,,glm(formula = Count ~ Sex + Polution + Age, family = poisson),,Deviance Residuals:,,Min 1Q Median 3Q Max,,-1.7901 -0.6700 -0.0651 0.6093 1.5848,,Coefficients:,,Estimate Std. Error z value Pr(>|z|),,(Intercept) 1.730712 0.140238 12.341 <2e-16 ***,,Sex2 0.023926 0.090543 0.264 0.7916,,Polution2 0.297465 0.112353 2.648 0.0081 **,,Polution3 0.174346 0.115519 1.509 0.1312,,Age 0.004407 0.002333 1.889 0.0589 .,,---,,Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1,,,(Dispersion parameter for poisson family taken to be 1),,,Null deviance: 56.577 on 59 degrees of freedom,,Residual deviance: 45.772 on 55 degrees of freedom,,AIC: 289.41,,,Number of Fisher Scoring iterations: 4,,SPSS的,实现,[数据asthma.sav],假定已经加权,,这时的选项为Analyze-Loglinear-General,,,首先选择格子中频数的分布,这里是Poisson分布。
然后把两个变量(sex,polut)选入Factors(因子),把age选入Cell Covariate(s)再选Model(模型),这里以选Custom(自定义),在Building Terms(构造模型的项)选Main effect(主效应),再把三个变量一个一个地选进来如果想要知道模型参数,在Options中选择Estimates最后Continue-OK即可得出结果在结果中可以找到有关Pearson,c,2,统计量和似然比,c,2,统计量的检验结果及参数的估计(如果SPSS的Viewer输出不完全,可以选中不完全的输出,利用Edit-Copy Objects来复制到例如记事本那样的文件中,就可以看到完整输出了)数据(,acc2.txt, acc2sas.txt, acc2.sav,),m=read.table("d:/booktj1/data/acc2.txt",header=T),,attach(m);Machine=factor(Machine);Person=factor(Person),,a=glm(Incidents~Time+Machine+Person,family=poisson),,summary(a),,,数据(,acc2.txt, acc2sas.txt, acc2.sav,),summary(a),,Call:,,glm(formula = Incidents ~ Time + Machine + Person, family = poisson),,,Deviance Residuals:,,Min 1Q Median 3Q Max,,-2.1602 -0.6987 -0.1291 0.5286 2.5223,,,Coefficients:,,Estimate Std. Error z value Pr(>|z|),,(Intercept) -0.655345 0.385525 -1.700 0.089154 .,,Time 0.005937 0.001662 3.571 0.000355 ***,,Machine2 0.416216 0.176388 2.360 0.018291 *,,Person2 0.143591 0.176933 0.812 0.417047,,---,,Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1,,,(Dispersion parameter for poisson family taken to be 1),,,Null deviance: 85.214 on 59 degrees of freedom,,Residual deviance: 68.375 on 56 degrees of freedom,,AIC: 215.32,,思考,:,列联表与Poisson对数线性模型,,以及后面要介绍的试验设计的数据表有什么区别?,,。
