• Chapter 07-Basic statistics(Part2 Frequency and contingency tables)


        这一部分使用在vcd包中的Arthritis数据集。

    > library(vcd)
    载入需要的程辑包:MASS
    载入需要的程辑包:grid
    载入需要的程辑包:colorspace
    > head(Arthritis)
      ID Treatment  Sex Age Improved
    1 57   Treated Male  27     Some
    2 46   Treated Male  29     None
    3 77   Treated Male  30     None
    4 17   Treated Male  32   Marked
    5 36   Treated Male  46   Marked
    6 23   Treated Male  58   Marked

    1. generating frequency tables

    (1) ONE-WAY TABLE

    例01:

    > mytable<-with(Arthritis,table(Improved))
    > mytable
    Improved
      None   Some Marked 
        42     14     28 
    > 
    > prop.table(mytable) Improved None Some Marked 0.5000000 0.1666667 0.3333333 >
    > prop.table(mytable)*100 Improved None Some Marked 50.00000 16.66667 33.33333

    table()函数:简单的频率(frequency)表示;

    · table()函数会缺省自动的忽略missing values(NAs),要包含NA值需要使用选项useNA="ifany"

    prop.table()函数:比例(proportion)表示;

    prop.table()*100函数:百分数(percentage)表示。

    (2)TWO-WAY TABLES

    例02

    > mytable<-xtabs(~Treatment+Improved,data=Arthritis)
    > mytable
             Improved
    Treatment None Some Marked
      Placebo   29    7      7
      Treated   13    7     21
    

    (1)mytable<-table(A,B)

    ·A是行变量,B是列变量。

    (2)xtabs()函数:使用公式方式的输入(formula style input)来创建一个列联表(contingency table)。

    mytable<-xtabs(~A+B,data=mydata)

    例03:

    > margin.table(mytable,1)
    Treatment
    Placebo Treated 
         43      41 
    > prop.table(mytable,1)
             Improved
    Treatment      None      Some    Marked
      Placebo 0.6744186 0.1627907 0.1627907
      Treated 0.3170732 0.1707317 0.5121951
    > margin.table(mytable,2)
    Improved
      None   Some Marked 
        42     14     28 
    > prop.table(mytable,2)
             Improved
    Treatment      None      Some    Marked
      Placebo 0.6904762 0.5000000 0.2500000
      Treated 0.3095238 0.5000000 0.7500000
    > prop.table(mytable)
             Improved
    Treatment       None       Some     Marked
      Placebo 0.34523810 0.08333333 0.08333333
      Treated 0.15476190 0.08333333 0.25000000

    margin.table():产生marginal frequencies;

    prop.table():产生proportions。

    ·index(1):指在table()中的第一个变量;

    ·index(2):指在table()中的第二个变量。

    例04:

    > addmargins(mytable)
             Improved
    Treatment None Some Marked Sum
      Placebo   29    7      7  43
      Treated   13    7     21  41
      Sum       42   14     28  84
    > addmargins(prop.table(mytable))
             Improved
    Treatment       None       Some     Marked        Sum
      Placebo 0.34523810 0.08333333 0.08333333 0.51190476
      Treated 0.15476190 0.08333333 0.25000000 0.48809524
      Sum     0.50000000 0.16666667 0.33333333 1.00000000
    

    addmargins():add marginal sums to these tables;

    ·缺省时为所有变量创建sum margins;

     例04(变1):仅仅添加一个 sum column

    > addmargins(prop.table(mytable,1),2)
             Improved
    Treatment      None      Some    Marked       Sum
      Placebo 0.6744186 0.1627907 0.1627907 1.0000000
      Treated 0.3170732 0.1707317 0.5121951 1.0000000
    

    例04(变2):仅仅添加一个sum row

    > addmargins(prop.table(mytable,2),1)
             Improved
    Treatment      None      Some    Marked
      Placebo 0.6904762 0.5000000 0.2500000
      Treated 0.3095238 0.5000000 0.7500000
      Sum     1.0000000 1.0000000 1.0000000

    (3)MULTIDIMENSIONAL TABLES

    例05:

    > install.packages("gmodels")

    --- 在此連線階段时请选用CRAN的鏡子 --- also installing the dependencies ‘gtools’, ‘gdata’

    试开URL

    ’http://ftp.ctex.org/mirrors/CRAN/bin/windows/contrib/3.0/gtools_3.0.0.zip'

    Content type 'application/zip' length 112950 bytes (110 Kb)

    打开了URL

    downloaded 110 Kb

    试开URL

    ’http://ftp.ctex.org/mirrors/CRAN/bin/windows/contrib/3.0/gdata_2.13.2.zip'

    Content type 'application/zip' length 850387 bytes (830 Kb)

    打开了URL

    downloaded 830 Kb

    试开URL

    ’http://ftp.ctex.org/mirrors/CRAN/bin/windows/contrib/3.0/gmodels_2.15.4.zip'

    Content type 'application/zip' length 76708 bytes (74 Kb)

    打开了URL

    downloaded 74 Kb

    程序包‘gtools’打开成功,MD5和检查也通过

    程序包‘gdata’打开成功,MD5和检查也通过

    程序包‘gmodels’打开成功,MD5和检查也通过

    下载的二进制程序包在  

           C:Usersseven-wangAppDataLocalTempRtmpIlHLxMdownloaded_packages里

    > library(vcd)

    载入需要的程辑包:MASS

    载入需要的程辑包:grid

    载入需要的程辑包:colorspace

    > library(gmodels)

    > CrossTable(Arthritis$Treatment,Arthritis$Improved)

         Cell Contents

    |-----------------------------|

    |                                  N |

    |  Chi-square contribution  |

    |                 N / Row Total |

    |                  N / Col Total |

    |               N / Table Total |

    |-----------------------------|

      Total Observations in Table:  84

                          | Arthritis$Improved Arthritis$Treatment |      None |      Some |    Marked | Row Total |

                           ---------------------------------------------|------------|-----------|-----------|--------------|

                                                                          Placebo |          29 |            7 |           7 |              43 |     

                                                                                      |      2.616 |     0.004 |     3.752 |                  |                    

                                                                                      |      0.674 |     0.163 |     0.163 |         0.512 |         

                                                                                      |      0.690 |     0.500 |     0.250 |                   |          

                                                                                      |      0.345 |     0.083 |     0.083 |                   |

                          ----------------------------------------------|------------|-----------|-----------|---------------|

                                                                          Treated |           13 |           7 |          21 |              41 |

                                                                                      |       2.744 |     0.004 |     3.935 |                  |

                                                                                      |       0.317 |     0.171 |     0.512 |         0.488 |      

                                                                                      |       0.310 |     0.500 |     0.750 |                   |

                                                                                      |       0.155 |     0.083 |     0.250 |                   |

                          ----------------------------------------------|-------------|-----------|-----------|---------------|

                                                                  Column Total |            42 |          14 |         28 |               84 |         

                                                                                      |       0.500 |      0.167 |     0.333 |                   |

                         -----------------------------------------------|-------------|------------|-----------|--------------|

    gmodels包中的CrossTable()函数:创建two-way tables models  after PROC FREO in SAS or CROSSTABS SPSS.

    例06:

    > mytable<-xtabs(~Treatment+Sex+Improved,data=Arthritis)

    > mytable

    , , Improved = None

                       Sex

               Treatment Female Male  

                  Placebo     19   10  

                  Treated      6    7

    , , Improved = Some

                       Sex

               Treatment Female Male  

                   Placebo      7    0  

                   Treated      5    2

    , , Improved = Marked

                       Sex

              Treatment Female Male  

                  Placebo      6    1  

                  Treated     16    5

    > ftable(mytable)                 

                               Improved None Some Marked

    Treatment Sex                            

    Placebo   Female              19    7      6          

                      Male              10    0      1

    Treated   Female               6    5     16          

                     Male               7    2      5

    > margin.table(mytable,1)

    Treatment

    Placebo Treated     

         43      41

    > margin.table(mytable,2)

    Sex

    Female   Male    

         59     25

    > margin.table(mytable,3)

    Improved   None   Some Marked    

              42     14     28

    > margin.table(mytable,c(,31))         

               Improved Treatment None Some Marked  

    Placebo             29    7      7  

    Treated             13    7     21

    > ftable(prop.table(mytable,c(1,2)))                 

                                    Improved       None       Some     Marked

    Treatment Sex                                             

    Placebo   Female            0.59375000 0.21875000 0.18750000          

                      Male            0.90909091 0.00000000 0.09090909

    Treated   Female            0.22222222 0.18518519 0.59259259          

                      Male            0.50000000 0.14285714 0.35714286

    2. Test of independence

    例07:CHI-AQUARE TEST OF INDEPENDENCE

    > library(vcd)
    > mytable<-xtabs(~Treatment+Improved,data=Arthritis)
    > chisq.test(mytable)
    
    	Pearson's Chi-squared test
    
    data:  mytable
    X-squared = 13.055, df = 2, p-value = 0.001463
    > mytable<-xtabs(~Improved+Sex,data=Arthritis)
    > chisq.test(mytable)
    
    	Pearson's Chi-squared test
    
    data:  mytable
    X-squared = 4.8407, df = 2, p-value = 0.08889
    
    Warning message:
    In chisq.test(mytable) : Chi-squared近似算法有可能不准

    chisq.test()函数: 产生一个chi-square of independence of the row and column variables.

    例08:FISHER'S EXACT TEST

    > mytable<-xtabs(~Treatment+Improved,data=Arthritis)
    > fisher.test(mytable)
    
    	Fisher's Exact Test for Count Data
    
    data:  mytable
    p-value = 0.001393
    alternative hypothesis: two.sided

    fisher.test()函数:产生一个Fisher 's exact test。

    ·Fisher's exact test :evaluate the hypothesis of independence of rows and columns in a contingency table with fixed marginals.

    例09:COCHRAN-MANTEL-HAENSZEL TEST

    > mytable<-xtabs(~Treatment+Improved+Sex,data=Arthritis)
    > mantelhaen.test(mytable)
    
    	Cochran-Mantel-Haenszel test
    
    data:  mytable
    Cochran-Mantel-Haenszel M^2 = 14.6323, df = 2, p-value = 0.0006647
    

    mantelhaen.test()函数:提供一个Cochran-Mantel-Haenszel chi-aquare test of null ·hypothesis that two nominal variables are conditionally independent in each straum of a third variable.

    3. measures of association

    例10:

    > library(vcd)
    > mytable<-xtabs(~Treatment+Improved,data=Arthritis)
    > assocstats(mytable)
                        X^2 df  P(> X^2)
    Likelihood Ratio 13.530  2 0.0011536
    Pearson          13.055  2 0.0014626
    
    Phi-Coefficient   : 0.394 
    Contingency Coeff.: 0.367 
    Cramer's V        : 0.394 

    vcd包中associstats()函数:计算 phi coefficient,contingency coefficient,Cramer's V.

  • 相关阅读:
    cmake 基本命令
    webpack4下import()模块按需加载,打包按需切割模块,减少包体积,加快首页请求速度
    内容安全策略(CSP)详解
    内网穿透访问Vue项目的时候出现Invalid Host header解决办法
    webpack3 项目升级 webpack4
    vue-multi-module【多模块集成的vue项目,多项目共用一份配置,可以互相依赖,也可以独立打包部署】
    JS的数据类型判断函数、数组对象结构处理、日期转换函数,浏览器类型判断函数合集
    使用模块化工具打包自己开发的JS库(webpack/rollup)对比总结
    基于AlipayJSBridge封装的H5网页支付宝打赏、网站打赏、个人免签支付,支付宝转账打赏支付组件
    whistle替代Fiddler调试远程服务器代码使用教程
  • 原文地址:https://www.cnblogs.com/wangshenwen/p/3277533.html
Copyright © 2020-2023  润新知