R语言笔记-分类变量列联表和独立性检验

本文介绍了如何使用R语言进行频数表与列联表的生成,包括一维、二维和多维列联表,并详细讲解了独立性检验,如χ2检验、相对危险度(RR)、比值比(OR)、Mantel-Haenszel检验和McNemar检验,提供了一系列实用的R包和函数。


示例数据: 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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值