R
在 Excel 與 R 中計算卡方的奇怪方法
我正在查看一個聲稱正在計算,但我不承認這種做法,我想知道我是否遺漏了一些東西。
這是它正在分析的數據:
+------------------+----------+----------+ | Total Population | Observed | Expected | +------------------+----------+----------+ | 2000 | 42 | 32.5 | | 2000 | 42 | 32.5 | | 2000 | 25 | 32.5 | | 2000 | 21 | 32.5 | +------------------+----------+----------+
以下是它為每組計算卡方的總和:
P = (sum of all observed)/(sum of total population) = 0.01625 A = (Observed - (Population * P)) ^2 B = Total Population * P * (1-P) ChiSq = A/B
所以對於每一組是:
2.822793 2.822793 1.759359 4.136448
總的智方是:
11.54139
.但是,我看到的每個計算示例與此完全不同。我會為每個組做:
chiSq = (Observed-Expected)^2 / Expected
因此對於上面的例子,我會得到一個總的卡方值
11.3538
。我的問題是 - 為什麼他們在 excel 表中計算這樣?這是一種公認的方法嗎?
更新
我想知道這一點的原因是我試圖用 R 語言複製這些結果。我正在使用 chisq.test 函數,它的數字與 Excel 表的數字不同。因此,如果有人知道如何在 R 中執行這種方法,那將非常有幫助!
更新 2
如果有人感興趣,這是我在 R 中計算的方法:
res <- matrix(c((2000-42), 42, (2000-42), 42, (2000-25), 25, (2000-21), 21), 2, 4) chisq.test(res)
事實證明這很簡單。
這顯然是二項式抽樣。有兩種方法可以查看它。
方法1,電子表格的方法,它處理觀察到的計數作為, 可以近似為. 因此,大約是標準正常值,並且是獨立的,所以(大約).
(如果 p 基於觀察到的計數,則不是獨立的,但它仍然是卡方,自由度少了一個。)
方法二:你的使用卡方的形式也可以,但它要求您不僅要考慮您標記為“已觀察”的類別中的那些,還要考慮那些不在該類別中的:
+------------+------+-------+ | Population | In A | Not A | +------------+------+-------+ | 2000 | 42 | 1958 | | 2000 | 42 | 1958 | | 2000 | 25 | 1975 | | 2000 | 21 | 1979 | + -----------+------+-------+
在哪裡第一列的 ’s 與您擁有的一樣,而第二列的那些是
…然後求和在兩列上。
這兩種形式在代數上是等價的。注意 . 考慮 i卡方的行:
這意味著您應該以兩種方式得到相同的答案,直至舍入誤差。
讓我們來看看:
Observed Expected (O-E)^2/E Ni A not A A not A A not A 2000 42 1958 32.5 1967.5 2.776923077 0.045870394 2000 42 1958 32.5 1967.5 2.776923077 0.045870394 2000 25 1975 32.5 1967.5 1.730769231 0.028589581 2000 21 1979 32.5 1967.5 4.069230769 0.067217281 Sum 11.35384615 0.187547649
卡方 = 11.353846 + 0.187548 = 11.54139
這符合他們的答案。