Σ
SDCalc
AdvancedAdvanced·12 min

Geometric Standard Deviation: Complete Guide

Complete guide to geometric standard deviation for analyzing ratios, growth rates, and log-normally distributed data. Includes formulas, calculation steps, Python code, and applications in finance and science.

When to Use Geometric Standard Deviation

Geometric standard deviation (GSD) is the appropriate measure of spread for data that is multiplicative rather than additive—like growth rates, ratios, concentrations, or any log-normally distributed measurements.

Consider stock returns: a gain of 10% followed by a loss of 10% doesn't return you to break-even (you'd have 99% of original). These multiplicative relationships require geometric statistics instead of arithmetic ones.

Key Insight

If your data spans several orders of magnitude, is always positive, and looks right-skewed when plotted normally but symmetric when plotted on a log scale—you're dealing with log-normal data that needs geometric statistics.

Understanding Log-Normal Data

Data is log-normally distributed when its natural logarithm follows a normal distribution. Common examples include:

  • Stock prices and investment returns over time
  • Income and wealth distributions
  • Particle sizes in aerosols and pharmaceuticals
  • Bacterial colony counts and viral loads
  • Environmental pollutant concentrations
  • Antibody titers and drug concentrations

The key characteristic: processes that involve repeated multiplication generate log-normal distributions, just as repeated addition generates normal distributions.

Formula and Calculation

Geometric Standard Deviation

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

Or more simply: take the natural log of all values, calculate the regular standard deviation, then exponentiate.

1

Transform Data

Calculate the natural log of each value: yᵢ = ln(xᵢ)
2

Calculate Mean

Find the arithmetic mean of the log values: ȳ = Σyᵢ/n
3

Calculate SD

Find the standard deviation of log values: s = √[Σ(yᵢ-ȳ)²/(n-1)]
4

Back-Transform

Exponentiate to get 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}")

Interpreting GSD Values

Unlike arithmetic SD which is in the same units as your data, GSD is a multiplicative factor—a ratio. A GSD of 2.0 means the data typically varies by a factor of 2.

  • GSD = 1.0:No variation (impossible in practice)
  • GSD ≈ 1.2:Low variability (±20% typical)
  • GSD ≈ 2.0:Moderate variability (data doubles/halves)
  • GSD ≈ 3.0:High variability (spans an order of magnitude)

Confidence Intervals

For log-normal data, the 95% range is approximately: Geometric Mean ÷ GSD² to Geometric Mean × GSD². For GM=100 and GSD=2, the range is 25 to 400.

Real-World Applications

Pharmaceutical Sciences

Particle size distribution (D50, GSD) · Drug concentration variability · Bioavailability studies · Aerosol characterization

Finance & Economics

Investment return volatility · Growth rate analysis · Income distribution studies · Asset price modeling

GSD vs Regular SD

Using arithmetic SD on log-normal data gives misleading results:

Example: Viral Load Data

Values: 1,000; 5,000; 10,000; 50,000; 100,000 copies/mL Arithmetic Mean ± SD: 33,200 ± 41,424 Geometric Mean × GSD: 10,000 × 4.5 → Range: 2,222 to 45,000 The arithmetic SD would suggest negative values are possible—impossible for viral loads!

Always Check Distribution

Before calculating any spread measure, visualize your data. If it's right-skewed with a long tail, try a log transformation. If that makes it symmetric, use geometric statistics.