跳到内容
🛠️ToolsShed

Z分数计算器

计算Z分数、百分位排名和正态分布概率。

关于此工具

Z分数衡量数据点在正态分布中距离平均值有多少个标准差。这是统计学中标准化不同尺度数值的基本指标,对于比较数据、识别异常值和理解概率分布至关重要。Z分数广泛应用于质量控制、学业评估、医学研究和金融分析等领域,在这些领域中需要判断某个值的异常程度或典型程度。

使用计算器时,输入你的数据点值以及数据集的平均值和标准差。工具立即计算Z分数并显示相应的百分位数排名——告诉你正态分布中有多大比例的数据落在你的值以下。你也可以直接输入Z分数来查找其百分位数,这在假设检验、置信区间和概率查询中特别有用。这对处理标准化考试成绩(如SAT或智商),跨不同指标比较性能或评估制造公差特别有帮助。

请注意,Z分数假设你的数据遵循正态(钟形曲线)分布,因此对于偏斜数据集的结果可能不准确。计算器还提供关于尾部概率的洞察,帮助你理解极值。无论你是学习统计学的学生、分析实验数据的研究人员还是评估质量指标的专业人士,这个工具都能将复杂的概率计算转化为即时的可操作的见解。

常见问题

代码实现

import math

def erf(x: float) -> float:
    """Abramowitz & Stegun approximation of the error function."""
    sign = 1 if x >= 0 else -1
    x = abs(x)
    a1, a2, a3, a4, a5 = 0.254829592, -0.284496736, 1.421413741, -1.453152027, 1.061405429
    p = 0.3275911
    t = 1.0 / (1.0 + p * x)
    y = 1.0 - (((((a5 * t + a4) * t) + a3) * t + a2) * t + a1) * t * math.exp(-x * x)
    return sign * y

def normal_cdf(z: float) -> float:
    """Cumulative distribution function of the standard normal."""
    return 0.5 * (1 + erf(z / math.sqrt(2)))

def z_score(value: float, mean: float, std_dev: float) -> float:
    """Calculate Z-score: how many SDs from the mean."""
    if std_dev <= 0:
        raise ValueError("Standard deviation must be positive")
    return (value - mean) / std_dev

# Example
x, mu, sigma = 75, 70, 5
z = z_score(x, mu, sigma)
prob = normal_cdf(z)
print(f"Z-score: {z:.4f}")          # 1.0000
print(f"Percentile: {prob*100:.2f}th")  # 84.13th
print(f"Probability: {prob:.6f}")    # 0.841345

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.