📌 目录

  1. scipy.stats 模块简介
  2. 描述性统计量计算
  3. 常见概率分布及随机数生成
  4. 概率密度函数与累积分布函数
  5. 参数估计与分布拟合
  6. 假设检验:t检验、卡方检验等
  7. 相关性分析
  8. 示例:正态性检验与分布拟合
  9. 出站链接与参考资料

1. scipy.stats 模块简介

scipy.stats 提供数百种统计分布、检验函数、统计量计算方法,广泛应用于科学实验、社会科学、商业分析与机器学习数据预处理等领域。


2. 描述性统计量计算

import numpy as np
from scipy import stats

data = [2, 4, 4, 4, 5, 5, 7, 9]

print("均值:", np.mean(data))
print("中位数:", np.median(data))
print("众数:", stats.mode(data, keepdims=True).mode[0])
print("标准差:", np.std(data))
print("偏度(Skewness):", stats.skew(data))
print("峰度(Kurtosis):", stats.kurtosis(data))


3. 常见概率分布及随机数生成

正态分布

from scipy.stats import norm

# 生成随机样本
samples = norm.rvs(loc=0, scale=1, size=1000)

二项分布

from scipy.stats import binom

# 进行1000次试验,每次10次独立投掷,成功概率0.5
samples = binom.rvs(n=10, p=0.5, size=1000)


4. 概率密度函数与累积分布函数

正态分布的 PDF 与 CDF

x = np.linspace(-5, 5, 100)

pdf = norm.pdf(x, loc=0, scale=1)
cdf = norm.cdf(x, loc=0, scale=1)

import matplotlib.pyplot as plt

plt.plot(x, pdf, label='PDF')
plt.plot(x, cdf, label='CDF')
plt.legend()
plt.title("正态分布密度与分布函数")
plt.grid()
plt.show()


5. 参数估计与分布拟合

# 假设有一组数据
data = norm.rvs(loc=5, scale=2, size=1000)

# 拟合到正态分布
mu, std = norm.fit(data)
print("估计均值:", mu)
print("估计标准差:", std)


6. 假设检验:t检验、卡方检验等

单样本 t 检验

t_stat, p_val = stats.ttest_1samp(data, popmean=5)
print("T统计量:", t_stat)
print("P值:", p_val)

双样本独立 t 检验

group1 = norm.rvs(loc=5, scale=1, size=30)
group2 = norm.rvs(loc=6, scale=1, size=30)

t_stat, p_val = stats.ttest_ind(group1, group2)

卡方检验(列联表)

table = [[10, 20], [20, 40]]
chi2, p, dof, expected = stats.chi2_contingency(table)


7. 相关性分析

皮尔逊相关系数

x = np.random.normal(0, 1, 100)
y = x + np.random.normal(0, 0.5, 100)

r, p = stats.pearsonr(x, y)

斯皮尔曼等级相关

r, p = stats.spearmanr(x, y)


8. 示例:正态性检验与分布拟合可视化

import seaborn as sns

# 正态性检验
stat, p = stats.shapiro(data)
print("P值:", p)

# 拟合后绘图
sns.histplot(data, kde=True, stat="density")
xmin, xmax = plt.xlim()
x = np.linspace(xmin, xmax, 100)
pdf = norm.pdf(x, mu, std)
plt.plot(x, pdf, 'r-', label='拟合正态分布')
plt.legend()
plt.show()


🔗 出站链接与参考资料

📘 官方文档

🎓 推荐资源