📜  scipy.stats.chi2() | Python(1)

📅  最后修改于: 2023-12-03 14:47:18.675000             🧑  作者: Mango

scipy.stats.chi2() | Python

scipy.stats.chi2()是一个Python函数,可以帮助在Chi-square分布下计算概率密度函数(PDF)、累积分布函数(CDF)、逆累积分布函数(PPF)和生成随机变量。

Chi-square分布通常在统计学和假设检验中使用,用于比较观察值与期望频率之间的差异。

语法
scipy.stats.chi2(df, loc=0, scale=1)

参数:

  • df:自由度(度数)。必需。
  • loc:分布的位置参数。默认值为0。
  • scale:分布的尺度参数。默认值为1。
返回值

scipy.stats.chi2()返回一个支持各种统计计算的对象。有关详细信息,请参阅官方文档

下面是一些常用的函数:

  • pdf(x, df, loc=0, scale=1):计算概率密度函数(PDF)。
  • cdf(x, df, loc=0, scale=1):计算累积分布函数(CDF)
  • ppf(q, df, loc=0, scale=1):计算逆累积分布函数(PPF)
  • rvs(df, loc=0, scale=1, size=1, random_state=None):生成随机变量。
示例
计算PDF
from scipy.stats import chi2
import matplotlib.pyplot as plt
import numpy as np

df = 5
x = np.linspace(0, 20, 1000)
y = chi2.pdf(x, df)
plt.plot(x, y)
plt.title('PDF of Chi-square distribution with df=5')
plt.xlabel('x')
plt.ylabel('pdf(x)')
plt.show()

输出结果:

PDF of Chi-square with df=5

计算CDF
from scipy.stats import chi2

df = 5
x = 8
p = chi2.cdf(x, df)
print(f'The probability of x<=8 for chi2 distribution with df=5 is {p:.4f}')

输出结果:

The probability of x<=8 for chi2 distribution with df=5 is 0.7349
计算逆累积分布函数(PPF)
from scipy.stats import chi2

df = 3
q = 0.95
x = chi2.ppf(q, df)
print(f'The x value for which P(X<=x)=0.95 for chi2 with df=3 is {x:.4f}')

输出结果:

The x value for which P(X<=x)=0.95 for chi2 with df=3 is 7.8147
生成随机变量
from scipy.stats import chi2
import matplotlib.pyplot as plt

df = 10
size = 10000
sample = chi2.rvs(df, size=size)
plt.hist(sample, bins=30)
plt.title(f'Chi-square distribution with df={df}')
plt.xlabel('x')
plt.ylabel('Frequency')
plt.show()

输出结果:

Chi-square distribution with df=10

结论

scipy.stats.chi2()是一个非常有用的Python函数,可以帮助计算Chi-square分布的各种统计计算,从而在统计学和假设检验中提供帮助。