统计学数学概念整理
# 描述性统计
# 集中趋势度量
# 算术平均数 (Mean)
- 公式:
- 特点: 所有数据点的算术平均值
- Python:
np.mean(data)
# 中位数 (Median)
- 定义: 将数据排序后位于中间位置的值
- 特点: 不受极端值影响
- Python:
np.median(data)
# 众数 (Mode)
- 定义: 数据中出现频率最高的值
- 特点: 可能不唯一
- Python:
stats.mode(data)
# 离散程度度量
# 方差 (Variance)
- 公式:
- 特点: 衡量数据分散程度
- Python:
np.var(data, ddof=1)
# 标准差 (Standard Deviation)
- 公式
- 样本标准差(Sample Standard Deviation):
- 总体标准差(Population Standard Deviation):
- 样本标准差(Sample Standard Deviation):
- 特点: 与原始数据单位相同
- Python:
np.std(data, ddof=1)
用途
- 度量离散程度:标准差越大,数据越分散,越小则越集中。
- 正态分布判断:在正态假设下,约 68%/95%/99.7% 的数据分别落在 1σ/2σ/3σ 区间内,用于质量控制或异常检测。
- 风险评估:金融、制造等领域用标准差衡量收益或指标的波动性。
- 统计推断:t 检验、置信区间等推断方法需要标准差作为波动量估计。
为何引入标准差
- 方差单位为平方,不直观,标准差开平方后与原始数据单位一致。
- 作为“平均偏离程度”的度量,更易理解与比较。
- 相比平均绝对偏差,平方后再开根对大偏差更敏感,且具备更好的数学性质,便于推导和求导。
# 变异系数 (Coefficient of Variation)
- 公式:
- 特点: 无量纲的相对离散程度
- Python:
np.std(data) / np.mean(data) * 100
# 协方差(covariance matrix)
- 公式:
示例
- 设
、 ,均值分别为 、 。 - 中心化后得到
, 。 - 对应项乘积求和得
,再除以 ,样本协方差 。 np.cov(x, y)输出[[2.5, 1.5], [1.5, 1.5]]:对角元素是各自的方差,非对角的 1.5 表示两变量偏离均值时存在正向联动。- 几何意义:散点整体向右上倾斜,协方差为正说明
增大时 也倾向增大,数值越大联动越强。
# 分布形状
# 偏度 (Skewness)
- 公式:
- 特点:
: 右偏(正偏) : 左偏(负偏) : 对称分布
- Python:
stats.skew(data)
# 峰度 (Kurtosis)
- 公式:
- 特点:
: 尖峰分布 : 平峰分布 : 正态分布
- Python:
stats.kurtosis(data)
# 概率分布
# 离散分布
# 二项分布 (Binomial Distribution)
- 概率质量函数:
- 期望:
- 方差:
- Python:
np.random.binomial(n, p, size)
# 泊松分布 (Poisson Distribution)
- 概率质量函数:
- 期望:
- 方差:
- Python:
np.random.poisson(lambda, size)
# 连续分布
# 正态分布 (Normal Distribution)
- 概率密度函数:
- 期望:
- 方差:
- Python:
np.random.normal(mu, sigma, size)
# 标准正态分布
- 概率密度函数:
- 期望:
- 方差:
- Python:
np.random.standard_normal(size)
# t分布 (Student's t-distribution)
- 自由度:
- 特点: 用于小样本统计推断
- Python:
stats.t.rvs(df, size)
# 卡方分布 (Chi-square Distribution)
- 自由度:
- 特点: 用于方差分析和独立性检验
- Python:
stats.chi2.rvs(df, size)
# F分布 (F-distribution)
- 自由度:
- 特点: 用于方差分析
- Python:
stats.f.rvs(df1, df2, size)
# 假设检验
# 基本概念
# 原假设 (Null Hypothesis, H₀)
- 通常假设"无差异"或"无效应"
- 例如:
# 备择假设 (Alternative Hypothesis, H₁)
- 与原假设对立的假设
- 例如:
, ,
# 显著性水平 (α)
- 犯第一类错误的概率
- 常用值: 0.05, 0.01, 0.001
# p值 (p-value)
- 在原假设为真时,获得当前或更极端结果的概率
- 决策规则:
则拒绝原假设
# 单样本检验
# 单样本t检验
- 检验统计量:
- 自由度:
- Python:
stats.ttest_1samp(data, mu)
# 单样本比例检验
- 检验统计量:
- Python:
stats.proportions_ztest(count, nobs, value)
# 双样本检验
# 独立样本t检验
- 检验统计量:
- Python:
stats.ttest_ind(group1, group2)
# 配对样本t检验
- 检验统计量:
- Python:
stats.ttest_rel(before, after)
# 方差分析 (ANOVA)
# 单因素方差分析
- F统计量:
- Python:
stats.f_oneway(*groups)
# 双因素方差分析
- Python:
stats.f_oneway(group1, group2, group3)
# 非参数检验
# 卡方检验 (Chi-square Test)
- 检验统计量:
- Python:
stats.chi2_contingency(contingency_table)
# 曼-惠特尼U检验 (Mann-Whitney U Test)
- Python:
stats.mannwhitneyu(group1, group2)
# 威尔科克森符号秩检验 (Wilcoxon Signed-Rank Test)
- Python:
stats.wilcoxon(before, after)
# 置信区间
# 总体均值置信区间
# 大样本 (n ≥ 30)
- 公式:
- Python:
stats.norm.interval(alpha, loc=mean, scale=std/np.sqrt(n))
# 小样本 (n < 30)
- 公式:
- Python:
stats.t.interval(alpha, df=n-1, loc=mean, scale=std/np.sqrt(n))
# 总体比例置信区间
- 公式:
- Python:
stats.proportion_confint(count, nobs, alpha)
# 相关分析
# 皮尔逊相关系数 (Pearson Correlation)
- 公式:
- 范围: [-1, 1]
- Python:
np.corrcoef(x, y)[0,1]或stats.pearsonr(x, y)
# 斯皮尔曼等级相关系数 (Spearman Rank Correlation)
- 特点: 基于秩次的相关性
- Python:
stats.spearmanr(x, y)
# 肯德尔等级相关系数 (Kendall's Tau)
- 特点: 基于一致性的相关性
- Python:
stats.kendalltau(x, y)
# 回归分析
# 简单线性回归
- 模型:
- 最小二乘估计:
- Python:
stats.linregress(x, y)
# 决定系数 (R²)
- 公式:
- 范围: [0, 1]
- 解释: 模型解释的方差比例
# 调整决定系数 (Adjusted R²)
- 公式:
- 特点: 考虑自变量数量的影响
# 时间序列分析
# 移动平均 (Moving Average)
- 简单移动平均:
- 加权移动平均:
- Python:
pd.Series(data).rolling(window=k).mean()
# 指数平滑 (Exponential Smoothing)
# 基本概念
指数平滑是一种时间序列预测和平滑技术,它通过给不同时期的数据分配不同的权重来预测未来值。越近期的数据权重越大,越远期的数据权重越小,权重呈指数衰减。示例 (opens new window)
- 简单指数平滑:
- Python:
pd.Series(data).ewm(alpha=alpha, adjust=False).mean() - 注意: 默认情况下pandas的
ewm()使用adjust=True,这会调整权重。使用adjust=False才能得到标准的指数平滑公式。
# ewm
ewm是pandas中的一个方法,全称是Exponentially Weighted Moving(指数加权移动)。它用于计算时间序列数据的指数加权统计量,包括均值、方差、标准差等。
# 统计检验的假设条件
# 参数检验假设
- 正态性: 数据来自正态分布
- 独立性: 观测值相互独立
- 同方差性: 各组方差相等(ANOVA)
# 检验方法
- 正态性检验: Shapiro-Wilk检验 (
stats.shapiro) - 方差齐性检验: Levene检验 (
stats.levene) - 独立性: 通过实验设计保证
# 效应量 (Effect Size)
# Cohen's d
- 公式:
- 解释:
: 小效应 : 中等效应 : 大效应
# 相关系数r
- 解释:
: 小效应 : 中等效应 : 大效应
# 偏η² (Partial Eta-squared)
- 公式:
- 解释:
: 小效应 : 中等效应 : 大效应
# 多重比较校正
# Bonferroni校正
- 调整后的α:
- Python:
stats.multipletests(pvalues, method='bonferroni')
# Benjamini-Hochberg校正 (FDR)
- Python:
stats.multipletests(pvalues, method='fdr_bh')
# 统计功效 (Statistical Power)
# 功效计算
- 公式: Power = 1 - β (β为第二类错误概率)
- 影响因素:
- 样本量
- 效应量
- 显著性水平
- 检验类型
# 样本量计算
- Python:
stats.power.tt_ind_solve_power(effect_size, alpha, power, ratio)
# 常用统计图表
# 描述性图表
- 直方图: 显示数据分布
- 箱线图: 显示五数摘要和异常值
- 散点图: 显示两个变量关系
- Q-Q图: 检验正态性
# 推断性图表
- 置信区间图: 显示参数估计的不确定性
- p值森林图: 显示多个研究结果
- ROC曲线: 评估分类模型性能
# Python实现示例
import numpy as np
import pandas as pd
from scipy import stats
import matplotlib.pyplot as plt
import seaborn as sns
# 生成示例数据
np.random.seed(42)
data = np.random.normal(100, 15, 100)
# 描述性统计
print(f"均值: {np.mean(data):.2f}")
print(f"中位数: {np.median(data):.2f}")
print(f"标准差: {np.std(data, ddof=1):.2f}")
print(f"偏度: {stats.skew(data):.2f}")
print(f"峰度: {stats.kurtosis(data):.2f}")
# 正态性检验
stat, p_value = stats.shapiro(data)
print(f"Shapiro-Wilk检验 p值: {p_value:.4f}")
# 置信区间
ci = stats.t.interval(0.95, df=len(data)-1,
loc=np.mean(data),
scale=stats.sem(data))
print(f"95%置信区间: [{ci[0]:.2f}, {ci[1]:.2f}]")
# 单样本t检验
t_stat, p_val = stats.ttest_1samp(data, 95)
print(f"t检验 p值: {p_val:.4f}")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
这个统计数学概念整理涵盖了从基础描述性统计到高级推断统计的主要内容,包括公式、Python实现方法和实际应用指导。
上次更新: 2025/11/21, 16:44:13