精华内容
下载资源
问答
  • 列联表中的每一个变量
    千次阅读
    2020-10-21 22:06:46


    示例数据: 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 χ2检验

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

    名称场合语法
    Pearson χ 2 \chi^2 χ2检验二维列联表,每个单元格期望频数≥5chisq.test(列联表,correct=FALSE)
    Pearson χ 2 \chi^2 χ2检验带连续性校正二维列联表,存在单元格期望频数≥1且≤5chisq.test(列联表) # correct参数默认为TRUE,故无需声明
    Fisher精确概率检验二维列联表,总记录数n<40 或 存在单元格期望频数<1fisher.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():用于计算RRcs(数据框名$结局变量,数据框名$因素变量)cs(cctable=列联表)
    cc():用于计算ORcc(数据框名$结局变量,数据框名$因素变量)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检验,有连续性校正不一致结果的个案总数<40mcnemar.test(列联表)

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

    诊断试验A(+)诊断试验A(-)
    诊断试验B(+)112
    诊断试验B(-)1233
    > 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
    
    更多相关内容
  • R语言列联表

    2021-01-20 12:07:31
    主要聚焦于类别变量的频数表和列联表,以下是常用的函数和方法: table():使用 N 个类别型变量(因子)创建一个 N 维列联表 xtab():根据一个公式和一个矩阵或数据框创建一个 N 维列联表 CrossTable(): 函数有很多...
  • 如果合理假设具有不同自由度的不同边际方差的基础双变量t分布是合理的,则新模型可能适合于平方列联表。 随着自由度变大,建议的模型接近扩展的线性对角线参数对称模型,如果合理假设基本的二元正态分布,则该模型...
  • 它是用于离散数据的非参数统计检验确定两个变量之间是否存在非随机关联。 Mid-P 值是保守性之间的合理折衷普通精确检验和大样本方法的不确定性。 Mid-P 值通常表现良好,通常有点保守, 目前,许多领先的统计学家都...
  • 列联表是医学科研最常见的数据存储格式(或者说数据类型)之。通常,列联表的横纵方向展示的是两不同的分类变量,最常见的类型就是四格表(即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

    展开全文
  • 中央财经大学统计学院 第 12 章 列联表和 对应分析 列联表中个变量的独立性检验 对应分析 中央财经大学统计学院 2 学习目标 ? 列联表中个变量独立性检验的原理 和软件结果解释 ? 对应分析的基本原理和软件结果...
  • 列联表 列联表 二维列联表 三维列联表 独立性检验 卡方检验 Fisher精确检验 Cochran-Mantel-Haenszel检验

    列联表

    列联表可以告诉你组成表格的各种变量组合的频数或比例

    一维列联表

    data <- with(Arthritis,table(Improved))  ## 简单的频数统计表
    
    data
    
    prop.table(data)   ## 将频数转化为比例值
    
    prop.table(data)*100   ## 转化为百分比
    

    在这里插入图片描述

    二维列联表

    data <- xtabs(~Treatment+Improved, data = Arthritis) ## 生成二维列联表
    data
    margin.table(data,1)
    prop.table(data,1)
    addmargins(data)      
    addmargins(prop.table(data))   ## 添加所有变量的边际和
    addmargins(prop.table(data,1),2)  ## 仅添加各行的边际和
    addmargins(prop.table(data,1),1)  ## 仅添加各列的边际和
    
    library(gmodels)
    CrossTable(Arthritis$Treatment,Arthritis$Improved)
    

    在这里插入图片描述
    在这里插入图片描述

    三维列联表

    data <- xtabs(~Treatment+Improved+Sex, data = Arthritis)
    
    data
    
    ftable(data)
    
    margin.table(data,1)
    margin.table(data,2)
    margin.table(data,3)
    
    margin.table(data,c(1,3))
    
    ftable(prop.table(data,c(1,2)))
    
    ftable(addmargins(prop.table(data,c(1,2)),3))
    

    在这里插入图片描述
    在这里插入图片描述

    独立性检验

    对列联表中各变量之间是否相关或独立进行检验

    卡方检验

    
    library(vcd)
    
    data <- xtabs(~Treatment+Improved, data = Arthritis) ## 生成二维列联表
    
    chisq.test(data)   ## 卡方检验
    
    data <- xtabs(~Sex+Improved, data = Arthritis) ## 生成二维列联表
    
    chisq.test(data)   ## 卡方检验
    

    在这里插入图片描述
    P值小于0.05,代表变量间不独立

    Fisher精确检验

    data <- xtabs(~Treatment+Improved, data = Arthritis) ## 生成二维列联表
    
    fisher.test(data)
    

    在这里插入图片描述

    Cochran-Mantel-Haenszel检验

    data <- xtabs(~Treatment+Improved+Sex, data = Arthritis) ## 生成三维列联表
    
    mantelhaen.test(data)    ##必须是三维列联表
    

    在这里插入图片描述

    参考文献

    Kabacoff, R. (2016). R 语言实战. Ren min you dian chu ban she.

    展开全文
  • 应 用 SPSS 软 件 进 行 列联表分析 应用SPSS软件进行列联表分析 在许多调查研究所得到的数据大多为定性数据即名义或定序尺度测 量的数据例如在项全球教育水平的研究调查了 400余人的个人信息 包括性别学历...
  • 用SPSS进行列联表分析Crosstabs实例 列联表分析Crosstabs 列联表是指两或多分类变量各水平的频数分布表又称频数交叉表SPSS的Crosstabs过程为二维或高维列联表分析提供了22种检验和相关性度量方法其中卡方检验是...
  • 上一节,在IBM SPSS Statistics我们已经将满意度重新编码为仅包含满意、不满意两个变量值的变量,并简单了解了列联表变量选择面板。本节,将会通过实例进一步探究满意度与性别间的相关关系。 、选择变量 ...

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

    一、选择变量

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


    图1:选择变量

    二、设置精确检验方法

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

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

    图2:精确检验选项

    三、设置统计选项

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


    图3:设置统计选项

    四、设置单元格显示

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

    图4:单元格显示选项

    五、分析结果

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

    图5:频率表

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

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

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

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

    展开全文
  • IBM SPSS Statistics的列联表分析,也称为交叉表分析,用于分析两或以上分组变量的相关关系,在分析影响满意度的因素、药物有效性等方面都有很好的应用。 本文将以较为简单的二乘二列联表卡方检验为例,介绍一下...
  • 列联表是观测数据按两或更多属性(定性变量)分类时所列出的频数分布表,它是由两以上的变量进行交叉分类的频数分布表。交互分类的目的是将两变量分组,然后比较各组的分布状况,以寻找变量间的关系。按两个变量...
  • R 创建绘制列联表

    2022-05-03 13:26:00
    R 创建绘制列联表 可以使用该table函数在 R 创建列联表。例如,考虑以下带有随机数据的示例, set.seed(20) X<-sample(c("Yes","No"),10,replace=TRUE) #"No""Yes""Yes""No""No""Yes""No""Yes""No""No" ...
  • 在统计实践,人们经常需要对样本资料进行各种各样的分类,以便分析研究。如果对样本资料按照两个指标变量进行...这种对列联表中两分类变量是否独立的检验,也是假设检验的一个重要内容,称为列联表分析或列联表检验。
  • 第12章 列联表和对应分析 列联表中个变量的独立性检验 对应分析 学习目标 列联表中个变量独立性检验的原理和软件结果解释 对应分析的基本原理和软件结果分析 例12.1美国的General Social Survey 二维列联表中的...
  • 列联表是医学科研最常见的数据存储格式(或者说数据类型)之。通常,列联表的横纵方向展示的是两不同的分类变量,最常见的类型就是四格表(即2×2的列联表)。如下图所示,横向变量是“是否患肺癌”,纵向变量是...
  • python列联表分析

    千次阅读 2020-11-11 15:21:53
    python列联表分析,生成分类条形图,计算卡方,生成个案数据 ######################################## #### 创建 个案数据 供 spss excel 这样的软件分析 # ######################################## import ...
  • h = chi2cont(x) 对 m×n 列联表 x 的数据执行卡方检验。 零假设是列(“处理”)之间的行变量分布(“结果”)没有差异。 测试结果在 h 返回。 h=1 表示在 5% 显着性水平拒绝原假设。 h=0 表示不能在 5% 拒绝原...
  • 对应分析和列联表.ppt

    2020-09-09 07:54:58
    中央财经大学统计学院 第 12 章 列联表和 对应分析 列联表中个变量的独立性检验 对应分析 中央财经大学统计学院 2 学习目标 ? 列联表中个变量独立性检验的原理 和软件结果解释 ? 对应分析的基本原理和软件结果...
  • R语言构建仿真列联表并进行卡方检验(chisq.test):检验两分类变量是否独立、输出期望的列联表 目录 R语言构建仿真列联表并进行卡方检验(chisq.test):检验两分类变量是否独立、输出期望的列联表 #仿真...
  • R语言入门之频率表和列联表

    千次阅读 2020-12-21 14:28:12
    在这期我们将要学习如何针对分类变量数据创建频率表和列联表,并且在此基础之上进行独立性检验、关联度测量以及相关数据的可视化。创建频率表和列联表R语言提供了许多方法来创建频率表和列联表,在这里我们主要...
  • 至于功能: [ Sig,PValue,ContigenMatrix ] = FisherExactTest( XVector,YVector ) 输入:两个变量X,Y的数据作为XVector和YVector 或者您可以只输入列联表。 输出:如果 X 和 Y 关联,“Sig”返回 1,否则返回 0 ...
  • Python列联表

    2021-04-26 19:00:13
    列联表是显示一个变量在行分布而另一个变量在列分布的表。它用于研究两个变量之间的相关性。它是一个多路表格,用于描述一个数据集,其中个观察值属于多个变量中变量一个类别。同样,它基本上是两个或...
  • R语言卡方独立性检验、使用chisq.test函数对列联表进行卡方检验、检验两分类变量是否独立
  • R语言使用chisq.test函数对列联表进行卡方检验、检验两分类变量是否独立、查看expected属性来获取列联表的期望频数
  • 列联表分析

    千次阅读 2018-11-27 16:28:53
    简要讲述了列联表分析的功能以及如何使用FREQ过程来实现。
  • R CrossTable生成二维列联表

    千次阅读 2021-12-18 10:27:59
    对于二维列联表,table()函数的使用格式为: mytable <- table(A, B) ...函数仿照SASPROC FREQ或SPSSCROSSTABS的形式生成二维列联表。 > library(gmodels) > CrossTable(Arthritis$Trea

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,119
精华内容 6,447
关键字:

列联表中的每一个变量