用法:
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。