跳到内容
🛠️ToolsShed

标准差计算器

计算均值、方差、标准差、中位数和众数。支持总体和样本公式。

关于此工具

标准差衡量你的数据与平均值相距多远,是统计学中最重要的概念之一。平均值告诉你中心趋势,而标准差则揭示变异性—单个值通常从中心偏离多少。这个指标对于理解数据一致性、识别金融投资组合的风险、评估质量控制中的测量精度以及评估科学研究中的性能变动至关重要。

要使用计算器,只需粘贴或输入你的数据值(用逗号或换行符分隔)。选择你是在分析完整的总体还是来自更大总体的样本—这改变了公式,因为样本往往显示的变化比完整总体少。该工具立即计算平均值、方差、标准差、中位数和众数,给你完整的统计快照。这对于验证实验结果的研究人员、监测一致性的企业、评分的教育工作者和解释真实数据集的分析师来说都是非常宝贵的。

理解总体标准差和样本标准差之间的区别是关键:总体SD除以N,而样本SD除以N-1(贝塞尔修正)以考虑抽样偏差。计算器还显示中位数和众数,它们与平均值一起为你的数据形状和中心位置提供了强有力的视图。无论你是在分析科学测量、比较不同批次的产品质量还是研究测试分数的变异,这个工具都能将原始数字转化为有意义的统计见解。

常见问题

代码实现

import statistics

def full_stats(data, population=True):
    """Calculate comprehensive statistics for a dataset."""
    n = len(data)
    total = sum(data)
    mean = total / n
    if population:
        variance = sum((x - mean) ** 2 for x in data) / n
    else:
        variance = sum((x - mean) ** 2 for x in data) / (n - 1)
    std_dev = variance ** 0.5
    sorted_data = sorted(data)
    mid = n // 2
    median = (sorted_data[mid - 1] + sorted_data[mid]) / 2 if n % 2 == 0 else sorted_data[mid]
    # Mode
    from collections import Counter
    freq = Counter(data)
    max_freq = max(freq.values())
    mode = [k for k, v in freq.items() if v == max_freq] if max_freq > 1 else []
    cv = (std_dev / abs(mean)) * 100 if mean != 0 else 0
    return {
        "count": n, "sum": total, "mean": mean,
        "variance": variance, "std_dev": std_dev,
        "min": sorted_data[0], "max": sorted_data[-1],
        "range": sorted_data[-1] - sorted_data[0],
        "median": median, "mode": mode,
        "cv_pct": cv,
    }

data = [4, 8, 15, 16, 23, 42]
result = full_stats(data, population=True)
for k, v in result.items():
    print(f"{k:12}: {v}")

Comments & Feedback

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