案例:針對同一系列的教材,學校設計了兩種不同的自助學習系統,現採集每種教學系統下學生完成全部教程所需要的時間。(案例摘自《商務與經濟統計學》)
1、利用描述統計學方法彙總每種學習系統下學生學完教程的時間資料。根據樣本資料,你能觀察到有何相似之處和差異?
2、評價兩種方法總體均值之間的差異,討論你的結論?
3、計算每一種系統的標準差與方差,進行兩種系統總體方差相等的假設檢驗,討論你的結論。
4、關於兩種方法之間的差異,你能得到什麼結論?你有何建議?請作出解釋。
5、對於將來要使用那種系統,在作出最終決定之前你是否還需要其他資料或者檢驗。
本文主要圍繞解決第三個問題來講解方差齊性檢驗。
1、方差齊性檢驗描述
2、python實現方差齊性檢驗
方差齊性檢驗的檢驗統計量使用的是f分布,由於f分布對正態總體的假定是敏感的,只有當兩個總體至少近似正態分佈的假定是合理的,才能使用f分布。
本案例並未給出兩總體的分布,所以我們需要先檢驗兩總體是否服從正態分佈。
2.1 檢驗兩總體服從正態分佈
data = pd.read_csv(r'/training.csv')
data.columns=['舊系統完成時間','新系統完成時間']資料標準化:這裡使用sklearn中的standardscaler來進行標準化
# 資料標準化
from sklearn.preprocessing import standardscaler
data_new = data.copy()
scaler = standardscaler()
scaler.fit(data_new)
data_ = scaler.transform(data_new)
data_new = pd.dataframe(data_, columns=['舊系統完成時間', '新系統完成時間']2對樣本資料進行分箱,並計算期望頻數和觀測頻數
由於正態分佈是連續的,我們需要對時間值進行分箱來定義類別,在使用卡方檢驗的時候我們要求每乙個類別的期望頻數至少為5.所以在定義時間值的類別時,也必須使每一類的期望頻數至少為5.
# 樣本資料分箱
result1, binedge1 = pd.qcut(data_new['舊系統完成時間'], 8, retbins=true)
result2, binedge2 = pd.qcut(data_new['新系統完成時間'], 5, retbins=true)
def get_expect_frequency(binedge, mean, std):
函式功能:計算期望頻數
binedge:樣本分箱使用的的節點序列
mean:樣本均值
std:樣本方差
返回值:返回期望頻數序列
p_array =
bin_size = len(binedge)
for i in range(bin_size-1):
# 正態分佈的累計分布函式計算概率值
binedge[i+1], mean, std)-stats.norm.cdf(binedge[i], mean, std))*61)
print('%s,%s' % (len(p_array), bin_size))
return p_array
old_system_data = result1.value_counts().sort_index()
new_system_data = result2.value_counts().sort_index()
#獲採樣本均值和樣本標準差
means=data_new.mean()
stds=data_new.std()
#返回期望頻數
p1 = get_expect_frequency(binedge1,means[0],stds[0])
p2 = get_expect_frequency(binedge2,means[1],stds[1])使用卡方分布構造檢驗統計量並計算p值
stats.chisquare(old_system_data.values,p1)
power_divergenceresult(statistic=7.890003188867656, pvalue=0.34239325885492095)
stats.chisquare(new_system_data.values,p2)
power_divergenceresult(statistic=4.416939724429952, pvalue=0.3525102013466619)
比較p值和顯著性水平
綜合以上,兩總體均服從正態分佈,下面開始方差齊性檢驗:
2.2 方差齊性檢驗確立原假設和備擇假設:
# 計算f統計量的值
f = data.loc[:, '舊系統完成時間'].var()/data.loc[:, '新系統完成時間'].var()
# 計算p值:使用cdf函式,傳入引數,f統計量的值,分子自由度,分母自由度
pvalue = 1-stats.f.cdf(f, 60, 60)
pvalue=0.00028901576919825955p值和顯著性水平0.05比較,p值小於顯著性水平,所以拒絕原假設。最終結論認為兩總體方差不等。
bartlett檢驗 方差齊性檢驗
我們在方差分析裡面有講過,方差分析有乙個很重要的前提就是叫方差齊性。這一篇來講講如何來檢驗方差齊性。先講講什麼是方差齊性,方差齊性是指不同組間的總體方差是一樣的。那為什麼方差分析的前提是要組間的總體方差保持一致呢?先想想方差分析是做什麼呢?方差分析是用來比較多組之間均值是否存在顯著差異。那如果方差不...
python方差齊性檢驗 講講如何來檢驗方差齊性
1.前言 我們在方差分析裡面有講過,方差分析有乙個很重要的前提就是叫方差齊性。這一篇來講講如何來檢驗方差齊性。先講講什麼是方差齊性,方差齊性是指不同組間的總體方差是一樣的。那為什麼方差分析的前提是要組間的總體方差保持一致呢?先想想方差分析是做什麼呢?方差分析是用來比較多組之間均值是否存在顯著差異。那...
基於python的異方差檢驗 講講異方差的檢驗
我們前面講了異方差,也講了怎麼用圖示法來判斷是否有異方差,這一篇來講講怎麼用統計的方法來判斷有沒有異方差。關於檢驗異方差的統計方法有很多,我們這一節只講比較普遍且比較常用的white test 懷特檢驗 假設現在我們做了如下的回歸方程 如果要用懷特檢驗檢驗上述方程有沒有異方差,主要分以下幾個步驟 1...