Σ
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 表示資料通常以 2 倍的因子變動。

  • GSD = 1.0:沒有變異(實務上不可能)
  • GSD ≈ 1.2:低變異性(典型 ±20%)
  • GSD ≈ 2.0:中等變異性(資料加倍/減半)
  • GSD ≈ 3.0:高變異性(跨越一個數量級)

信賴區間

對數常態資料的 95% 範圍大約是:幾何平均數 ÷ GSD² 到 幾何平均數 × GSD²。若 GM=100 且 GSD=2,範圍就是 25 到 400。

實際應用

藥學科學

粒徑分佈(D50、GSD) · 藥物濃度變異性 · 生體可用率研究 · 氣溶膠特性分析

金融與經濟

投資報酬波動性 · 成長率分析 · 所得分配研究 · 資產價格建模

GSD vs 一般標準差

對對數常態資料使用算術標準差會產生誤導性的結果:

範例:病毒量資料

數值: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 算術標準差的結果暗示可能出現負值——但病毒量不可能是負的!

務必檢查分配

計算任何離散程度量度之前,先將資料視覺化。如果呈右偏且有長尾,試試取對數轉換。如果轉換後變得對稱,就使用幾何統計量。