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.