Σ
SDCalc
高级高级·12 min

几何标准差完全指南

几何标准差完全指南,用于分析比率、增长率和对数正态分布数据。包含公式、计算步骤、Python 代码以及金融和科学领域的应用。

何时使用几何标准差

几何标准差 (GSD) 是处理乘法性而非加法性数据的适当离散度指标——如增长率、比率、浓度或任何服从对数正态分布的测量值。

以股票收益为例:上涨 10% 之后下跌 10% 并不会回到原点(你只剩下本金的 99%)。这种乘法关系需要使用几何统计量而非算术统计量。

核心要点

如果你的数据跨越数个数量级、始终为正值、在普通坐标下呈右偏但在对数坐标下呈对称——那就是对数正态数据,需要使用几何统计量。

理解对数正态数据

当数据的自然对数服从正态分布时,该数据为对数正态分布。常见的例子包括:

  • 股票价格和长期投资收益
  • 收入和财富分布
  • 气溶胶和药物中的颗粒大小
  • 细菌菌落数和病毒载量
  • 环境污染物浓度
  • 抗体滴度和药物浓度

关键特征是:涉及重复乘法的过程会产生对数正态分布,就像重复加法产生正态分布一样。

公式与计算

几何标准差

GSD = exp(√[Σ(ln xᵢ - ln x̄ₘ)² / (n-1)])

更简单地说:对所有值取自然对数,计算普通标准差,然后取指数。

1

数据变换

计算每个值的自然对数:yᵢ = ln(xᵢ)
2

计算均值

求对数值的算术均值:ȳ = Σyᵢ/n
3

计算标准差

求对数值的标准差:s = √[Σ(yᵢ-ȳ)²/(n-1)]
4

反变换

取指数得到 GSD:GSD = eˢ
Python
import numpy as np
from scipy import stats

def geometric_sd(data):
    """Calculate geometric standard deviation"""
    log_data = np.log(data)
    sd_log = np.std(log_data, ddof=1)
    return np.exp(sd_log)

def geometric_mean(data):
    """Calculate geometric mean"""
    return stats.gmean(data)

# Example: Antibody titers (highly variable, log-normal)
titers = [64, 128, 256, 128, 512, 64, 256]
gm = geometric_mean(titers)
gsd = geometric_sd(titers)
print(f"Geometric Mean: {gm:.1f}")
print(f"Geometric SD: {gsd:.2f}")

如何解读 GSD 值

与算术标准差使用原始数据单位不同,GSD 是一个乘法因子——一个比率。GSD 为 2.0 意味着数据通常变动一倍。

  • GSD = 1.0:无变异(实际中不可能)
  • GSD ≈ 1.2:变异性低(典型波动 ±20%)
  • GSD ≈ 2.0:中等变异性(数据翻倍或减半)
  • GSD ≈ 3.0:变异性高(跨越一个数量级)

置信区间

对于对数正态数据,95% 的数据大约分布在:几何均值 ÷ GSD² 到 几何均值 × GSD²。若 GM=100,GSD=2,则范围为 25 到 400。

实际应用

制药科学

粒径分布(D50,GSD)· 药物浓度变异 · 生物利用度研究 · 气溶胶表征

金融与经济

投资收益波动性 · 增长率分析 · 收入分布研究 · 资产价格建模

几何标准差与普通标准差对比

对对数正态数据使用算术标准差会产生误导性的结果:

示例:病毒载量数据

数据:1,000; 5,000; 10,000; 50,000; 100,000 copies/mL 算术均值 ± 标准差:33,200 ± 41,424 几何均值 × GSD:10,000 × 4.5 → 范围:2,222 到 45,000 算术标准差暗示数据可能出现负值——这对病毒载量来说是不可能的!

务必先检查分布

在计算任何离散度指标之前,先将数据可视化。如果数据呈右偏且有长尾,尝试对数变换。如果变换后变得对称,就应该使用几何统计量。