用法:
dask.array.stats.chisquare(f_obs, f_exp=None, ddof=0, axis=0)
計算 one-way 卡方檢驗。
此文檔字符串是從 scipy.stats.chisquare 複製的
可能存在與 Dask 版本的一些不一致之處。
卡方檢驗檢驗分類數據具有給定頻率的零假設。
- f_obs:array_like
在每個類別中觀察到的頻率。
- f_exp:數組,可選
每個類別中的預期頻率。默認情況下,假定類別具有相同的可能性。
- ddof:int 可選
“Delta 自由度”:調整p-value 的自由度。 p-value 使用自由度為
k - 1 - ddof
的卡方分布計算,其中k
是觀察到的頻率數。ddof
的默認值為 0。- axis:int 或無,可選
f_obs
和f_exp
的廣播結果軸,沿該軸應用測試。如果軸為無,f_obs
中的所有值都被視為單個數據集。默認值為 0。
- chisq:浮點數或 ndarray
卡方檢驗統計量。如果
axis
為 None 或f_obs
和f_exp
為一維,則該值為浮點數。- p:浮點數或 ndarray
測試的p-value。如果
ddof
和返回值chisq
是標量,則該值是浮點數。
參數:
返回:
注意:
當每個類別中觀察到的或預期的頻率太小時,此測試無效。一個典型的規則是所有觀察到的和預期的頻率至少應為 5。根據 [3] ,建議樣本總數大於 13,否則應使用精確檢驗(如巴納德精確檢驗)因為他們不會過度拒絕。
此外,觀察到的頻率和預期頻率的總和必須相同才能使測試有效;如果總和在
1e-8
的相對容差範圍內不一致,則chisquare
會引發錯誤。默認自由度 k-1 適用於沒有估計分布參數的情況。如果通過有效最大似然估計 p 個參數,則正確的自由度為 k-1-p。如果以不同的方式估計參數,則自由度可以在 k-1-p 和 k-1 之間。但是,漸近分布也可能不是卡方,在這種情況下,此檢驗不合適。
參考:
- 1
洛瑞,理查德。 “推論統計的概念和應用”。第 8 章。https://web.archive.org/web/20171022032306/http://vassarstats.net:80/textbook/ch8pt1.html
- 2
- 3
皮爾遜,卡爾。 “在相關變量係統的情況下,給定係統與可能的偏差的標準是可以合理地假設它是從隨機抽樣中產生的”,哲學雜誌。係列 5. 50 (1900),第 157-175 頁。
例子:
當僅給出
f_obs
時,假設預期頻率是均勻的,並且由觀察到的頻率的平均值給出。>>> from scipy.stats import chisquare >>> chisquare([16, 18, 16, 14, 12, 12]) (2.0, 0.84914503608460956)
使用
f_exp
可以給出預期頻率。>>> chisquare([16, 18, 16, 14, 12, 12], f_exp=[16, 16, 16, 16, 16, 8]) (3.5, 0.62338762774958223)
當
f_obs
為二維時,默認情況下測試應用於每一列。>>> obs = np.array([[16, 18, 16, 14, 12, 12], [32, 24, 16, 28, 20, 24]]).T >>> obs.shape (6, 2) >>> chisquare(obs) (array([ 2. , 6.66666667]), array([ 0.84914504, 0.24663415]))
通過設置
axis=None
,將測試應用於數組中的所有數據,相當於將測試應用於展平數組。>>> chisquare(obs, axis=None) (23.31034482758621, 0.015975692534127565) >>> chisquare(obs.ravel()) (23.31034482758621, 0.015975692534127565)
ddof
是對默認自由度的更改。>>> chisquare([16, 18, 16, 14, 12, 12], ddof=1) (2.0, 0.73575888234288467)
p-values 的計算是通過使用
ddof
廣播卡方統計量來完成的。>>> chisquare([16, 18, 16, 14, 12, 12], ddof=[0,1,2]) (2.0, array([ 0.84914504, 0.73575888, 0.5724067 ]))
f_obs
和f_exp
也被廣播。下麵f_obs
的形狀為(6,),f_exp
的形狀為(2, 6),所以f_obs
和f_exp
的廣播結果的形狀為(2, 6)。為了計算所需的卡方統計量,我們使用axis=1
:>>> chisquare([16, 18, 16, 14, 12, 12], ... f_exp=[[16, 16, 16, 16, 16, 8], [8, 20, 20, 16, 12, 12]], ... axis=1) (array([ 3.5 , 9.25]), array([ 0.62338763, 0.09949846]))
相關用法
- Python dask.array.stats.ttest_ind用法及代碼示例
- Python dask.array.stats.ttest_rel用法及代碼示例
- Python dask.array.stats.kurtosistest用法及代碼示例
- Python dask.array.stats.moment用法及代碼示例
- Python dask.array.stats.power_divergence用法及代碼示例
- Python dask.array.stats.f_oneway用法及代碼示例
- Python dask.array.stats.kurtosis用法及代碼示例
- Python dask.array.stats.skew用法及代碼示例
- Python dask.array.stats.skewtest用法及代碼示例
- Python dask.array.stats.ttest_1samp用法及代碼示例
- Python dask.array.stats.normaltest用法及代碼示例
- Python dask.array.stack用法及代碼示例
- Python dask.array.store用法及代碼示例
- Python dask.array.std用法及代碼示例
- Python dask.array.square用法及代碼示例
- Python dask.array.sinc用法及代碼示例
- Python dask.array.searchsorted用法及代碼示例
- Python dask.array.sum用法及代碼示例
- Python dask.array.squeeze用法及代碼示例
- Python dask.array.signbit用法及代碼示例
注:本文由純淨天空篩選整理自dask.org大神的英文原創作品 dask.array.stats.chisquare。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。