【发布时间】:2013-12-10 16:24:09
【问题描述】:
主要编辑: 我决定重写这个问题,因为我的原件写得不好。我将在下面留下原始问题以保持记录。基本上,我需要在大约 200 个观察值的 4 x 5 大的表上进行 Fisher 检验。事实证明,正如here 所解释的那样,这通常是一个主要的计算挑战(我认为,我不能完全遵循它)。当我同时使用 R 和 Stata 时,我将使用一些虚构的数据来为这两者提出问题。
状态:
tabi 1 13 3 27 46 \ 25 0 2 5 3 \ 22 2 0 3 0 \ 19 34 3 8 1 , exact(10)
您可以将exact() 增加到最大值 1000(但可能需要一天时间才能返回错误)。
R:
Job <- matrix(c(1,13,3,27,46, 25,0,2,5,3, 22,2,0,3,0, 19,34,3,8,1), 4, 5,
dimnames = list(income = c("< 15k", "15-25k", "25-40k", ">40k"),
satisfaction = c("VeryD", "LittleD", "ModerateS", "VeryS", "exstatic")))
fisher.test(Job)
至少对我来说,这两个程序都会出错。那么问题是如何在 Stata 或 R 上进行此计算?
原问题: 我有Stata和R可以玩。 我有一个包含各种分类变量的数据集,其中一些有多个类别。 因此,我想对超过 2 x 2 个类别进行 Fisher 精确检验 即将 Fisher's 应用于 2 x 6 表或 4 x 4 表。
这可以用 R 或 Stata 完成吗?
编辑:虽然这可以在 Stata 中完成 - 它不适用于我的数据集,因为我有太多类别。 Stata 经历了无休止的迭代,即使放置一天或更长时间也不会产生解决方案。
我的问题是真的 - R 可以做到这一点,并且可以快速做到吗?
【问题讨论】:
-
你的桌子有多大仍然是一个关键细节。
-
是的,你是对的——现在就检查一下。 n = 191,第 1 类有 4 个分区,第 2 类有 5 个分区。这绝对不适合我。大约一天半后,它返回一个错误,说值太多
-
这变得更令人费解了。我看不出有什么理由让 Stata 紧张。你能发布数据吗?
-
啊...我真的不能(保密原因)。我的理解是,它只是一种原始的处理能力——每次添加一个类别时,你都会以指数方式增加观察的可能分布的数量,甚至在 4 x 5 和 n = 191 时,它的繁重计算
-
我收到了对
tabi 2 2 2 2 2 \ 13 13 13 13 13 \ 4 4 4 4 4 \ 20 20 20 20 20 , exact的即时回复。这不是一个证明,但它是 4 x 5(n 约为 200)表必然有问题的想法的反例。我想知道你的记忆要求是否会让事情变得更糟。
标签: r statistics stata