【问题标题】:Creating a contingency table with fixed margins创建具有固定边距的列联表
【发布时间】:2015-04-13 23:27:46
【问题描述】:

我正在尝试创建一个表,其中包含来自中心超几何分布的随机条目,其中列和行总计是固定的。

但是,我可以让列总和固定且相等,但不能让行总和。我已经阅读了其他答案,但似乎没有人具体谈论如何做到这一点,我的 R 知识非常基础,可以在一些帮助或正确方向的帮助下完成。

为了从中心超几何分布中获取值,我使用了BiasedUrn 包。

例如:

N <- 50
rand <- 10
n1 <- 25
odds0 <- rep(1,K)  
m0 <- rep(N/K,K)
library(BiasedUrn)
i <- as.table(rMFNCHypergeo(nran=rand, n=n1, m=m0, odds=odds0))
addmargins(i) 
             A   B   C   D   E   F   G   H   I   J Sum
       A     5   3   5   7   5   5   6   6   5   5  52    
       B     8   7   4   5   5   6   3   4   5   4  51
       C     3   6   4   4   4   5   6   8   5   4  49
       D     4   4   6   3   6   4   5   3   3   5  43
       E     5   5   6   6   5   5   5   4   7   7  55
       Sum  25  25  25  25  25  25  25  25  25  25 250

我希望保持所有列总和等于 25,并且所有行总和等于另一个我可以选择的数字,例如 50。

【问题讨论】:

    标签: r statistics contingency


    【解决方案1】:

    您是否正在寻找来自Base R的r2dtable函数?

    set.seed(101)
    tt <- r2dtable(n=1,c=rep(25,6),r=rep(50,3))
    addmargins(as.table(tt[[1]]))
    ##       A   B   C   D   E   F Sum
    ## A     7   9   7  11   9   7  50
    ## B    10   7  10   6   7  10  50
    ## C     8   9   8   8   9   8  50
    ## Sum  25  25  25  25  25  25 150
    

    【讨论】:

    • 谢谢,这正是我需要的边缘。但是有没有办法可以更好地控制表格内的值?例如它们是如何分布式的? span>
    • 固定边距是一个非常强烈的约束。 r2dtable肯定没有任何更具灵活性,但如果您可以在您感兴趣的分发下计算表的可能性,您可能能够合理有效地拒绝取样。你能提供更多的上下文吗? span>
    猜你喜欢
    • 2012-07-17
    • 1970-01-01
    • 1970-01-01
    • 2013-12-03
    • 1970-01-01
    • 2017-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多