fisher.test
位于 stats
包(package)。 说明
执行 Fisher 精确检验,以测试具有固定边际的列联表中行和列的独立性是否为零。
用法
fisher.test(x, y = NULL, workspace = 200000, hybrid = FALSE,
hybridPars = c(expect = 5, percent = 80, Emin = 1),
control = list(), or = 1, alternative = "two.sided",
conf.int = TRUE, conf.level = 0.95,
simulate.p.value = FALSE, B = 2000)
参数
x |
矩阵形式的二维列联表或因子对象。 |
y |
一个因子对象;如果 |
workspace |
一个整数,指定网络算法中使用的工作空间的大小。以4字节为单位。仅用于大于的非模拟 p 值R版本 3.5.0 中,这还增加了内部堆栈大小,从而可以解决更大的问题,但有时需要数小时。在这种情况下, |
hybrid |
一个合乎逻辑的。仅用于大于 表,在这种情况下,它指示是否应计算精确概率(默认)或其混合近似值。 |
hybridPars |
长度为 3 的数值向量,默认说明卡方近似有效性的“Cochran 条件”,请参阅“详细信息”。 |
control |
包含用于低级算法控制的命名组件的列表。目前唯一使用的是 |
or |
假设的优势比。仅用于 情况。 |
alternative |
表示备择假设,并且必须是 |
conf.int |
逻辑指示是否应计算(并返回) 表中优势比的置信区间。 |
conf.level |
返回的置信区间的置信水平。仅用于 |
simulate.p.value |
指示是否在大于 表中通过蒙特卡洛模拟计算 p 值的逻辑。 |
B |
一个整数,指定蒙特卡罗测试中使用的重复次数。 |
细节
如果x
是一个矩阵,它被视为一个二维列联表,因此它的条目应该是非负整数。否则,x
和 y
必须是相同长度的向量或因子。删除不完整的情况,将向量强制转换为因子对象,并根据这些对象计算列联表。
对于https://netlib.org/toms/643 获取。请注意,当表的条目太大时,此操作会失败(并显示错误消息)。 (如有必要,它会转置表,使其行数不超过列数。一个约束是行边际的乘积小于 。) 情况,p 值是使用(中心或非中心)超几何分布直接获得的。另外,计算基于 FORTRAN 子例程 FEXACT 的 C 版本,该子例程实现了由 Mehta 和 Patel (1983, 1986) 开发并由 Clarkson、Fan 和 Joe (1993) 改进的网络。 FORTRAN 代码可以从
对于alternative = "greater"
是比值比大于 or
的测试。 表,条件独立性为零相当于优势比等于 1 的假设。 “精确”推论可以基于观察,一般来说,给定所有边际总数固定,列联表的第一个元素具有非中心超几何分布,其非中心参数由优势比给出(Fisher,1935)。单方面测试的另一种方法是基于优势比,因此
双边检验基于表格的概率,并将所有概率小于或等于观察到的表格的表格视为“更极端”,p 值是此类概率的总和。
对于大于hybrid = TRUE
,仅当“科克伦条件”(或其修改版本)指定时才使用渐近卡方概率hybridPars = c(expect = 5, percent = 80, Emin = 1)
满足,也就是说,如果没有单元格的预期计数小于1
(= Emin
)和超过80%(= percent
) 的单元格的预期计数至少为 5 (= expect
),否则使用精确计算。对应的一个if()
针对所有考虑的 sub-tables 做出决定。偶然,R已经使用过180
代替80
作为percent
, IE。,hybridPars[2]
在R3.0.0 和 3.4.1(含)之间的版本,即第 2 个hybridPars
(所有这些都曾经是hard-coded之前R3.5.0)。因此,在这些版本中R,hybrid=TRUE
从来没有改变过。
在 workspace
(这可能会导致运行时间很长)之外,使用simulate.p.value = TRUE
通常就足够了,因此是可取的。 和 或 的情况下,内部表对于精确测试来说可能会变得太大,在这种情况下会发出错误信号。除了充分增加
模拟是根据行和列边进行的,并且仅当边严格为正时才有效。 (使用 Patefield (1981) 算法的 C 翻译。)请注意,默认重复次数 ( B = 2000
) 意味着最小 p 值约为 0.0005 ( )。
值
类"htest"
的列表包含以下组件:
p.value |
检验的 p 值。 |
conf.int |
比值比的置信区间。仅出现在 |
estimate |
优势比的估计。请注意,使用的是条件最大似然估计 (MLE),而不是无条件 MLE(样本优势比)。仅出现在 情况下。 |
null.value |
空值下的优势比 |
alternative |
说明备择假设的字符串。 |
method |
字符串 |
data.name |
给出数据名称的字符串。 |
例子
## Agresti (1990, p. 61f; 2002, p. 91) Fisher's Tea Drinker
## A British woman claimed to be able to distinguish whether milk or
## tea was added to the cup first. To test, she was given 8 cups of
## tea, in four of which milk was added first. The null hypothesis
## is that there is no association between the true order of pouring
## and the woman's guess, the alternative that there is a positive
## association (that the odds ratio is greater than 1).
TeaTasting <-
matrix(c(3, 1, 1, 3),
nrow = 2,
dimnames = list(Guess = c("Milk", "Tea"),
Truth = c("Milk", "Tea")))
fisher.test(TeaTasting, alternative = "greater")
## => p = 0.2429, association could not be established
## Fisher (1962, 1970), Criminal convictions of like-sex twins
Convictions <- matrix(c(2, 10, 15, 3), nrow = 2,
dimnames =
list(c("Dizygotic", "Monozygotic"),
c("Convicted", "Not convicted")))
Convictions
fisher.test(Convictions, alternative = "less")
fisher.test(Convictions, conf.int = FALSE)
fisher.test(Convictions, conf.level = 0.95)$conf.int
fisher.test(Convictions, conf.level = 0.99)$conf.int
## A r x c table Agresti (2002, p. 57) Job Satisfaction
Job <- matrix(c(1,2,1,0, 3,3,6,1, 10,10,14,9, 6,7,12,11), 4, 4,
dimnames = list(income = c("< 15k", "15-25k", "25-40k", "> 40k"),
satisfaction = c("VeryD", "LittleD", "ModerateS", "VeryS")))
fisher.test(Job) # 0.7827
fisher.test(Job, simulate.p.value = TRUE, B = 1e5) # also close to 0.78
## 6th example in Mehta & Patel's JASA paper
MP6 <- rbind(
c(1,2,2,1,1,0,1),
c(2,0,0,2,3,0,0),
c(0,1,1,1,2,7,3),
c(1,1,2,0,0,0,1),
c(0,1,1,1,1,0,0))
fisher.test(MP6)
# Exactly the same p-value, as Cochran's conditions are never met:
fisher.test(MP6, hybrid=TRUE)
参考
Agresti, A. (1990). Categorical data analysis. New York: Wiley. Pages 59-66.
Agresti, A. (2002). Categorical data analysis. Second edition. New York: Wiley. Pages 91-101.
Fisher, R. A. (1935). The logic of inductive inference. Journal of the Royal Statistical Society Series A, 98, 39-54. doi:10.2307/2342435.
Fisher, R. A. (1962). Confidence limits for a cross-product ratio. Australian Journal of Statistics, 4, 41. doi:10.1111/j.1467-842X.1962.tb00285.x.
Fisher, R. A. (1970). Statistical Methods for Research Workers. Oliver & Boyd.
Mehta, Cyrus R. and Patel, Nitin R. (1983). A network algorithm for performing Fisher's exact test in doi:10.1080/01621459.1983.10477989.
contingency tables. Journal of the American Statistical Association, 78, 427-434.Mehta, C. R. and Patel, N. R. (1986). Algorithm 643: FEXACT, a FORTRAN subroutine for Fisher's exact test on unordered doi:10.1145/6497.214326.
contingency tables. ACM Transactions on Mathematical Software, 12, 154-161.Clarkson, D. B., Fan, Y. and Joe, H. (1993) A Remark on Algorithm 643: FEXACT: An Algorithm for Performing Fisher's Exact Test in doi:10.1145/168173.168412.
Contingency Tables. ACM Transactions on Mathematical Software, 19, 484-488.Patefield, W. M. (1981). Algorithm AS 159: An efficient method of generating r x c tables with given row and column totals. Applied Statistics, 30, 91-97. doi:10.2307/2346669.
也可以看看
fisher.exact
位于 exact2x2
包中,用于对 表的双边检验和置信区间进行替代解释。
相关用法
- R fitted 提取模型拟合值
- R filter 时间序列的线性过滤
- R fivenum 图基五数摘要
- R formula 模型公式
- R factor.scope 计算在公式中添加或删除时允许的更改
- R factanal 因子分析
- R friedman.test 弗里德曼秩和检验
- R ftable 扁平列联表
- R ftable.formula 平面列联表的公式表示法
- R family 模型的族对象
- R formula.nls 从 nls 对象中提取模型公式
- R fft 快速离散傅立叶变换 (FFT)
- R fligner.test 方差齐性的 Fligner-Killeen 检验
- R stlmethods STL 对象的方法
- R medpolish 矩阵的中值波兰(稳健双向分解)
- R naprint 调整缺失值
- R summary.nls 总结非线性最小二乘模型拟合
- R summary.manova 多元方差分析的汇总方法
- R nls.control 控制 nls 中的迭代
- R aggregate 计算数据子集的汇总统计
- R deriv 简单表达式的符号和算法导数
- R kruskal.test Kruskal-Wallis 秩和检验
- R quade.test 四方测试
- R decompose 移动平均线的经典季节性分解
- R plot.stepfun 绘制阶跃函数
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Fisher's Exact Test for Count Data。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。