一、基础概念速览
- 概率:事件发生可能性 P∈0,1
- 期望 E (X):随机变量平均值 E(X)=∑xipi(离散)、∫xf(x)dx(连续)
- 方差 D (X)/Var (X):数据离散程度 Var(X)=E(X−E(X))2=E(X2)−E(X)2 标准差:σ=Var(X)
二、离散型随机变量(举例:掷骰子、二项分布)
1. 手动计算:已知取值 + 概率
骰子:X={1,2,3,4,5,6},每个p=61
import numpy as np
# 取值、对应概率
x = np.array([1,2,3,4,5,6])
p = np.array([1/6]*6)
# 1.期望 E(X)=Σx*p
E = np.sum(x * p)
# 2.E(X²)
E2 = np.sum(x**2 * p)
# 3.方差
Var = E2 - E**2
# 4.标准差
std = np.sqrt(Var)
print("期望E:",E)
print("方差Var:",Var)
print("标准差σ:",std)
2. 二项分布 B(n,p):n 次独立试验,单次成功率 p
X∼B(n,p),E=np, Var=np(1−p)
from scipy.stats import binom
n = 10; p = 0.3
# 理论期望、方差
E_bin = binom.mean(n,p)
Var_bin = binom.var(n,p)
print("二项期望",E_bin,"方差",Var_bin)
# 生成随机样本,用样本估算期望方差
sample = binom.rvs(n,p,size=10000)
print("样本均值",sample.mean(),"样本方差",sample.var(ddof=0))
三、连续型随机变量(正态分布最常用 N(μ,σ2))
正态:E=μ, Var=σ2
from scipy.stats import norm
mu = 5; sigma = 2
# 理论值
E_norm = norm.mean(loc=mu,scale=sigma)
Var_norm = norm.var(loc=mu,scale=sigma)
print("正态期望",E_norm,"方差",Var_norm)
# 概率计算:P(3<X<7)
P = norm.cdf(7,mu,sigma) - norm.cdf(3,mu,sigma)
print("P(3<X<7)=",P)
# 抽样验证
s = norm.rvs(mu,sigma,size=20000)
print("抽样均值",s.mean(),"抽样方差",s.var())
四、样本统计:用实测数据算均值 (样本期望)、样本方差
ddof=0:总体方差;ddof=1:无偏样本方差(统计学常用)
data = np.array([2,4,6,8,10])
mean_ = data.mean() # 样本均值≈期望
var_all = data.var(ddof=0) # 总体方差
var_sample = data.var(ddof=1)# 样本无偏方差
print(mean_,var_all,var_sample)
五、常用公式代码对照表
| 公式 | 代码 |
|---|---|
| 离散期望 E=∑xp | np.sum(x*p) |
| 方差 E(X2)−E2 | np.sum(x**2*p)-E**2 |
| 样本均值 | arr.mean() |
| 总体方差 | arr.var(ddof=0) |
| 无偏样本方差 | arr.var(ddof=1) |
| 标准差 | arr.std() |
六、拓展:均匀分布、泊松分布
from scipy.stats import uniform,poisson
# 均匀U(a,b)
uni=uniform(loc=2,scale=3) # [2,5]
print("均匀期望",uni.mean(),"方差",uni.var())
# 泊松P(λ),E=Var=λ
poi=poisson(mu=4)
print("泊松期望",poi.mean(),"方差",poi.var())