统计学数学概念整理
# 描述性统计
# 集中趋势度量
# 算术平均数 (Mean)
- 公式: $\bar{x} = \frac{1}{n}\sum_{i=1}^{n} x_i$
- 特点: 所有数据点的算术平均值
- Python:
np.mean(data)
# 中位数 (Median)
- 定义: 将数据排序后位于中间位置的值
- 特点: 不受极端值影响
- Python:
np.median(data)
# 众数 (Mode)
- 定义: 数据中出现频率最高的值
- 特点: 可能不唯一
- Python:
stats.mode(data)
# 离散程度度量
# 方差 (Variance)
- 公式: $s^2 = \frac{1}{n-1}\sum_{i=1}^{n} (x_i - \bar{x})^2$
- 特点: 衡量数据分散程度
- Python:
np.var(data, ddof=1)
# 标准差 (Standard Deviation)
- 公式: $s = \sqrt{s^2}$
- 特点: 与原始数据单位相同
- Python:
np.std(data, ddof=1)
# 变异系数 (Coefficient of Variation)
- 公式: $CV = \frac{s}{\bar{x}} \times 100%$
- 特点: 无量纲的相对离散程度
- Python:
np.std(data) / np.mean(data) * 100
# 分布形状
# 偏度 (Skewness)
- 公式: $Sk = \frac{n}{(n-1)(n-2)} \sum_{i=1}^{n} (\frac{x_i - \bar{x}}{s})^3$
- 特点:
- $Sk > 0$: 右偏(正偏)
- $Sk < 0$: 左偏(负偏)
- $Sk = 0$: 对称分布
- Python:
stats.skew(data)
# 峰度 (Kurtosis)
- 公式: $Ku = \frac{n(n+1)}{(n-1)(n-2)(n-3)} \sum_{i=1}^{n} (\frac{x_i - \bar{x}}{s})^4 - \frac{3(n-1)^2}{(n-2)(n-3)}$
- 特点:
- $Ku > 0$: 尖峰分布
- $Ku < 0$: 平峰分布
- $Ku = 0$: 正态分布
- Python:
stats.kurtosis(data)
# 概率分布
# 离散分布
# 二项分布 (Binomial Distribution)
- 概率质量函数: $P(X = k) = C_n^k p^k (1-p)^{n-k}$
- 期望: $E(X) = np$
- 方差: $Var(X) = np(1-p)$
- Python:
np.random.binomial(n, p, size)
# 泊松分布 (Poisson Distribution)
- 概率质量函数: $P(X = k) = \frac{\lambda^k e^{-\lambda}}{k!}$
- 期望: $E(X) = \lambda$
- 方差: $Var(X) = \lambda$
- Python:
np.random.poisson(lambda, size)
# 连续分布
# 正态分布 (Normal Distribution)
- 概率密度函数: $f(x) = \frac{1}{\sigma\sqrt{2\pi}} e^{-\frac{(x-\mu)^2}{2\sigma^2}}$
- 期望: $E(X) = \mu$
- 方差: $Var(X) = \sigma^2$
- Python:
np.random.normal(mu, sigma, size)
# 标准正态分布
- 概率密度函数: $f(x) = \frac{1}{\sqrt{2\pi}} e^{-\frac{x^2}{2}}$
- 期望: $E(X) = 0$
- 方差: $Var(X) = 1$
- Python:
np.random.standard_normal(size)
# t分布 (Student's t-distribution)
- 自由度: $df = n - 1$
- 特点: 用于小样本统计推断
- Python:
stats.t.rvs(df, size)
# 卡方分布 (Chi-square Distribution)
- 自由度: $df$
- 特点: 用于方差分析和独立性检验
- Python:
stats.chi2.rvs(df, size)
# F分布 (F-distribution)
- 自由度: $df_1, df_2$
- 特点: 用于方差分析
- Python:
stats.f.rvs(df1, df2, size)
# 假设检验
# 基本概念
# 原假设 (Null Hypothesis, H₀)
- 通常假设"无差异"或"无效应"
- 例如: $\mu = \mu_0$
# 备择假设 (Alternative Hypothesis, H₁)
- 与原假设对立的假设
- 例如: $\mu \neq \mu_0$, $\mu > \mu_0$, $\mu < \mu_0$
# 显著性水平 (α)
- 犯第一类错误的概率
- 常用值: 0.05, 0.01, 0.001
# p值 (p-value)
- 在原假设为真时,获得当前或更极端结果的概率
- 决策规则: $p < \alpha$ 则拒绝原假设
# 单样本检验
# 单样本t检验
- 检验统计量: $t = \frac{\bar{x} - \mu_0}{s/\sqrt{n}}$
- 自由度: $df = n - 1$
- Python:
stats.ttest_1samp(data, mu)
# 单样本比例检验
- 检验统计量: $z = \frac{\hat{p} - p_0}{\sqrt{\frac{p_0(1-p_0)}{n}}}$
- Python:
stats.proportions_ztest(count, nobs, value)
# 双样本检验
# 独立样本t检验
- 检验统计量: $t = \frac{\bar{x}_1 - \bar{x}_2}{\sqrt{\frac{s_1^2}{n_1} + \frac{s_2^2}{n_2}}}$
- Python:
stats.ttest_ind(group1, group2)
# 配对样本t检验
- 检验统计量: $t = \frac{\bar{d}}{s_d/\sqrt{n}}$
- Python:
stats.ttest_rel(before, after)
# 方差分析 (ANOVA)
# 单因素方差分析
- F统计量: $F = \frac{MSB}{MSW}$
- Python:
stats.f_oneway(*groups)
# 双因素方差分析
- Python:
stats.f_oneway(group1, group2, group3)
# 非参数检验
# 卡方检验 (Chi-square Test)
- 检验统计量: $\chi^2 = \sum \frac{(O - E)^2}{E}$
- 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)
- 公式: $\bar{x} \pm z_{\alpha/2} \frac{s}{\sqrt{n}}$
- Python:
stats.norm.interval(alpha, loc=mean, scale=std/np.sqrt(n))
# 小样本 (n < 30)
- 公式: $\bar{x} \pm t_{\alpha/2, n-1} \frac{s}{\sqrt{n}}$
- Python:
stats.t.interval(alpha, df=n-1, loc=mean, scale=std/np.sqrt(n))
# 总体比例置信区间
- 公式: $\hat{p} \pm z_{\alpha/2} \sqrt{\frac{\hat{p}(1-\hat{p})}{n}}$
- Python:
stats.proportion_confint(count, nobs, alpha)
# 相关分析
# 皮尔逊相关系数 (Pearson Correlation)
- 公式: $r = \frac{\sum_{i=1}^{n} (x_i - \bar{x})(y_i - \bar{y})}{\sqrt{\sum_{i=1}^{n} (x_i - \bar{x})^2 \sum_{i=1}^{n} (y_i - \bar{y})^2}}$
- 范围: [-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)
# 回归分析
# 简单线性回归
- 模型: $y = \beta_0 + \beta_1 x + \epsilon$
- 最小二乘估计:
- $\hat{\beta}1 = \frac{\sum{i=1}^{n} (x_i - \bar{x})(y_i - \bar{y})}{\sum_{i=1}^{n} (x_i - \bar{x})^2}$
- $\hat{\beta}_0 = \bar{y} - \hat{\beta}_1 \bar{x}$
- Python:
stats.linregress(x, y)
# 决定系数 (R²)
- 公式: $R^2 = \frac{SSR}{SST} = 1 - \frac{SSE}{SST}$
- 范围: [0, 1]
- 解释: 模型解释的方差比例
# 调整决定系数 (Adjusted R²)
- 公式: $R_{adj}^2 = 1 - (1-R^2)\frac{n-1}{n-p-1}$
- 特点: 考虑自变量数量的影响
# 时间序列分析
# 移动平均 (Moving Average)
- 简单移动平均: $MA_t = \frac{1}{k}\sum_{i=t-k+1}^{t} x_i$
- 加权移动平均: $WMA_t = \sum_{i=1}^{k} w_i x_{t-k+i}$
- Python:
pd.Series(data).rolling(window=k).mean()
# 指数平滑 (Exponential Smoothing)
# 基本概念
指数平滑是一种时间序列预测和平滑技术,它通过给不同时期的数据分配不同的权重来预测未来值。越近期的数据权重越大,越远期的数据权重越小,权重呈指数衰减。示例 (opens new window)
- 简单指数平滑: $S_t = \alpha x_t + (1-\alpha)S_{t-1}$
- 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
- 公式: $d = \frac{\bar{x}_1 - \bar{x}2}{s{pooled}}$
- 解释:
- $|d| < 0.2$: 小效应
- $0.2 \leq |d| < 0.5$: 中等效应
- $|d| \geq 0.5$: 大效应
# 相关系数r
- 解释:
- $|r| < 0.1$: 小效应
- $0.1 \leq |r| < 0.3$: 中等效应
- $|r| \geq 0.3$: 大效应
# 偏η² (Partial Eta-squared)
- 公式: $\eta_p^2 = \frac{SS_{effect}}{SS_{effect} + SS_{error}}$
- 解释:
- $\eta_p^2 < 0.01$: 小效应
- $0.01 \leq \eta_p^2 < 0.06$: 中等效应
- $\eta_p^2 \geq 0.06$: 大效应
# 多重比较校正
# Bonferroni校正
- 调整后的α: $\alpha_{adj} = \frac{\alpha}{k}$
- 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/10/09, 23:53:03