統計學 - 比例的假設檢驗(雙尾)
總體比例是指屬於特定類別的總體份額。
假設檢驗用於檢驗關於總體比例大小的斷言。
比例的假設檢驗
假設檢驗使用以下步驟
- 檢查條件
- 定義斷言
- 確定顯著性水平
- 計算檢驗統計量
- 結論
例如
- 總體:諾貝爾獎得主
- 類別:女性
我們要檢驗的斷言是
“諾貝爾獎女性得主所佔的比例不是 50%”
透過隨機抽取 100 名諾貝爾獎得主樣本,我們發現
樣本中有 100 名諾貝爾獎得主中的 10 名是女性
因此樣本比例為:\(\displaystyle \frac{10}{100} = 0.1\),即 10%。
我們根據以下步驟,使用此樣本資料檢驗斷言。
1. 檢查條件
計算比例置信區間的條件是
- 樣本是隨機選擇的
- 只有兩個選項
- 屬於該類別
- 不屬於該類別
- 樣本至少需要
- 5 個成員屬於該類別
- 5 個成員不屬於該類別
在我們的示例中,我們隨機選擇了 10 名女性。
其餘不是女性,所以在其他類別中有 90 人。
在這種情況下,條件得到滿足。
注意:在沒有每個類別都達到 5 個成員的情況下進行假設檢驗是可能的。但需要進行特殊調整。
2. 定義斷言
我們需要根據我們正在檢驗的斷言來定義一個零假設 (\(H_{0}\)) 和一個備擇假設 (\(H_{1}\))。
斷言是
“諾貝爾獎女性得主所佔的比例不是 50%”
在這種情況下,引數是諾貝爾獎女性得主的比例 (\(p\))。
零假設和備擇假設是
零假設:50% 的諾貝爾獎得主是女性。
備擇假設:諾貝爾獎女性得主所佔的比例不是 50%。
可以用符號表示為
\(H_{0}\):\(p = 0.50 \)
\(H_{1}\):\(p \neq 0.50 \)
這是一個“雙尾”檢驗,因為備擇假設聲稱該比例與零假設中的比例不同(更大或更小)。
如果資料支援備擇假設,我們拒絕零假設並接受備擇假設。
3. 確定顯著性水平
顯著性水平 (\(\alpha\)) 是我們在假設檢驗中拒絕零假設時接受的不確定性。
顯著性水平是意外做出錯誤結論的百分比機率。
典型的顯著性水平是
- \(\alpha = 0.1\) (10%)
- \(\alpha = 0.05\) (5%)
- \(\alpha = 0.01\) (1%)
較低的顯著性水平意味著資料中的證據需要更強才能拒絕零假設。
沒有“正確”的顯著性水平——它只說明瞭結論的不確定性。
注意:5% 的顯著性水平意味著當我們拒絕一個零假設時
我們預計在 100 次中會拒絕 5 次真實的零假設。
4. 計算檢驗統計量
檢驗統計量用於決定假設檢驗的結果。
檢驗統計量是根據樣本計算出的標準化值。
總體比例的檢驗統計量 (TS) 公式是
\(\displaystyle \frac{\hat{p} - p}{\sqrt{p(1-p)}} \cdot \sqrt{n} \)
\(\hat{p}-p\) 是樣本比例 (\(\hat{p}\)) 與聲稱的總體比例 (\(p\)) 之間的差值。
\(n\) 是樣本大小。
在我們的例子中
聲稱的 (\(H_{0}\)) 總體比例 (\(p\)) 為 \( 0.50 \)
樣本比例 (\(\hat{p}\)) 為 100 分之 10,即:\(\displaystyle \frac{10}{100} = 0.10\)
樣本大小 (\(n\)) 為 \(100\)
所以檢驗統計量 (TS) 是
\(\displaystyle \frac{0.1-0.5}{\sqrt{0.5(1-0.5)}} \cdot \sqrt{100} = \frac{-0.4}{\sqrt{0.5(0.5)}} \cdot \sqrt{100} = \frac{-0.4}{\sqrt{0.25}} \cdot \sqrt{100} = \frac{-0.4}{0.5} \cdot 10 = \underline{-8}\)
您也可以使用程式語言函式計算檢驗統計量
示例
使用 Python,利用 scipy 和 math 庫計算比例的檢驗統計量。
import scipy.stats as stats
import math
# 指定出現次數 (x)、樣本大小 (n) 和零假設中聲稱的比例 (p)
x = 10
n = 100
p = 0.5
# 計算樣本比例
p_hat = x/n
# 計算並列印檢驗統計量
print((p_hat-p)/(math.sqrt((p*(1-p))/(n))))
自己動手試一試 »
示例
使用 R 語言,可以使用內建的數學函式來計算比例的檢驗統計量。
# 指定樣本出現次數 (x)、樣本大小 (n) 和零假設聲稱 (p)
x <- 10
n <- 100
p <- 0.5
# 計算樣本比例
p_hat = x/n
# 計算並輸出檢驗統計量
(p_hat-p)/(sqrt((p*(1-p))/(n)))
自己動手試一試 »
5. 做出結論
做出假設檢驗結論主要有兩種方法
- 臨界值方法將檢驗統計量與顯著性水平的臨界值進行比較。
- P 值方法將檢驗統計量的 P 值與顯著性水平進行比較。
注意:這兩種方法只是在呈現結論的方式上有所不同。
臨界值方法
對於臨界值方法,我們需要找到顯著性水平 (\(\alpha\)) 的臨界值 (CV)。
對於總體比例檢驗,臨界值 (CV) 是來自標準正態分佈的 Z 值。
此臨界 Z 值 (CV) 定義了檢驗的拒絕域。
拒絕域是標準正態分佈尾部的機率區域。
由於宣告是總體比例與 50% 不同,因此拒絕區域分為左尾和右尾。
拒絕域的大小由顯著性水平 (\(\alpha\)) 決定。
選擇顯著性水平 (\(\alpha\)) 為 0.01 或 1%,我們可以從 Z 表 或使用程式語言函式找到臨界 Z 值。
注意:由於這是雙尾檢驗,尾部面積 (\(\alpha\)) 需要分成兩半(除以 2)。
示例
使用 Python,使用 Scipy Stats 庫的 norm.ppf()
函式找到左尾 \(\alpha\)/2 = 0.005 的 Z 值。
import scipy.stats as stats
print(stats.norm.ppf(0.005))
自己動手試一試 »
使用任何一種方法,我們都可以發現左尾的臨界 Z 值約為 \(\approx \underline{-2.5758}\)
由於正態分佈是對稱的,我們知道右尾的臨界 Z 值將是相同的數字,只是正數:\(\underline{2.5758}\)
對於雙尾檢驗,我們需要檢查檢驗統計量 (TS) 是否小於負臨界值 (-CV),或者大於正臨界值 (CV)。
如果檢驗統計量小於負臨界值,則檢驗統計量在拒絕區域內。
如果檢驗統計量大於正臨界值,則檢驗統計量在拒絕區域內。
當檢驗統計量在拒絕域內時,我們拒絕零假設 (\(H_{0}\))。
這裡,檢驗統計量 (TS) 約為 \(\underline{-8}\),臨界值約為 \(\underline{-2.5758}\)
下圖顯示了此檢驗的圖示
由於檢驗統計量小於負臨界值,我們拒絕零假設。
這意味著樣本資料支援備擇假設。
我們可以總結結論如下
樣本資料在 1% 顯著性水平上支援“諾貝爾獎女性得主所佔的比例不是 50%”的說法。
P 值方法
對於 P 值方法,我們需要找到檢驗統計量 (TS) 的 P 值。
如果 P 值小於顯著性水平 (\(\alpha\)),我們拒絕零假設 (\(H_{0}\))。
檢驗統計量約為 \( \underline{-8} \)
對於總體比例檢驗,檢驗統計量是來自標準正態分佈的 Z 值。
由於這是雙尾檢驗,我們需要找到 Z 值小於 -8 的 P 值,然後乘以 2。
我們可以使用 Z 表或使用程式語言函式找到 P 值
示例
使用 Python,使用 Scipy Stats 庫的 norm.cdf()
函式找到雙尾檢驗 Z 值小於 -8 的 P 值。
import scipy.stats as stats
print(2*stats.norm.cdf(-8))
自己動手試一試 »
使用任何一種方法,我們都可以發現 P 值約為 \(\approx \underline{1.25 \cdot 10^{-15}}\) 或 \(0.00000000000000125\)
這告訴我們,顯著性水平 (\(\alpha\)) 需要大於 0.000000000000125% 才能拒絕零假設。
下圖顯示了此檢驗的圖示
這個 P 值小於任何常見的顯著性水平(10%、5%、1%)。
因此,零假設在所有這些顯著性水平下都被拒絕。
我們可以總結結論如下
樣本資料在 10%、5% 和 1% 顯著性水平上支援“諾貝爾獎女性得主所佔的比例不是 50%”的說法。
使用程式設計計算假設檢驗的 P 值
許多程式語言可以計算 P 值來決定假設檢驗的結果。
對於大型資料集,使用軟體和程式設計計算統計量更為常見,因為手動計算會變得困難。
此處計算的 P 值將告訴我們零假設可以被拒絕的最低可能顯著性水平。
示例
使用 Python,使用 scipy 和 math 庫計算比例的雙尾假設檢驗的 P 值。
這裡,樣本大小是 100,發生次數是 10,檢驗是針對比例不等於 0.50 的。
import scipy.stats as stats
import math
# 指定出現次數 (x)、樣本大小 (n) 和零假設中聲稱的比例 (p)
x = 10
n = 100
p = 0.5
# 計算樣本比例
p_hat = x/n
# 計算檢驗統計量
test_stat = (p_hat-p)/(math.sqrt((p*(1-p))/(n)))
# 輸出檢驗統計量的 p 值(雙尾檢驗)
print(2*stats.norm.cdf(test_stat))
自己動手試一試 »
示例
使用 R 語言,使用內建的 prop.test()
函式找到比例的左尾假設檢驗的 P 值。
這裡,樣本大小是 100,發生次數是 10,檢驗是針對比例不等於 0.50 的。
# 指定樣本出現次數 (x)、樣本大小 (n) 和零假設聲稱 (p)
x <- 10
n <- 100
p <- 0.5
# 0.01 顯著性水平下的左尾比例檢驗的 P 值
prop.test(x, n, p, alternative = c("two.sided"), conf.level = 0.99, correct = FALSE)$p.value
自己動手試一試 »
注意:R 程式碼中的 conf.level
與顯著性水平相反。
這裡,顯著性水平是 0.01 或 1%,所以置信水平是 1-0.01 = 0.99 或 99%。
左尾和雙尾檢驗
這是一個雙尾檢驗的示例,其中備擇假設聲稱引數與零假設的宣告不同。
您可以在此處檢視其他型別的等效分步指南