Python统计学(一)
文章目录
1 基本配置
1.1 基本模块
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy import stats
import math
1.2 绘图设置
plt.rcParams[“font.sans-serif”]=‘SimHei’ #解决中文乱码问题
plt.rcParams[“axes.unicode_minus”]=False #解决符号无法正常显示的问题
2 基本统计量
备注:求方差时,默认使用n计算方差,为了得到样本方差,需要设置ddof=1
如:
np.mean([1,2,3]), np.std([1,2,3]),np.std([1,2,3],ddof=1)
3 基本分布
3.1 离散型分布
3.2 离散型分布示例
3.2.1 伯努利分布
ff=stats.bernoulli(0.5)
ff.rvs(10)
3.2.2 二项分布
num,p=(20,0.5)
ff=stats.binom(num,p)
ff.rvs(10)
3.2.3 泊松分布
lamda=2
ff=stats.poisson(lamda )
ff.pmf(0),ff.rvs(10)
3.3 连续型分布
3.4 连续型分布示例
3.4.1 正态分布
nv=stats.norm(3,2)
x=np.arange(-10,10,0.1)
y=nv.pdf(x)
y2=nv.cdf(x)
plt.plot(x,y,label=“pdf”)
plt.plot(x,y2,label=“cdf”)
plt.grid()
plt.legend()
nv.sf(0),nv.ppf(0.6),nv.isf(0.3),nv.rvs(10)
3.4.2 均匀分布
start,width=2,5
nv=stats.uniform(start,width)
x=np.arange(0,10,0.1)
y=nv.pdf(x)
y2=nv.cdf(x)
plt.plot(x,y,label=“pdf”)
plt.plot(x,y2,label=“cdf”)
plt.grid()
plt.legend()
nv.sf(0),nv.ppf(0.6),nv.isf(0.3),nv.rvs(10)
3.4.3 指数分布
u=0
sita=2
nv=stats.expon(u,sita)
x=np.arange(0,10,0.1)
y=nv.pdf(x)
y2=nv.cdf(x)
plt.plot(x,y,label=“pdf”)
plt.plot(x,y2,label=“cdf”)
plt.grid()
plt.legend()
x0=2
math.exp(-x0/sita)/sita,nv.pdf(x0),nv.ppf(0.6),nv.isf(0.3),nv.rvs(10)
3.4.4 t分布
n=10
fd=n-1
nv=stats.t(fd)
x=np.arange(-10,10,0.1)
y=nv.pdf(x)
y2=nv.cdf(x)
plt.plot(x,y,label=“pdf”)
plt.plot(x,y2,label=“cdf”)
plt.grid()
plt.legend()
nv.sf(0),nv.ppf(0.6),nv.isf(0.3),nv.rvs(10)
3.4.5 卡方分布
n=10
fd=n-1
nv=stats.chi2(fd)
x=np.arange(-10,50,0.1)
y=nv.pdf(x)
y2=nv.cdf(x)
plt.plot(x,y,label=“pdf”)
#plt.plot(x,y2,label=“cdf”)
plt.grid()
plt.legend()
nv.sf(0),nv.ppf(0.6),nv.isf(0.3),nv.rvs(10)
3.4.6 F分布
n1,n2=10,10
fd1,fd2=n1-1,n2-1
nv=stats.f(fd1,fd2)
x=np.arange(-2,10,0.1)
y=nv.pdf(x)
y2=nv.cdf(x)
plt.plot(x,y,label=“pdf”)
plt.plot(x,y2,label=“cdf”)
plt.grid()
plt.legend()
nv.sf(0),nv.ppf(0.6),nv.isf(0.3),nv.rvs(10)
3.4.7 对数正态分布
nv=stats.lognorm(scale=math.exp(1),s=0.3)
x=np.arange(-2,10,0.01)
y=nv.pdf(x)
y2=nv.cdf(x)
plt.plot(x,y,label=“pdf”)
plt.plot(x,y2,label=“cdf”)
plt.grid()
plt.legend()
nv.sf(0),nv.ppf(0.6),nv.isf(0.3),nv.rvs(10)
3.4.8 韦伯分布
nv=stats.exponweib(a=1,c=2)
x=np.arange(-2,10,0.1)
y=nv.pdf(x)
y2=nv.cdf(x)
plt.plot(x,y,label=“pdf”)
plt.plot(x,y2,label=“cdf”)
plt.grid()
plt.legend()
nv.sf(0),nv.ppf(0.6),nv.isf(0.3),nv.rvs(10)