一、概念介紹
檢驗統計量是統計假設檢驗的核心。在進行假設檢驗中,通過計算樣本數據的某個統計量得到一個值,該值代表樣本數據中可以區分兩個假設的差異程度。這個統計量就是檢驗統計量。
檢驗統計量通常是用來衡量樣本數據與抽樣分布中的理論值之間差異的。抽樣分布往往是已知的,如果該差異達到一定的臨界值,則認為數據支持原假設不成立,否則,就認為數據支持原假設成立。
不同的檢驗問題需要使用不同的檢驗統計量,例如,當我們要檢驗一個總體均值是否等於一個已知常數時,可以使用t檢驗,其檢驗統計量就是樣本均值與常數的差值除以標準誤差。
二、檢驗統計量的常見類型
1. z檢驗統計量
z檢驗統計量是若干次獨立採樣後,樣本平均數與總體平均數之間差異的數量度量。在大樣本條件下,將樣本平均數減去總體平均數,再除以標準誤,得到的值服從標準正態分布。
def z_value(sample_mean, population_mean, std_error):
return (sample_mean - population_mean) / std_error
2. t檢驗統計量
t檢驗統計量基於樣本的平均值與總體的平均值之間的差異量。在小樣本條件下,假設樣本數據來自於正態分布總體,t檢驗統計量的分布近似於自由度為n-1的t分布。
def t_value(sample_mean, population_mean, std_error, sample_size):
return (sample_mean - population_mean) / (std_error / math.sqrt(sample_size))
3. F檢驗統計量
F檢驗統計量用於檢驗兩個或更多正態分布總體方差是否相同。F檢驗統計量就是兩個樣本方差的比值。在假設方差相等的條件下,F檢驗統計量的分布近似於自由度為n-1的F分布。
def f_value(sample_1_var, sample_2_var):
return sample_1_var / sample_2_var
三、檢驗統計量的應用
1. z檢驗統計量的應用
假設我們要檢驗一種藥物對體溫的影響。隨機抽取n個受試者服用藥物後,測量體溫值並計算平均值和標準誤差。根據零假設,該藥物不會對體溫產生影響,即樣本均值等於總體均值。如果得到的z值在顯著性水平上的臨界值範圍外,則拒絕零假設,認為該藥物對體溫產生影響。
def z_test(sample_mean, population_mean, std_error, alpha):
z_value = abs(z_value(sample_mean, population_mean, std_error))
z_alpha = norm.ppf(alpha / 2)
if z_value > z_alpha:
print("Reject the null hypothesis.")
else:
print("Cannot reject the null hypothesis.")
2. t檢驗統計量的應用
假設我們要比較兩種方法對某個指標的影響。隨機抽取n1個受試者使用第一種方法,另n2個受試者使用第二種方法,然後測量指標並計算兩個樣本的平均值、標準誤差和t值。在顯著性水平為0.05的條件下,如果t值在t分布表格中對應自由度為n1+n2-2的t臨界值範圍內,則不能拒絕零假設,即認為兩種方法對指標的影響沒有顯著差異。
def t_test(sample_mean_1, sample_mean_2, std_error_1, std_error_2, sample_size_1, sample_size_2, alpha):
df = sample_size_1 + sample_size_2 - 2
t_value = abs((sample_mean_1 - sample_mean_2) / math.sqrt(std_error_1**2 / sample_size_1 + std_error_2**2 / sample_size_2))
t_alpha = t.ppf(alpha / 2, df)
if t_value > t_alpha:
print("Reject the null hypothesis.")
else:
print("Cannot reject the null hypothesis.")
3. F檢驗統計量的應用
假設我們要比較三種方法的效果。分別隨機抽取n1、n2和n3個受試者,使用三種方法並測量效果值,然後計算方差,並比較F值與F分布臨界值之間的差異。如果F值超過了顯著性水平為0.05(或0.01)的F分布下臨界之外,則拒絕零假設。
def f_test(sample_var_1, sample_var_2, sample_var_3, alpha):
f_value_1 = f_value(sample_var_1, sample_var_2)
f_value_2 = f_value(sample_var_1, sample_var_3)
df_1 = len(sample_var_1) - 1
df_2 = len(sample_var_1) - 1
f_alpha_1 = f.ppf(1 - alpha / 2, df_1, df_2)
f_alpha_2 = f.ppf(alpha / 2, df_1, df_2)
if f_value_1 > f_alpha_1 or f_value_2 < f_alpha_2:
print("Reject the null hypothesis.")
else:
print("Cannot reject the null hypothesis.")
原創文章,作者:PPJRI,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/331512.html
微信掃一掃
支付寶掃一掃