这不是一个理论问题,只是一个效率问题.假设我有一个卡方随机变量列表(长列表),我想 for each 变量计算一个p值.为了方便起见,让我们假设它们都有相同的自由度.类似于:
Chi Square [44,2.3, 33.4,........] -> p_value [.11,.95,.65,..........]
有没有NumPy功能或在线计算器可以做到这一点?在自动取款机上做单项取款机让我失go 了理智.
干杯
这不是一个理论问题,只是一个效率问题.假设我有一个卡方随机变量列表(长列表),我想 for each 变量计算一个p值.为了方便起见,让我们假设它们都有相同的自由度.类似于:
Chi Square [44,2.3, 33.4,........] -> p_value [.11,.95,.65,..........]
有没有NumPy功能或在线计算器可以做到这一点?在自动取款机上做单项取款机让我失go 了理智.
干杯
您可以使用函数scipy.special.chdtrc
(卡方累积分布函数的补码)或scipy.stats.chi2
的sf
(生存函数)方法(最终调用scipy.special.chdtrc
).
例如,
In [63]: import numpy as np
In [64]: from scipy.special import chdtrc
In [65]: chi2vals = np.array([12, 5, 1.95, 4.2, 21.0])
In [66]: df = 9 # degrees of freedom
In [67]: chdtrc(df, chi2vals) # p values
Out[67]: array([0.21330931, 0.83430826, 0.99223381, 0.8977626 , 0.01265042])
In [68]: from scipy.stats import chi2
In [69]: chi2.sf(chi2vals, df) # p values
Out[69]: array([0.21330931, 0.83430826, 0.99223381, 0.8977626 , 0.01265042])