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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。