chisq.test
位於 stats
包(package)。 說明
chisq.test
執行卡方列聯表測試和goodness-of-fit 測試。
用法
chisq.test(x, y = NULL, correct = TRUE,
p = rep(1/length(x), length(x)), rescale.p = FALSE,
simulate.p.value = FALSE, B = 2000)
參數
x |
數值向量或矩陣。 |
y |
數值向量;如果 |
correct |
指示在計算 2 x 2 表的檢驗統計量時是否應用連續性校正的邏輯:從所有 |
p |
與 |
rescale.p |
邏輯標量;如果為 TRUE,則將 |
simulate.p.value |
指示是否通過蒙特卡羅模擬計算 p 值的邏輯。 |
B |
一個整數,指定蒙特卡羅測試中使用的重複次數。 |
細節
如果 x
是具有一行或一列的矩陣,或者如果 x
是向量並且未給出 y
,則執行 goodness-of-fit 測試(x
被視為一維列聯表)。 x
的條目必須是非負整數。在這種情況下,測試的假設是總體概率是否等於 p
中的概率,或者如果未給出 p
則全部相等。
如果x
是一個至少有兩行和兩列的矩陣,則將其視為二維列聯表:x
的條目必須是非負整數。否則,x
和y
必須是相同長度的向量或因子;刪除缺失值的情況,將對象強製為因子,並根據這些因子計算列聯表。然後對原假設進行皮爾遜卡方檢驗,即二維列聯表中單元格計數的聯合分布是行和列邊際的乘積。
如果 simulate.p.value
是 FALSE
,則 p 值是根據檢驗統計量的漸近卡方分布計算的;連續性校正僅在 2×2 情況下使用(如果 correct
是 TRUE
,則為默認值)。否則,將使用 B
重複項計算蒙特卡羅檢驗(Hope,1968)的 p 值。默認 B = 2000
意味著最小 p 值約為 0.0005 ( )。
在列聯表情況下,模擬是通過從具有給定邊際的所有列聯表的集合中隨機抽樣來完成的,並且僅當邊際嚴格為正時才有效。從未使用連續性校正,並且在不使用連續性校正的情況下引用統計數據。請注意,這不是卡方檢驗假設的通常抽樣情況,而是費舍爾精確檢驗的假設情況。
在 goodness-of-fit 情況下,模擬是通過從指定的離散分布中隨機采樣來完成的p
,每個樣本的大小n = sum(x)
。這個模擬是在R並且可能會很慢。
值
類"htest"
的列表包含以下組件:
statistic |
卡方檢驗統計量的值。 |
parameter |
檢驗統計量的近似卡方分布的自由度, |
p.value |
檢驗的 p 值。 |
method |
指示所執行測試類型的字符串,以及是否使用蒙特卡羅模擬或連續性校正。 |
data.name |
給出數據名稱的字符串。 |
observed |
觀察到的計數。 |
expected |
原假設下的預期計數。 |
residuals |
皮爾遜殘差, |
stdres |
標準化殘差 |
例子
## From Agresti(2007) p.39
M <- as.table(rbind(c(762, 327, 468), c(484, 239, 477)))
dimnames(M) <- list(gender = c("F", "M"),
party = c("Democrat","Independent", "Republican"))
(Xsq <- chisq.test(M)) # Prints test summary
Xsq$observed # observed counts (same as M)
Xsq$expected # expected counts under the null
Xsq$residuals # Pearson residuals
Xsq$stdres # standardized residuals
## Effect of simulating p-values
x <- matrix(c(12, 5, 7, 7), ncol = 2)
chisq.test(x)$p.value # 0.4233
chisq.test(x, simulate.p.value = TRUE, B = 10000)$p.value
# around 0.29!
## Testing for population probabilities
## Case A. Tabulated data
x <- c(A = 20, B = 15, C = 25)
chisq.test(x)
chisq.test(as.table(x)) # the same
x <- c(89,37,30,28,2)
p <- c(40,20,20,15,5)
try(
chisq.test(x, p = p) # gives an error
)
chisq.test(x, p = p, rescale.p = TRUE)
# works
p <- c(0.40,0.20,0.20,0.19,0.01)
# Expected count in category 5
# is 1.86 < 5 ==> chi square approx.
chisq.test(x, p = p) # maybe doubtful, but is ok!
chisq.test(x, p = p, simulate.p.value = TRUE)
## Case B. Raw data
x <- trunc(5 * runif(100))
chisq.test(table(x)) # NOT 'chisq.test(x)'!
來源
蒙特卡羅模擬的代碼是 Patefield (1981) 的 Fortran 算法的 C 語言翻譯。
參考
Hope, A. C. A. (1968). A simplified Monte Carlo significance test procedure. Journal of the Royal Statistical Society Series B, 30, 582-598. doi:10.1111/j.2517-6161.1968.tb00759.x.
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.
Agresti, A. (2007). An Introduction to Categorical Data Analysis, 2nd ed. New York: John Wiley & Sons. Page 38.
也可以看看
對於 goodness-of-fit 測試,特別是連續分布,ks.test
。
相關用法
- R checkMFClasses 檢查傳遞給模型框架的變量類型的函數
- R constrOptim 線性約束優化
- R cancor 典型相關性
- R confint 模型參數的置信區間
- R contrast (可能稀疏)對比矩陣
- R cor 相關性、方差和協方差(矩陣)
- R cor.test 配對樣本之間的關聯/相關性測試
- R cutree 將樹切割成數據組
- R cpgram 繪製累積周期圖
- R complete.cases 查找完整案例
- R contrasts 獲取和設置對比矩陣
- R convolve 通過 FFT 進行序列卷積
- R cov.wt 加權協方差矩陣
- R cophenetic 層次聚類的共表距離
- R coef 提取模型係數
- R cmdscale 經典(公製)多維標度
- R case+variable.names 擬合模型的案例和變量名稱
- R stlmethods STL 對象的方法
- R medpolish 矩陣的中值波蘭(穩健雙向分解)
- R naprint 調整缺失值
- R summary.nls 總結非線性最小二乘模型擬合
- R summary.manova 多元方差分析的匯總方法
- R formula 模型公式
- R nls.control 控製 nls 中的迭代
- R aggregate 計算數據子集的匯總統計
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Pearson's Chi-squared Test for Count Data。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。