列联表
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在R软件中,用x=read.table("f:/hepbook/data/change2.txt",header=T)和y=xtabs(Freq~.,data=x)输入数据和 变换数据格式。用library(MASS)激活软件包MASS。对于模型使用a=loglm(~Age+Edu,y)建立对数线性模型, 并把结果赋予变元a,由pchisq(a$pea,a$df,low=F)和pchisq(a$lrt,a$df,low=F)得到两个检验统计量的p值 (a$pea和a$lrt分别为统计量的值,而a$df为自由度);由a$para可得各个系数。假定想考察有交互项的模 型则可用a=loglm(~Age*Edu+Change,y)建立对数线性模型(这时,除了截距之外,对于主效应有3+3+3=9 个参数,对于交互效应有3×3=9个参数),其它的模型依次类推。
注 • 二维列联表的Pearson c2检验是关于 两个分类变量是否相关的检验。但是 对于两个连续变量之间的检验则需要 另外和Pearson相关系数有关的检验。 • 这里的检验是关于二维列联表的。对 于高维列联表,需要使用下面要介绍 的对数线性模型来研究。
注
注
• 实际上,各种软件不仅仅输出输出Pearson c2检 验统计量的值和相关的p值,也输出似然比检验 (likelihood ratio test或lrt)统计量的值和相关的p 值。这两个检验是渐近等价的。它们近似地有 相同自由度的c2分布。 列联表除了 Pearson和似然比检验(有近似的 c2 分布)之外,还有一种精确检验,称为Fisher检 验(如果列联表距阵为y可以在R中用 fisher.test(y) 施行)。但由于 Fisher 检验使用超 几何分布,计算量很大,在总频数大的时候, 或者计算机内存不够时,则无法计算。
对数线性模型
• 这 3 个 ai 和 3 个 bj 的 9 种组合加上截距项 一共会产生关于ln(mijk)的九个常数表达 式;这就是对数线性模型对ln(mijk)的预 测结果。 • 当然,要得到 mijk 的平均预测,还要取 指数(一般不是整数)。当然,对数 线性模型的主要目的是考察各个变量 不同水平对ln(mijk)的影响,而不是预测。
列联表数据的相关和对数线性模型
吴喜之
例7.1 (数据change2.txt)这是对某地区一个行业 员工的调查数据中三个问题所组成的列联表。这里 的三个问题是,“你的年龄”(三个范围选一项: 在数据中代码“1”代表小于30岁,“2”代表30-40 岁,“3”代表40岁以上),“你的教育程度”(三 个范围选一项:在数据中代码“1”代表“本科以 上”,“2”代表“专科”,“3”代表“专科以 下”),“你是否想跳槽”(三个范围选一项:在 数据中代码“1”代表“想跳槽”,“2”代表“不想 跳槽”,“3”代表“没想过跳槽”)。下面是涉及 这三个问题的列联表。
思考一下
使用语句a=loglm(~Edu:Age+Age*Change+Edu*Change,y)。
思考一下
• 假定用X、Y、Z表示例7.1中的三个变量。那么可 以用R软件很容易地对它们进行独立性检验。具 体语句列在下面表中(假定列联表赋值在变元 y 中)。
Poisson对数线性模型
例8.2(数据:acc2.txt, acc2.sav, acc2.sas7bdat)这是关于某类 机器发生事故次数(Incidents)和机龄(Time,定量变量)、机器 型号(Machine,两种机器:1,2)、操作人(Person,两类操作 工人:1,2)的数据。
0.10
0.15
相应于图7.1:
从图7.1的横坐标可以看出,大学和大专更接近 于跳槽,而中小学历的职工更接近于没有想或不 跳槽。横坐标反映的行列变量的相关性为0.140, 而纵坐标反映的行列变量的相关性为0.055。因 此不必要看纵座标所反映的关系。实际上,画二 维图仅仅是为了直观上的方便;因此无论第二维 的关系是否重要,都画了出来。当然,这种图仅 仅是描述性的。下ቤተ መጻሕፍቲ ባይዱ介绍数值上的关于行列变量 的相关性检验。
对数线性模型
• 下面我们通过对例 7.1 数据的分析来理解对数线性模型。 令 ai 代表年龄、 bj 代表教育程度, gk 代表是否想跳槽。 在经过各种比较计算,得到一个拟合较好的模型,即对 于所有的k:
ln(mijk ) ai b j , i 1, 2,3, j 1, 2,3
二维列联表的检验
• 这里我们主要想关心二维列联表两个变量之间的相关性。就例 7.1来说,我们关心教育程度或年龄与跳槽之间的关系。这样的 关系可以通过所谓Pearson c2检验来判断。这里的检验的零假设 为两个变量不相关,而备选假设为它们相关。对于年龄和是否想 跳槽的二维列联表;检验的零假设和备选假设为 H0:年龄和跳槽这两个变量不相关 H1:这两个变量相关。 • 这个检验所用的统计量是Pearson c2检验统计量。在大样本时, 该统计量在零假设下有近似的c2分布。如果该统计量很大,使得 p值很小,那么就可以拒绝零假设。就例7.1的上面关于跳槽和年 龄的关系而言,容易得到[1],p值为0.002279。因此,可以对任 何大于p值的显著性水平拒绝零假设。这说明年龄和是否想跳槽 很相关。 • [1] 在R软件中用 x=read.table("f:/hepbook/data/change2.txt",header=T)读入 数据,而提出年龄和是否想跳槽的二维表用使用语句 y2=xtabs(Freq~Age+Change,data=x),然后用chisq.test(y2) 得到Pearson c2检验的p值。
列联表简介
• 注意,问卷如果包含多选题,则处理时还要转 换成单选题来处理。比如一个问卷问题是在4种 爱好中选择(可以多选),那么在数据处理时 必须换成4个单选问题,每个问题针对一个爱好 (最多只有:“是”,“否”和“不知道”三 种选择之一)。 • 因此在设计问卷时尽量避免多选题。实际上, 多选题的选项通常没有诸如教育和年龄这样的 “序”或“程度”的意义,因此换成多个问题 不但易于回答,而且减少了整理数据的麻烦, 也不会影响分析结果。 • 此外,在调查问卷中尽量不要给出作文式的问 答题;问答题很难进行有效率的数据处理。
ln() ai b j g x
m=read.table("c:/xzwu/tjbook3/data/acc2.txt",header=T) a=glm(Incidents~Time+factor(Machine)+factor(Person),family=poisson,data=m); summary(a) Call: glm(formula = Incidents ~ Time + factor(Machine) + factor(Person), family = poisson, data = m) 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 *** factor(Machine)2 0.416216 0.176388 2.360 0.018291 * factor(Person)2 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
列联表简介
• 问卷调查是产生列联表(contingency table)的 一大来源。例7.1就是这种源于调查数据而产生 的一个列联表。这里,所涉及的问题有三个; 其中“教育程度”有三个选项,或三个水平 (level),“年龄”有两个选项,“是否想跳槽” 有三个水平。这种列联表称为3×3×3列联表, 有33=27个组合(格子数目);而这27种组合 的频数(或计数)就是该列联表的27个格子中 的数目。这三个问卷问题就是这个列联表中的 三个变量(也称为因子);变量的个数就是列 联表的维数。例7.1的列联表有三个变量,因此 就是一个三维列联表。
•
高维列联表的(多项分布)对数线性模型 • 高于二维的列联表数据就不能用前面 简单的关于相关的Pearson c2 检验来解 决了。这时就必须引入(多项分布) 对数线性模型来进行分析。当然,对 数线性模型也可以解低维列联表。对 数线性模型包括多项分布对数线性模 型和 Poisson 对数线性模型。这里只介 绍多项分布对数线性模型 (multinomial loglinear model)。
对于这个模型,Pearson c2检验统计量的值为315.9392,似然比检验统计量的值为 350.0604,自由度为22,p值几乎等于0(分别为7.060722×10-54和7.622728×1061)。而计算出来的常数项(截距)=3.256582,其它系数为a =0.3027906, 1 a2=0.5878095,a3=-0.8906001(注意,它们的和等于0),b1=-0.9076019, b2=0.5497665,b3=0.3578355(它们的和也等于0)。
-0.15
-0.10
-0.05
0.00
0.05
0.10
0.15
0.15
大学
不跳槽
0.10
0.05
0.00
跳槽 大专 没想
中小
-0.05
-0.10
-0.10
-0.05
0.00
0.05
0.10
0.15
年龄和是否想跳槽各水平之间的关系的根据对应分析结果所产生的图。
-0.15
-0.10
-0.05
0.00
0.05
期望频数.
对数线性模型
• 前面由一个希腊字母代表的为主效应(main effect),而后 面由两个或三个希腊字母代表的项反映了交互效应或交 互 作 用 (interaction) 。 主 效 应 代 表 了 一 个 变 量 单 独 对 ln(mijk)的作用,而交互效应反映了若干变量的联合作用。 • 注意,无论主效应或者交互效应,都只有相对意义。这 意味着,假定根据软件得到 a1=0 , a2=2 , a3=-1 ;即第 一变量的第二水平比第一水平对 ln(mijk) 的贡献多 2 ,而 第一变量的第三水平比第一水平对ln(mijk)的贡献少1, • 但并不意味着第一变量的第一水平对 ln(mijk)的单独贡献 为 0 ,也不意味第一变量的第二水平对 ln(mijk) 的单独贡 献为2等等。
对数线性模型
• 正因为每一个效应的不同水平(或组合)只有相对意义, 因此会有很多种形式的解;必须加有约束条件才能够得 到具体的解。 • 各种统计软件都有各种备选的或缺省(默认)的约束条 件;最常见的缺省条件(以第一项ai为例)是把其中一 个(比如a1或a3)设定为0 (如SPSS ),或者把它们的 和设定为0(如R的MASS软件包的loglm命令)。 • 各种软件不仅仅输出这些系数,也输出关于拟合好坏的 Pearson c2 检验统计量(及渐近等价的似然比检验)的 值。这些统计量是检验这些假定的模型拟合。如果拟合 得好,则这些检验就显著(p值小)。
列联表简介
• 对二维列联表行变量和列变量之间各个水平之间的关 系进行直观描述的一个方法是多元分析里面的对应分 析(correspondence analysis)方法。这里仅仅就上 面例7.1中的年龄和是否想跳槽各水平之间的关系做一 个对应分析所产生的图(图7.1)[1]。该图为二维的, 横坐标所表明的关系比纵座标要重要得多。 • [1] 在R软件中,用 x=read.table("f:/hepbook/data/change2.txt",header= T)读入数据,而提出教育程度和是否想跳槽的二维表 用y1=xtabs(Freq~Edu+Change,data=x);然后把代 码换成中文:dimnames(y1)$Edu=c("大学","大专","中 小")、dimnames(y1)$Change=c("跳槽","不跳槽","没 想"),最后进行对应分析和画图:library(MASS); biplot(corresp(y1, nf=2))。用corresp(y1, nf=2)可以看 出图中两维所代表的相关性。
二维列联表的检验
• 类似地,可以进行关于教育程度和是否想跳槽是 否相关的检验;检验的零假设和备选假设为
H0:教育程度和跳槽这两个变量不相关 H1:这两个变量相关。
• 可以得到p值为[1]0.0001711。因此,可以对任 何大于p值的显著性水平拒绝零假设。这说明教 育程度和跳槽很相关。 • [1] 在R软件中,用 y1=xtabs(Freq~Edu+Change,data=x); chisq.test(y1)得到Pearson c2检验的p值。
注 • 二维列联表的Pearson c2检验是关于 两个分类变量是否相关的检验。但是 对于两个连续变量之间的检验则需要 另外和Pearson相关系数有关的检验。 • 这里的检验是关于二维列联表的。对 于高维列联表,需要使用下面要介绍 的对数线性模型来研究。
注
注
• 实际上,各种软件不仅仅输出输出Pearson c2检 验统计量的值和相关的p值,也输出似然比检验 (likelihood ratio test或lrt)统计量的值和相关的p 值。这两个检验是渐近等价的。它们近似地有 相同自由度的c2分布。 列联表除了 Pearson和似然比检验(有近似的 c2 分布)之外,还有一种精确检验,称为Fisher检 验(如果列联表距阵为y可以在R中用 fisher.test(y) 施行)。但由于 Fisher 检验使用超 几何分布,计算量很大,在总频数大的时候, 或者计算机内存不够时,则无法计算。
对数线性模型
• 这 3 个 ai 和 3 个 bj 的 9 种组合加上截距项 一共会产生关于ln(mijk)的九个常数表达 式;这就是对数线性模型对ln(mijk)的预 测结果。 • 当然,要得到 mijk 的平均预测,还要取 指数(一般不是整数)。当然,对数 线性模型的主要目的是考察各个变量 不同水平对ln(mijk)的影响,而不是预测。
列联表数据的相关和对数线性模型
吴喜之
例7.1 (数据change2.txt)这是对某地区一个行业 员工的调查数据中三个问题所组成的列联表。这里 的三个问题是,“你的年龄”(三个范围选一项: 在数据中代码“1”代表小于30岁,“2”代表30-40 岁,“3”代表40岁以上),“你的教育程度”(三 个范围选一项:在数据中代码“1”代表“本科以 上”,“2”代表“专科”,“3”代表“专科以 下”),“你是否想跳槽”(三个范围选一项:在 数据中代码“1”代表“想跳槽”,“2”代表“不想 跳槽”,“3”代表“没想过跳槽”)。下面是涉及 这三个问题的列联表。
思考一下
使用语句a=loglm(~Edu:Age+Age*Change+Edu*Change,y)。
思考一下
• 假定用X、Y、Z表示例7.1中的三个变量。那么可 以用R软件很容易地对它们进行独立性检验。具 体语句列在下面表中(假定列联表赋值在变元 y 中)。
Poisson对数线性模型
例8.2(数据:acc2.txt, acc2.sav, acc2.sas7bdat)这是关于某类 机器发生事故次数(Incidents)和机龄(Time,定量变量)、机器 型号(Machine,两种机器:1,2)、操作人(Person,两类操作 工人:1,2)的数据。
0.10
0.15
相应于图7.1:
从图7.1的横坐标可以看出,大学和大专更接近 于跳槽,而中小学历的职工更接近于没有想或不 跳槽。横坐标反映的行列变量的相关性为0.140, 而纵坐标反映的行列变量的相关性为0.055。因 此不必要看纵座标所反映的关系。实际上,画二 维图仅仅是为了直观上的方便;因此无论第二维 的关系是否重要,都画了出来。当然,这种图仅 仅是描述性的。下ቤተ መጻሕፍቲ ባይዱ介绍数值上的关于行列变量 的相关性检验。
对数线性模型
• 下面我们通过对例 7.1 数据的分析来理解对数线性模型。 令 ai 代表年龄、 bj 代表教育程度, gk 代表是否想跳槽。 在经过各种比较计算,得到一个拟合较好的模型,即对 于所有的k:
ln(mijk ) ai b j , i 1, 2,3, j 1, 2,3
二维列联表的检验
• 这里我们主要想关心二维列联表两个变量之间的相关性。就例 7.1来说,我们关心教育程度或年龄与跳槽之间的关系。这样的 关系可以通过所谓Pearson c2检验来判断。这里的检验的零假设 为两个变量不相关,而备选假设为它们相关。对于年龄和是否想 跳槽的二维列联表;检验的零假设和备选假设为 H0:年龄和跳槽这两个变量不相关 H1:这两个变量相关。 • 这个检验所用的统计量是Pearson c2检验统计量。在大样本时, 该统计量在零假设下有近似的c2分布。如果该统计量很大,使得 p值很小,那么就可以拒绝零假设。就例7.1的上面关于跳槽和年 龄的关系而言,容易得到[1],p值为0.002279。因此,可以对任 何大于p值的显著性水平拒绝零假设。这说明年龄和是否想跳槽 很相关。 • [1] 在R软件中用 x=read.table("f:/hepbook/data/change2.txt",header=T)读入 数据,而提出年龄和是否想跳槽的二维表用使用语句 y2=xtabs(Freq~Age+Change,data=x),然后用chisq.test(y2) 得到Pearson c2检验的p值。
列联表简介
• 注意,问卷如果包含多选题,则处理时还要转 换成单选题来处理。比如一个问卷问题是在4种 爱好中选择(可以多选),那么在数据处理时 必须换成4个单选问题,每个问题针对一个爱好 (最多只有:“是”,“否”和“不知道”三 种选择之一)。 • 因此在设计问卷时尽量避免多选题。实际上, 多选题的选项通常没有诸如教育和年龄这样的 “序”或“程度”的意义,因此换成多个问题 不但易于回答,而且减少了整理数据的麻烦, 也不会影响分析结果。 • 此外,在调查问卷中尽量不要给出作文式的问 答题;问答题很难进行有效率的数据处理。
ln() ai b j g x
m=read.table("c:/xzwu/tjbook3/data/acc2.txt",header=T) a=glm(Incidents~Time+factor(Machine)+factor(Person),family=poisson,data=m); summary(a) Call: glm(formula = Incidents ~ Time + factor(Machine) + factor(Person), family = poisson, data = m) 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 *** factor(Machine)2 0.416216 0.176388 2.360 0.018291 * factor(Person)2 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
列联表简介
• 问卷调查是产生列联表(contingency table)的 一大来源。例7.1就是这种源于调查数据而产生 的一个列联表。这里,所涉及的问题有三个; 其中“教育程度”有三个选项,或三个水平 (level),“年龄”有两个选项,“是否想跳槽” 有三个水平。这种列联表称为3×3×3列联表, 有33=27个组合(格子数目);而这27种组合 的频数(或计数)就是该列联表的27个格子中 的数目。这三个问卷问题就是这个列联表中的 三个变量(也称为因子);变量的个数就是列 联表的维数。例7.1的列联表有三个变量,因此 就是一个三维列联表。
•
高维列联表的(多项分布)对数线性模型 • 高于二维的列联表数据就不能用前面 简单的关于相关的Pearson c2 检验来解 决了。这时就必须引入(多项分布) 对数线性模型来进行分析。当然,对 数线性模型也可以解低维列联表。对 数线性模型包括多项分布对数线性模 型和 Poisson 对数线性模型。这里只介 绍多项分布对数线性模型 (multinomial loglinear model)。
对于这个模型,Pearson c2检验统计量的值为315.9392,似然比检验统计量的值为 350.0604,自由度为22,p值几乎等于0(分别为7.060722×10-54和7.622728×1061)。而计算出来的常数项(截距)=3.256582,其它系数为a =0.3027906, 1 a2=0.5878095,a3=-0.8906001(注意,它们的和等于0),b1=-0.9076019, b2=0.5497665,b3=0.3578355(它们的和也等于0)。
-0.15
-0.10
-0.05
0.00
0.05
0.10
0.15
0.15
大学
不跳槽
0.10
0.05
0.00
跳槽 大专 没想
中小
-0.05
-0.10
-0.10
-0.05
0.00
0.05
0.10
0.15
年龄和是否想跳槽各水平之间的关系的根据对应分析结果所产生的图。
-0.15
-0.10
-0.05
0.00
0.05
期望频数.
对数线性模型
• 前面由一个希腊字母代表的为主效应(main effect),而后 面由两个或三个希腊字母代表的项反映了交互效应或交 互 作 用 (interaction) 。 主 效 应 代 表 了 一 个 变 量 单 独 对 ln(mijk)的作用,而交互效应反映了若干变量的联合作用。 • 注意,无论主效应或者交互效应,都只有相对意义。这 意味着,假定根据软件得到 a1=0 , a2=2 , a3=-1 ;即第 一变量的第二水平比第一水平对 ln(mijk) 的贡献多 2 ,而 第一变量的第三水平比第一水平对ln(mijk)的贡献少1, • 但并不意味着第一变量的第一水平对 ln(mijk)的单独贡献 为 0 ,也不意味第一变量的第二水平对 ln(mijk) 的单独贡 献为2等等。
对数线性模型
• 正因为每一个效应的不同水平(或组合)只有相对意义, 因此会有很多种形式的解;必须加有约束条件才能够得 到具体的解。 • 各种统计软件都有各种备选的或缺省(默认)的约束条 件;最常见的缺省条件(以第一项ai为例)是把其中一 个(比如a1或a3)设定为0 (如SPSS ),或者把它们的 和设定为0(如R的MASS软件包的loglm命令)。 • 各种软件不仅仅输出这些系数,也输出关于拟合好坏的 Pearson c2 检验统计量(及渐近等价的似然比检验)的 值。这些统计量是检验这些假定的模型拟合。如果拟合 得好,则这些检验就显著(p值小)。
列联表简介
• 对二维列联表行变量和列变量之间各个水平之间的关 系进行直观描述的一个方法是多元分析里面的对应分 析(correspondence analysis)方法。这里仅仅就上 面例7.1中的年龄和是否想跳槽各水平之间的关系做一 个对应分析所产生的图(图7.1)[1]。该图为二维的, 横坐标所表明的关系比纵座标要重要得多。 • [1] 在R软件中,用 x=read.table("f:/hepbook/data/change2.txt",header= T)读入数据,而提出教育程度和是否想跳槽的二维表 用y1=xtabs(Freq~Edu+Change,data=x);然后把代 码换成中文:dimnames(y1)$Edu=c("大学","大专","中 小")、dimnames(y1)$Change=c("跳槽","不跳槽","没 想"),最后进行对应分析和画图:library(MASS); biplot(corresp(y1, nf=2))。用corresp(y1, nf=2)可以看 出图中两维所代表的相关性。
二维列联表的检验
• 类似地,可以进行关于教育程度和是否想跳槽是 否相关的检验;检验的零假设和备选假设为
H0:教育程度和跳槽这两个变量不相关 H1:这两个变量相关。
• 可以得到p值为[1]0.0001711。因此,可以对任 何大于p值的显著性水平拒绝零假设。这说明教 育程度和跳槽很相关。 • [1] 在R软件中,用 y1=xtabs(Freq~Edu+Change,data=x); chisq.test(y1)得到Pearson c2检验的p值。