精华内容
下载资源
问答
  • R语言列联表

    2021-01-20 12:07:31
    主要聚焦于类别变量的频数表和列联表,以下是常用的函数和方法: table():使用 N 个类别型变量(因子)创建一个 N 维列联表 xtab():根据一个公式和一个矩阵或数据框创建一个 N 维列联表 CrossTable(): 函数有很多...
  • 文章目录频数表与列联表的生成维频数表二维列联表多维列联表独立性检验χ2\chi^2χ2检验相对危险度 (relative risk, RR)与比值比 (odds ratio, OR)分层情形下的独立性检验:Mantel-Haenszel检验配对列联表的一致性...


    示例数据:MASS包中的birthwt数据集。
    首先将数据集中的分类变量因子化,具体参考这里

    频数表与列联表的生成

    一维频数表

    • 仅展现1个分类变量频数统计
    • 语法:table(数据框名$变量名)
    > table(birthwt$low)
    
     no yes 
    130  59 
    
    • 展现百分比,而非频数:prop.table(频数表)
    > prop.table(table(birthwt$low))
    
           no       yes 
    0.6878307 0.3121693  # 可使用round()保留小数,此处不再赘述
    
    • epiDisplay包中的tab1()函数:给出含百分比、累计百分比的一维频数表,并生成一个频数分布的条形图;语法为tab1(数据框名$变量名)
    > tab1(birthwt$low)
    birthwt$low : 
            Frequency Percent Cum. percent
    no            130    68.8         68.8
    yes            59    31.2        100.0
      Total       189   100.0        100.0
    

    在这里插入图片描述

    二维列联表

    • 又称为交叉表,展现了两个分类变量下的频数统计
    • 也可以使用table函数:table(数据框名$变量1,数据框名$变量2)
    > table(birthwt$low,birthwt$smoke)
         
          no yes
      no  86  44
      yes 29  30
    
    • 生成边际频数 (行列subtotal汇总):addmargins(频数表)
    > addmargins(table(birthwt$low,birthwt$smoke))
         
           no yes Sum
      no   86  44 130
      yes  29  30  59
      Sum 115  74 189
    
    • epiDisplay包中的tabpct()函数:给出含边际频数、按行&按列求百分比的列联表,还给出一个马赛克图;语法为tabpct(数据框名$变量1,数据框名$变量2)
    > tabpct(birthwt$low,birthwt$smoke)
    
    Original table 
               birthwt$smoke
    birthwt$low   no  yes  Total
          no      86   44    130
          yes     29   30     59
          Total  115   74    189
    
    Row percent 
               birthwt$smoke
    birthwt$low      no     yes  Total
            no       86      44    130
                 (66.2)  (33.8)  (100)
            yes      29      30     59
                 (49.2)  (50.8)  (100)
    
    Column percent 
               birthwt$smoke
    birthwt$low   no       %  yes       %
          no      86  (74.8)   44  (59.5)
          yes     29  (25.2)   30  (40.5)
          Total  115   (100)   74   (100)
    

    在这里插入图片描述

    多维列联表

    • 涉及≥3个分类变量的列联表
    • table(), prop.table(), addmargins()等语法同样适用,不再赘述

    独立性检验

    χ2\chi^2检验

    期望频数列联表生成语法:chisq.test(列联表)$expected,用于评价使用何种检验方法 (见下)。各检验方法具体使用场合总结如下:

    名称 场合 语法
    Pearson χ2\chi^2检验 二维列联表,每个单元格期望频数≥5 chisq.test(列联表,correct=FALSE)
    Pearson χ2\chi^2检验带连续性校正 二维列联表,存在单元格期望频数≥1且≤5 chisq.test(列联表) # correct参数默认为TRUE,故无需声明
    Fisher精确概率检验 二维列联表,总记录数n<40 或 存在单元格期望频数<1 fisher.test(列联表)
    > chisq.test(table(birthwt$low,birthwt$smoke))$expected
         
                no      yes
      no  79.10053 50.89947
      yes 35.89947 23.10053 # 期望频数均>5,无需进行连续性校正
    > chisq.test(table(birthwt$low,birthwt$smoke),correct=FALSE)
    
    	Pearson's Chi-squared test
    
    data:  table(birthwt$low, birthwt$smoke)
    X-squared = 4.9237, df = 1, p-value = 0.02649
    

    相对危险度 (relative risk, RR)与比值比 (odds ratio, OR)

    RR与OR的定义不再复习,请参考统计学书籍。epiDisplay包中的cs()cc()函数可用于计算RR、OR,具体语法如下:

    函数 语法1 语法2
    cs():用于计算RR cs(数据框名$结局变量,数据框名$因素变量) cs(cctable=列联表)
    cc():用于计算OR cc(数据框名$结局变量,数据框名$因素变量) cc(cctable=列联表)

    需要注意的是:

    1. 若将列联表作为输入,需要将其作为参数cctable声明
    2. 若将列联表作为输入,列联表必须为结局变量在前、因素变量在后的形式
    > cc(birthwt$low,birthwt$smoke) # 语法1
    
               birthwt$smoke
    birthwt$low  no yes Total
          no     86  44   130
          yes    29  30    59
          Total 115  74   189
    
    OR =  2.02 
    95% CI =  1.08, 3.78  
    Chi-squared = 4.92, 1 d.f., P value = 0.026
    Fisher's exact test (2-sided) P value = 0.036 
    
    > mytable<-table(birthwt$low,birthwt$smoke) # 注意该列联表生成时将关心的结局变量放在前面
    > cc(cctable=mytable) # 语法2
    
           
             no yes Total
      no     86  44   130
      yes    29  30    59
      Total 115  74   189
    
    OR =  2.02 
    95% CI =  1.08, 3.78  
    Chi-squared = 4.92, 1 d.f., P value = 0.026
    Fisher's exact test (2-sided) P value = 0.036 
    

    cc()除了给出检验结果外,还能生成一个不同组比值 (Odds)的变化图:
    在这里插入图片描述

    分层情形下的独立性检验:Mantel-Haenszel检验

    M-H检验:检验两分类变量在第三个变量 (分层变量)的调整下是否仍然独立。
    列联表写法:table(数据框名$待检验变量1,数据框名$待检验变量2,数据框名$用于分层的变量3)

    函数 语法
    M-H检验,不进行连续性校正 mantelhaen.test(列联表,correct=FALSE)
    M-H检验,进行连续性校正 mantelhaen.test(列联表) # 默认校正,无需声明
    M-H检验,连续性校正,并生成OR图 (需要epiDisplay包) mhor(mhtable=列联表)
    > mytable<-table(birthwt$low,birthwt$smoke,birthwt$race)
    > mantelhaen.test(mytable,correct=FALSE) # 声明不进行连续性校正
    
    	Mantel-Haenszel chi-squared test without continuity
    	correction
    
    data:  mytable
    Mantel-Haenszel X-squared = 9.4134, df = 1, p-value =
    0.002154
    alternative hypothesis: true common odds ratio is not equal to 1
    95 percent confidence interval:
     1.490740 6.389949
    sample estimates:
    common odds ratio 
             3.086381 
    
    > mhor(mhtable=mytable)
    
    Stratified analysis by  Var3 
                   OR lower lim. upper lim. P value
    Var3 white   5.66      1.657      25.14 0.00179 # 可见,白人亚组中吸烟对低体重的OR最大
    Var3 black   3.14      0.487      23.45 0.22797
    Var3 other   1.25      0.273       5.28 0.75103
    M-H combined 3.09      1.491       6.39 0.00215
    
    M-H Chi2(1) = 9.41 , P value = 0.002 
    Homogeneity test, chi-squared 2 d.f. = 2.98 , P value = 0.225 
    

    mhor()函数还额外生成了一个不同层中OR差异的图:
    在这里插入图片描述

    配对列联表的一致性检验:McNemar检验

    对同一对象进行两种处理,然后观察这两种处理的分类变量结果之间的一致性。最典型的例子是比较两种诊断方法的一致性。

    检验 适用场合 语法
    McNemar检验,无连续性校正 - mcnemar.test(列联表,correct=FALSE)
    McNemar检验,有连续性校正 不一致结果的个案总数<40 mcnemar.test(列联表)

    以下面的诊断一致性检验作为示例:

    诊断试验A(+) 诊断试验A(-)
    诊断试验B(+) 11 2
    诊断试验B(-) 12 33
    > my.matrix<-matrix(c(11,2,12,33),nrow=2)
    > mcnemar.test(my.matrix)
    
    	McNemar's Chi-squared test with continuity correction
    
    data:  my.matrix
    McNemar's chi-squared = 5.7857, df = 1, p-value = 0.01616
    
    展开全文
  • IBM SPSS Statistics的列联表分析,也称为交叉表分析,用于分析两或以上分组变量的相关关系,在分析影响满意度的因素、药物有效性等方面都有很好的应用。 本文将以较为简单的二乘二列联表卡方检验为例,介绍一下...

    IBM SPSS Statistics的列联表分析,也称为交叉表分析,用于分析两个或以上分组变量的相关关系,在分析影响满意度的因素、药物有效性等方面都有很好的应用。

    本文将以较为简单的二乘二列联表卡方检验为例,介绍一下IBM SPSS Statistics的列联表分析功能

    一、打开数据文件

    首先,我们打开如图1所示的一组数据,包含了性别、地区与满意度的数据,用以研究性别与满意度的相关关系。

    由于当前数据中的满意度变量包含了非常不满意、比较不满意、一般、比较满意、非常满意五个变量值,为了构建二乘二列联表,需要转换一下数据。

    图1:示例数据

    二、构建二乘二表格

    如图2所示,打开IBM SPSS Statistics的转换菜单,并选择其中的“重新编码为相同的变量”选项。


    图2:重新编码为相同变量

    接着,如图3所示,将满意度变量添加到右侧的字符串变量中,并单击下方的“旧值与新值”进行变量的重新编码。

    图3:选择满意度变量

    如图4所示,在匹配旧值与新值的操作中,我们需依次将非常不满意、比较不满意、一般匹配为不满意;将较满意、非常满意匹配为满意。然后,单击继续。

    图4:匹配满意度变量的新旧值

    如图5所示,可以看到,数据中的满意度变量已重新编码为“满意”与“不满意”两个变量值,可与性别组成二乘二列联表。

    图5:完成满意度的重新编码

    三、应用二乘二列联表分析

    完成数据的转换后,就可以打开IBM SPSS Statistics分析中的“交叉表”选项。

    图6:交叉表分析

    在交叉表的设置面板中,包含了变量选择面板以及分析选项功能。

    分别将变量添加于列联表中的行与列,即可构建列联表。除了构建一层列联表外,我们还可以通过层选项构建多层的列联表,分析更为复杂的相关关系。

    完成变量的选择后,即可使用右侧的分析选项探究变量间的相关关系。在下一节中,我们会使用转换好的数据演示功能。

    图7:交叉表设置

    本文中,我们已经做好了数据的转换,并简单了解了列联表的变量选择面板。下一节,将会通过实例进一步探究变量间的相关关系。如需获取下一节内容,欢迎访问IBM SPSS Statistics中文网站

    展开全文
  • 上一节,在IBM SPSS Statistics我们已经将满意度重新编码为仅包含满意、不满意两个变量值的变量,并简单了解了列联表变量选择面板。本节,将会通过实例进一步探究满意度与性别间的相关关系。 、选择变量 ...

    上一节,在IBM SPSS Statistics中我们已经将满意度重新编码为仅包含满意、不满意两个变量值的变量,并简单了解了列联表的变量选择面板。本节,将会通过实例进一步探究满意度与性别间的相关关系。

    一、选择变量

    为了研究性别与满意度的相关关系,如图1所示,我们需要分别将性别、满意度变量添加到右侧的行、列中,形成二乘二的列联表。


    图1:选择变量

    二、设置精确检验方法

    然后,再单击“精确”选项,设置分析所用的精确检验方法。在进行非参数检验时,需要设置精确检验方法,用于计算检验对应的P值。

    一般情况下,选择“仅渐进法(适用于较大样本或服从渐进分布的数据)”,如果数据不符合渐进分布,则要选择蒙特卡洛法。“精确”法,是在小样本量的情况下使用,计算量较大,对计算机的内存要求较高。

    图2:精确检验选项

    三、设置统计选项

    完成精确检验设置后,如图3所示,打开“统计”按钮,选择其中的“卡方”选项,并在“名义”选项框中选择“列联系数”,以获得二乘二的卡方检验结果。


    图3:设置统计选项

    四、设置单元格显示

    最后,在单元格显示选项中,可以进一步设置分析结果的数据呈现方式。我们选择了以实测计数,并显示行(性别百分比)。

    图4:单元格显示选项

    五、分析结果

    完成以上设置后,运行结果。首先,如图5所示,从频率表看到,男性与女性的满意占比都较不满意占比高,而且男性的满意占比似乎高于女性。

    图5:频率表

    为了进一步验证男性与女性的满意占比是否有显著性差异,我们可以观察卡方检验的数据。

    如图6所示,可以看到,卡方的渐进显著性为0.015<0.05,表明男性与女性的满意占比有显著性差异,男性的满意占比显著高于女性。

    图6:卡方检验与列联系数

    以上就是IBM SPSS Statistics二乘二列联表分析的应用介绍。二乘二列联表的卡方检验应用较为广泛,可用于分析两个或多个变量间的相关关系,是一个相当实用的分析方法。

    展开全文
  • 列联表是医学科研最常见的数据存储格式(或者说数据类型)之。通常,列联表的横纵方向展示的是两不同的分类变量,最常见的类型就是四格表(即2×2的列联表)。如下图所示,横向变量是“是否患肺癌”,纵向变量是...

    列联表是医学科研中最常见的数据存储格式(或者说数据类型)之一。

    通常,列联表的横纵方向展示的是两个不同的分类变量,最常见的类型就是四格表(即2×2的列联表)。如下图所示,横向变量是“是否患肺癌”,纵向变量是“是否吸烟”,都是二分类变量,表格中的数据展示的则是每个分类变量水平组合下的人数(频数)。170074446_2_20190903114001488这是最简单的列联表数据,大家也最熟悉。当然,现实世界中,列联表的数据格式可不止这一种,下面我们一一熟悉一下,顺便了解一下如何对数据进行统计学检验。1拟合优度检验拟合优度检验针对的是样本数据的分布,即样本数据与已知总体的分布是否相同。170074446_3_20190903114001644

    现欲研究男性群体中,所有血型所占比例是否相同。由卡方检验的结果可知,四种血型分布在男性中并不均匀。

    如果事先知道四种血型在男性群体中的分布,要检验该样本是否符合该分布呢?这里的参数p定义的就是已知总体的频率分布。2卡方齐性检验和卡方独立性检验卡方齐性检验是用来比较不同分组下,各个类型的比例是否一致,即男女群体中,血型分布是否一样。170074446_6_20190903114001988

    以上结果表明,在男女群体中,血型的分布无显著的统计学差异。

    独立性检验结果与之相同,检验的就是血型分布与性别这个变量是否相关。3Cochran-Mantel-Haenszel卡方检验CMH检验是用来检验分层的分类变量,既然是分层,也就是说,至少是三维数据。每一维数据至少含有2个水平。除此之外,对于行变量为无序分类而列变量为有序分类的数据,由于不能忽略等级关系,所以也只能用CMH检验,而不能用Pearson卡方检验。

    比如对于下面这个数据:170074446_7_20190903114002160170074446_8_20190903114002269

    这个array一共分为三个维度,分层变量是penicillin的水平,一共5个水平(依次递增),另外两个变量是是否推迟(delay)注射,和结局(cured or died)。170074446_9_20190903114002441

    CMH检验结果显示P值小于0.05,因此检验是有统计学意义的,OR=7,95%CI为1.027,47.725,如何解释?

    也就是说在把penicillin进行分层之后,立即注射(delay=none)与推迟注射(delay=1.5h)的治愈率的OR值是7。这是合并后的OR值,与粗的OR,即不分层OR 进行比较,如果相差较大,则说明,penicillin是一个混杂因素。如果penicillin的水平与结局存在交互作用,这个方法也是可行的,如果存在三维的交互作用,则此方法不适用。

    对于有序分类列变量资料:170074446_10_20190903114002535

    如图所示,工作满意程度是一个四分类的等级变量,而工资水平也可以看成四分类的等级变量,最后得出的P值小于0.05,可以得出的结论是随着工资的提高,工作满意度也随之提高。如果是用一般的Pearson X2检验,只能比较不同工资水平下,对工作满意程度的人数构成比是否相同。4配对四格表卡方检验配对四格表常出现在“自身前后比较”的实验设计中,也常见于“筛检”试验中。170074446_11_20190903114002644

    由p值可知,case与control之间存在统计学意义上的差异。此种情况下,如果要考查行列变量之间的相关性,则还是用chisq.test().5有序分类变量列联表检验有序分类资料是指R×C列联表中,行变量或者列变量是有序分类的,或者二者都是有序分类。对于分组变量(行变量)为有序分类资料,而列变量为无序分类资料,则直接将其看成R×C无序分类资料进行分析。对于行变量是无序分类,列变量(指标变量)是有序变量,比如药物的疗效,群众的满意程度,此种资料可用wilcox检验。对于两者均是有序分类的资料,此时,如果行列变量是同一属性,那就相当于是配对四格表资料的扩展。如果行列变量属性不同,则可以推断两个变量是否存在相关性,而且还可以推断这种相关是否为线性相关。前者用chisq.test(),后者可用lbl_test()(来自coin包)。170074446_12_2019090311400397170074446_13_20190903114003394“好了,以上就是关于列联表常用检验方法的介绍。

    最重要的一点是大家在使用之前必须搞清楚自己的数据特征和检验的目的。虽然看起来都是列联表,但是不同的数据采用的方法不同,得到的结果也不一样。

    祝你眼明心亮!”END

    展开全文
  • 对应分析和列联表.ppt

    2020-09-09 07:54:58
    中央财经大学统计学院 第 12 章 列联表和 对应分析 列联表中个变量的独立性检验 对应分析 中央财经大学统计学院 2 学习目标 ? 列联表中个变量独立性检验的原理 和软件结果解释 ? 对应分析的基本原理和软件结果...
  • 第12章 列联表和对应分析 列联表中个变量的独立性检验 对应分析 学习目标 列联表中个变量独立性检验的原理和软件结果解释 对应分析的基本原理和软件结果分析 例12.1美国的General Social Survey 二维列联表中的...
  • 列联表分析

    千次阅读 2018-11-27 16:28:53
    简要讲述了列联表分析的功能以及如何使用FREQ过程来实现。
  • SPSS——描述性统计分析——列联表

    万次阅读 多人点赞 2016-07-05 22:28:41
    什么是列联表列联表又称交互分类表,所谓交互分类,是指同时依据两个变量的值,将所研究的个案分类。交互分类的目的是将两变量分组,然后比较各组的分布状况,以寻找变量间的关系。这里是按两个变量交叉分类的,该...
  • 中央财经大学统计学院 第 12 章 列联表和 对应分析 列联表中个变量的独立性检验 对应分析 中央财经大学统计学院 2 学习目标 ? 列联表中个变量独立性检验的原理 和软件结果解释 ? 对应分析的基本原理和软件结果...
  • 在统计实践,人们经常需要对样本资料进行各种各样的分类,以便分析研究。如果对样本资料按照两个指标变量进行...这种对列联表中两分类变量是否独立的检验,也是假设检验的一个重要内容,称为列联表分析或列联表检验。
  • excel之列联表分析

    万次阅读 多人点赞 2017-11-29 21:37:01
    EXCEL中列联表的分析列联表...4.一个r行c列的列联表称为r*c列联表 观察值分布: 百分比分布: 期望频数分布: 尝试回顾离散型随机变量数学期望: 卡方检验: 假设检验步骤 EXCEL中列联表应用:真实频数如下:
  • 列联表分析基于R语言

    万次阅读 2016-10-09 19:17:31
    列联表变量组合形式的二维列联表,未出现的变量组合
  • Source: ...如果你有定性的变量(qualitative variable),可通过研究列联表(contingency t
  • 编号性别家庭地区月生活费月衣物支出买衣服因素1男大城市800200价格2女小城市600180品牌3男城市500110样式4男小城市900140价格5女中城市500200样式6男大城市600360品牌7女大城市1100650皮牌8男小城市6000200价格9...
  • 列联表(频数表)

    2015-04-23 15:40:00
    列联表也是频数表,只不过它会分析的是将数据集按两或两以上类别变量联合分组时观察数据在每个分组出现频数的表,所以又称交叉分类表。 简介 特殊地,如果我们使用样本数据的两属性构建列联表,而且每个...
  • 列联表是观测数据按两或更多属性(定性变量)分类时所列出的频数分布表,它是由两以上的变量进行交叉分类的频数分布表。交互分类的目的是将两变量分组,然后比较各组的分布状况,以寻找变量间的关系。 按两个变量...
  • SPSS列联表分析

    千次阅读 2020-09-12 20:42:55
    列联表分析目的适用情景数据处理SPSS操作SPSS输出结果分析知识点 目的 判断两个变量是否存在关联,输出变量各组数据的占比。 适用情景 粗略了解各个变量在不同分类下的占比(感觉没啥用,不如饼图直观) 数据处理 ...
  • R构建列联表(Contingency Table or crosstabs) ...通过使用透视表函数可以很容易地为R变量创建一个列联表。 R构建列联表 假设我们有以下数据集,它显示了20个不同产品订单的信息,包括.
  • 如何从列联表获得对应分析的结果

    千次阅读 2018-09-03 20:30:52
    对应分析所针对的原始数据必须有行向量和列向量, 在轻松获得所感兴趣的两个变量组成的列联表之后, 要进行多步转换,才能获取结果. 获取列联表 Sub1 &lt;- data.frame(F$自评成绩, F$可能性) %&gt;% ...
  • 统计之 - 列联表

    2014-10-29 16:13:51
    列联表也是频数表,只不过它会分析的是将数据集按两或两以上类别变量联合分组时观察数据在每个分组出现频数的表,所以又称交叉分类表。简介特殊地,如果我们使用样本数据的两属性构建列联表,而且每个属性...
  • 应 用 SPSS 软 件 进 行 列联表分析 应用SPSS软件进行列联表分析 在许多调查研究所得到的数据大多为定性数据即名义或定序尺度测 量的数据例如在项全球教育水平的研究调查了 400余人的个人信息 包括性别学历...
  • 【spss】列联表crosstabs

    2021-07-09 10:44:12
    列联表(contingency table)是观测数据按两或更多属性(定性变量)分类时所列出的频数表。 它是由两以上的变量进行交叉分类的频数分布表。 算例 数据 目的 不同学校之间升学率是否存在差别? 计算过程 这里...
  • 分析数据时,需要通过一些工具,把数据转换成,我们能直观理解处理的数据,频数表和列联表比较容易理解; 生成频数表方法 函数 描述 table 使用N个类别型变量(因子)创建一个N维列联表,向量是列变量 ...
  • 我们将着眼于类别型变量的频数表和列联表,以及相应的独立性检验、相关性的度量、图形化展示结果的方法还将连带使用vcd包和gmodels包中的函数。数据来自vcd包中的Arthritis数据集library(vcd)列联表可以使用...
  • R语言笔记 多维列联表

    千次阅读 2016-04-07 16:41:06
    table()和xtabs()都可以基于三或更多的类别型变量生成多维列联表。margin.table()、prop.table()和addmargins()函数可以自然地推广到高于二维的情况。另外,ftable()函数可以以种紧凑而吸引人的方式输出多维列联...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,207
精华内容 5,682
关键字:

列联表中的每一个变量