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)

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/skytering/article/details/109231494