如何在python中找到卡方分布的临界值?

问题描述

我想计算总体标准差的区间估计,为此我需要下限和上限的卡方临界值。计算公式是这样的-

formula

为了计算它,我这样做了 -

# variance
var = halloween['Dollars Spent'].var()
# (n-1) degrees of freedom
deg_fred = (halloween.shape[0] - 1)
lower_bound = np.sqrt((deg_fred*var)/ 27.488)
upper_bound = np.sqrt((deg_fred*var)/ 6.262)
(lower_bound,upper_bound)
(17.37,36.40)

下限和上限的卡方分布临界值为27.4886.262。我使用卡方分布表找到这些值。我如何在 python 中计算这些值,而不是从一个表中计算它,该表不会一直为我们提供确切的值,如果我想编写一个函数来计算它也无济于事。

解决方法

使用isf()方法

import scipy as sp
sp.stats.chi2.isf(0.1,20,loc=0,scale=1) # P=10%,df=20
# donne 28.412... as in books table