scipy.stats.chi2

scipy.stats.chi2(* args,** kwds )= <scipy.stats._continuous_distns.chi2_gen object>源码
卡方分布连续随机变量。

作为rv_continuous类的实例,chi2继承了这个类的一切通用方法(请参见下面的完整列表),并使用此分布的公式来完善它们。

笔记

chi2的概率密度函数为:
f ( x , k ) = 1 2 k 2 Γ ( k 2 ) x k 2 − 1 e − x 2 f(x,k)=\frac{1}{2^{\frac{k}{2}}\Gamma(\frac{k}{2})}x^{\frac{k}{2}-1}e^{-\frac{x}{2}} f(x,k)=22kΓ(2k)1x2k1e2x

x>0,k>0。
chi2采取df作为形状参数。

以上的概率密度以“标准化”形式定义。要移动和/或缩放分布,请使用loc和scale参数。具体而言,chi2.pdf(x, c, loc, scale)相当于用chi2.pdf(y, c) / scale,其中y = (x - loc) / scale

例子

>>> from scipy.stats import chi2
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)

首先计算一下:

>>> df = 55
>>> mean, var, skew, kurt = chi2.stats(df, moments='mvsk')

绘制概率密度函数(pdf):

>>> x = np.linspace(chi2.ppf(0.01, df),
...                 chi2.ppf(0.99, df), 100)
>>> ax.plot(x, chi2.pdf(x, df),
...        'r-', lw=5, alpha=0.6, label='chi2 pdf')

或者,可以调用分布对象(作为函数)以固定形状、位置和比例参数。这将返回一个“冻结的” RV对象,该对象固定了给定的参数。

冻结分布并显示冻结的分布的pdf如下:

>>> rv = chi2(df)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')

检查cdf和的准确性ppf:

>>> vals = chi2.ppf([0.001, 0.5, 0.999], df)
>>> np.allclose([0.001, 0.5, 0.999], chi2.cdf(vals, df))
True

生成随机数:

>>> r = chi2.rvs(df, size=1000)

并比较直方图:

>>> ax.hist(r, density=True, histtype='stepfilled', alpha=0.2)
>>> ax.legend(loc='best', frameon=False)
>>> plt.show()

在这里插入图片描述

方法

方法 用途
rvs(df,loc = 0,scale = 1,size = 1,random_state = None) 随机变量生成。
pdf(x,df,loc = 0,scale = 1) 概率密度函数。
logpdf(x,df,loc = 0,scale = 1) 概率密度函数的对数。
cdf(x,df,loc = 0,scale = 1) 累积分布函数。
logcdf(x,df,loc = 0,scale = 1) 累积分布函数的日志。
sf(x,df,loc = 0,scale = 1) 生存函数(也定义为1-cdf,但sf有时更准确)
logsf(x,df,loc = 0,scale = 1) 生存函数的对数。
ppf(q,df,loc = 0,scale = 1) 百分比点函数(与cdf—百分位数相反)
isf(q,df,loc = 0,scale = 1) 逆生存函数(的逆sf)
moment(n,df,loc = 0,scale = 1) n阶非中心矩
stats(df,loc = 0,scale = 1,moments =‘mv’) 均值(‘m’),方差(‘v’),偏斜(‘s’)和/或峰度(‘k’)。
entropy(df,loc = 0,scale = 1) RV的(微分)熵。
fit(data,df,loc= 0,scale= 1) 通用数据的参数估计。
expect(func,args =(df,),loc = 0,scale = 1,lb = None,ub = None,conditional= False,** kwds) 函数(单参数)相对于分布的期望值。
median(df,loc = 0,scale = 1) 分布的中位数。
mean(df,loc = 0,scale = 1) 分布的平均值。
var(df,loc = 0,scale = 1) 分布的方差。
std(df,loc = 0,scale = 1) 分布的标准偏差。
interval(alpha,df,loc = 0,scale = 1) 包含分布的Alpha百分比的范围的端点
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐