Python统计分析(4)——几种重要的概率分布(4):卡方分布

卡方分布

通俗地说就是通过小数量的样本容量去估计总体容量的分布情况。 卡方检验就是统计样本的实际观测值与理论推断值的偏离程度。 卡方检验的基本思想就是根据样本数据推断总体的频次与期望频次是否有显著性差异。

#卡方分布——画图
#导入需要的包
import numpy as np
import scipy.stats as stats
import matplotlib.pyplot as plt
import matplotlib.style as style
from IPython.core.display import HTML

#PLOTTING CONFIG 绘图配置
%matplotlib inline
style.use('fivethirtyeight')
plt.rcParams['figure.figsize']=(14,7)
plt.figure(dpi=100)

#PDF  概率密度函数
plt.plot(np.linspace(0,20,100),stats.chi2.pdf(np.linspace(0,20,100),df=4))#绘制0到20的卡方分布曲线,给定自由度为4
plt.fill_between(np.linspace(0,20,100),stats.chi2.pdf(np.linspace(0,20,100),df=4),alpha=0.15) #填充曲线

#CDF 累积概率密度函数
plt.plot(np.linspace(0,20,100),stats.chi2.cdf(np.linspace(0,20,100),df=4)) #绘制累积概率密度函数

#LEGEND 图例
plt.text(x=11,y=0.25,s="pdf(normed)",alpha=0.75,weight="bold",color="#008fd5")
plt.text(x=11,y=0.85,s="cdf",alpha=0.75,weight="bold",color="#fc4f30")

#Ticks 坐标轴
plt.xticks(np.arange(0,21,2))
plt.tick_params(axis="both",which="major",labelsize=18)
plt.axhline(y=0,color="black",linewidth=1.3,alpha=.7)

在这里插入图片描述

自由度

#探究自由度K大小对结果的影响:
plt.figure(dpi=100)

#PDF    K=1
plt.plot(np.linspace(0,15,100),stats.chi2.pdf(np.linspace(0,15,100),df=1))
plt.fill_between(np.linspace(0,15,100),stats.chi2.pdf(np.linspace(0,15,100),df=1),alpha=0.15)

#PDF    K=3
plt.plot(np.linspace(0,15,100),stats.chi2.pdf(np.linspace(0,15,100),df=3))
plt.fill_between(np.linspace(0,15,100),stats.chi2.pdf(np.linspace(0,15,100),df=3),alpha=0.15)

#PDF    K=6
plt.plot(np.linspace(0,15,100),stats.chi2.pdf(np.linspace(0,15,100),df=6))
plt.fill_between(np.linspace(0,15,100),stats.chi2.pdf(np.linspace(0,15,100),df=6),alpha=0.15)


#LEGEND 图例
plt.text(x=0.5,y=0.7,s="$ k=1$",rotation=-65,alpha=.75,weight="bold",color="#008fd5")
plt.text(x=1.5,y=.35,s="$ k=3$",alpha=.75,weight="bold",color="#fc4f30")
plt.text(x=5,y=.2,s="$ k=6$",alpha=.75,weight="bold",color="#e5ae38")

#Ticks 坐标轴
plt.tick_params(axis="both",which="major",labelsize=18)
plt.axhline(y=0,color="black",linewidth=1.3,alpha=.7)

在这里插入图片描述
可以看出K越大,图像越趋近于标准正态分布。

#绘制卡方分布曲线
x_s=np.linspace(0,20,100)
y_s=stats.chi2.pdf(x_s,df=8)
plt.scatter(x_s,y_s)

在这里插入图片描述

CDF 累积概率密度函数

(Cumnlative Probability Density Function) 可以指定一个范围求累积概率密度

from scipy.stats import chi2
#X<=3的概率密度之和
print("P(X<=3)={}".format(chi2.cdf(x=3,df=4)))
#2<X<=8的概率密度之和
print("P(2<X<=8)={}".format(chi2.cdf(x=3,df=4)))

P(X<=3)=0.4421745996289252
P(2<X<=8)=0.4421745996289252

猜你喜欢

转载自blog.csdn.net/weixin_42695959/article/details/84567071