计算工具 · 数学计算

标准差方差

均值/中位数/方差/标准差

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 58 次使用
方差与标准差 sample (n−1) vs population (n)
描述统计 descriptive statistics
分布可视化 histogram & box plot
就绪 · 输入数据后实时计算全量描述统计
第一节

关于本工具

About

一份数据集里,均值可能被极端值带偏,中位数却稳得住——但只看位置又丢掉了波动信息。输入一组数值,工具同时输出均值、中位数、方差和标准差:前两个告诉你中心在哪,后两个量化数据有多散。所有计算都在浏览器内完成,数据不上传服务器,适合课堂验证统计作业、实验数据快速摸底。

使用场景

车间质检批次判定

五金厂质检员老张,每天要抽检 30 个螺丝的直径。以往靠看平均值是否在公差内来判批次合格,但上周一批螺丝均值合格,却因个别尺寸严重超差导致装配卡死。现在老张用本工具算方差和标准差:如果标准差超过 0.02mm,即使均值合格也直接判退,让批次判定从「看平均数」变成「看离散度」,避免混入异常件。

高三模拟考成绩分析

班主任李老师拿到 45 人的数学月考成绩,想快速知道这次考试是「大家都差不多」还是「两极分化」。他算均值是 78 分,但更关心标准差:如果标准差大于 15,说明高分和低分差距大,需要分层补课;如果小于 8,说明成绩集中,可以统一讲压轴题。李老师用本工具 3 秒出结果,不用再手动敲 Excel 公式。

外卖商家出餐时间监控

店长小王发现平台评分掉了 0.2,差评集中在「出餐慢」。他统计了上周 50 单的出餐时间:均值 12 分钟,看起来正常。但用本工具算方差后发现,部分订单在 6 分钟出餐,部分却拖到 25 分钟。标准差揭示出「出餐时间不稳定」才是核心问题,小王据此调整了高峰期的备菜流程,将标准差从 5.1 压到 2.3。

基金定投波动评估

投资者小陈在两只指数基金之间犹豫:A 基金近一年日收益率均值 0.08%,B 基金均值 0.07%,差距很小。他用本工具算出 A 的标准差是 1.2%,B 是 0.6%,说明 A 的每日涨跌幅度是 B 的两倍。小陈据此判断自己能否承受 A 的波动,而不是只看收益率,最终选了波动更小的 B 做定投底仓。

电商仓库拣货效率排名

仓库主管老赵想评出月度最佳拣货员,但每人每天拣货单量不同。他收集了 5 名员工各 20 天的拣货时长数据,用本工具算每个人的中位数和标准差:中位数反映典型效率,标准差反映稳定性。结果发现小刘中位数排第二但标准差最小,说明他每天稳定发挥;小张中位数第一但标准差很大,说明时快时慢。老赵最终用中位数+标准差双指标做绩效排名。

对比矩阵

维度本工具Excel / WPS 表格手工计算
速度输入即算,毫秒级响应需输入公式或加载分析工具包,大数据量时卡顿手动列式运算,耗时长且易出错
隐私纯浏览器计算,数据不出设备数据存在本地文件,但需注意文件分享风险完全离线,无电子记录
离线可用浏览器打开即用,需网络加载页面需安装 Office 软件,离线可用纸笔即可,完全离线
大小限制无明确上限,受浏览器内存影响受 Excel 行数限制(约 104 万行)受人力耐心限制
收费免费WPS 基础免费,高级功能需会员;Excel 需购买 Office 授权仅需纸笔,零成本
注册无需注册无需注册无需注册
输出格式直接显示均值、中位数、方差、标准差数值需手动选择函数或生成图表需自行整理计算结果
第二节

使用指南

Getting Started

使用步骤

  1. 1在「数据输入」框内粘贴或键入一组数值,用逗号、空格或换行分隔,输入框下方实时显示当前有效数值个数
  2. 2点击「计算」按钮,结果区立即输出均值、中位数、方差与标准差四项统计量,每项数值保留四位小数
  3. 3若需剔除异常值,勾选「忽略空值」开关,工具自动跳过空白或非数字条目并更新结果
  4. 4点击结果区任意统计量右侧的「复制」图标,该数值即写入剪贴板,无需手动选中

输入输出示例

输入输出说明
2, 4, 6, 8, 10均值: 6.00, 中位数: 6.00, 方差: 8.00, 标准差: 2.83常规:等差数列,均值=中位数,验证基本计算正确性
1, 2, 3, 4, 5, 6, 7, 8, 9, 10均值: 5.50, 中位数: 5.50, 方差: 8.25, 标准差: 2.87常规:偶数个数据,中位数取中间两数均值,验证中位数逻辑
5均值: 5.00, 中位数: 5.00, 方差: 0.00, 标准差: 0.00边界:单个数据,方差为0,验证工具对最小样本的处理
100, 100, 100, 100均值: 100.00, 中位数: 100.00, 方差: 0.00, 标准差: 0.00边界:所有值相同,方差为0,验证无波动场景
0, 0, 0, 0均值: 0.00, 中位数: 0.00, 方差: 0.00, 标准差: 0.00边界:全零输入,验证零值不影响计算
1, 2, 3, 4, 100均值: 22.00, 中位数: 3.00, 方差: 1520.00, 标准差: 38.99易错:存在离群值(100),均值被拉高,中位数仍为3,暴露均值对异常值的敏感性
1.5, 2.3, 3.7, 4.1均值: 2.90, 中位数: 3.00, 方差: 1.13, 标准差: 1.06易错:小数输入,验证浮点数精度处理(输出保留两位小数)

常见错误对照

1.混淆总体方差与样本方差公式

✗ 错误输入全班 30 人成绩,直接用 Excel 的 VAR.P 结果与工具对比发现不一致
✓ 修复先确认数据是总体(全班)还是样本(抽测 5 人),工具默认用样本方差(n-1 分母),总体方差选对应模式

总体方差分母为 N,样本方差分母为 n-1(贝塞尔校正),两种公式结果不同,混用会导致统计推断偏差。

2.把中位数当平均数用,忽略异常值影响

✗ 错误数据集 [1,2,3,4,100] 中位数=3,直接说“平均水平是3”
✓ 修复中位数=3,均值=22,应结合标准差(≈42.7)判断数据离散程度,再决定用哪个代表中心趋势

中位数对极端值不敏感,均值受极端值影响大。报告时应同时给出均值、中位数和标准差,避免误导。

3.标准差单位误解,把平方根结果当原始单位

✗ 错误身高数据单位 cm,标准差结果写成 5.2 cm²
✓ 修复标准差单位与原始数据一致,即 cm;方差单位才是 cm²

标准差是方差的正平方根,恢复原始量纲。若误将方差单位赋给标准差,会导致物理意义混乱。

4.输入包含非数值字符,导致计算中断或错误

✗ 错误数据列:12, 15, 20, N/A, 18
✓ 修复清理后:12, 15, 20, 18(删除或替换 N/A)

统计函数只接受数值,文本或空值会触发类型错误或静默忽略,导致样本量不准确、结果偏差。

5.用逗号分隔时混入中文全角逗号

✗ 错误12,15,20(全角逗号)
✓ 修复12,15,20(半角逗号)

多数工具只识别半角分隔符,全角逗号会被当作非法字符,导致解析失败或只识别第一个数。

6.把方差和标准差的结果直接比较,忽略量纲差异

✗ 错误A组方差=4,B组标准差=2,认为两组离散程度相同
✓ 修复统一量纲:A组标准差=√4=2,B组标准差=2,两者离散程度相同

方差是标准差的平方,数值上通常更大。直接比较不同量纲的统计量会得出错误结论。

7.样本量过小(n<3)仍计算标准差

✗ 错误输入两个数:5, 10,工具返回标准差=3.5355
✓ 修复样本量至少 3 个以上再计算标准差,否则结果无统计意义

n=2 时样本标准差公式分母为 1,结果仅反映两个点的差异,不能代表总体离散程度,易误导。

第三节

工作原理

How It Works

核心公式

σ² = Σ(xᵢ - μ)² / N

变量说明

  • σ²总体方差,单位与数据平方一致
  • xᵢ第 i 个数据点
  • μ总体均值,即所有 xᵢ 的算术平均
  • N数据总个数

示例

数据集 [2, 4, 6, 8]:均值 μ = (2+4+6+8)/4 = 5;各偏差平方:(2-5)²=9, (4-5)²=1, (6-5)²=1, (8-5)²=9;方差 σ² = (9+1+1+9)/4 = 20/4 = 5;标准差 σ = √5 ≈ 2.236。

输入数据集数值列表浏览器内计算① 计算均值② 计算离差平方和③ 除以 n 或 n-1④ 开平方得标准差输出统计量均值/中位数/方差/标准差FE纯浏览器无上传
用户输入 本地处理 输出结果 实现方式
第四节

开发者集成

For Developers

6 种主流语言实现,复制即用:

import statistics data = [2, 4, 4, 4, 5, 5, 7, 9] mean = statistics.mean(data) median = statistics.median(data) variance = statistics.variance(data) # 样本方差(分母 n-1) stdev = statistics.stdev(data) # 样本标准差 print(f"均值: {mean}") print(f"中位数: {median}") print(f"方差: {variance}") print(f"标准差: {stdev}")
const data = [2, 4, 4, 4, 5, 5, 7, 9]; const mean = data.reduce((a, b) => a + b, 0) / data.length; const sorted = [...data].sort((a, b) => a - b); const mid = Math.floor(sorted.length / 2); const median = sorted.length % 2 !== 0 ? sorted[mid] : (sorted[mid - 1] + sorted[mid]) / 2; const squaredDiffs = data.map(v => (v - mean) ** 2); const variance = squaredDiffs.reduce((a, b) => a + b, 0) / (data.length - 1); // 样本方差 const stdev = Math.sqrt(variance); console.log(`均值: ${mean}`); console.log(`中位数: ${median}`); console.log(`方差: ${variance}`); console.log(`标准差: ${stdev}`);
package main import ( "fmt" "math" "sort" ) func main() { data := []float64{2, 4, 4, 4, 5, 5, 7, 9} // 均值 sum := 0.0 for _, v := range data { sum += v } mean := sum / float64(len(data)) // 中位数 sort.Float64s(data) var median float64 if len(data)%2 == 0 { median = (data[len(data)/2-1] + data[len(data)/2]) / 2 } else { median = data[len(data)/2] } // 样本方差 var sqSum float64 for _, v := range data { sqSum += (v - mean) * (v - mean) } variance := sqSum / float64(len(data)-1) stdev := math.Sqrt(variance) fmt.Printf("均值: %.2f\n", mean) fmt.Printf("中位数: %.2f\n", median) fmt.Printf("方差: %.2f\n", variance) fmt.Printf("标准差: %.2f\n", stdev) }
fn main() { let data = vec![2.0, 4.0, 4.0, 4.0, 5.0, 5.0, 7.0, 9.0]; let mean = data.iter().sum::<f64>() / data.len() as f64; let mut sorted = data.clone(); sorted.sort_by(|a, b| a.partial_cmp(b).unwrap()); let mid = sorted.len() / 2; let median = if sorted.len() % 2 == 0 { (sorted[mid - 1] + sorted[mid]) / 2.0 } else { sorted[mid] }; let variance = data.iter() .map(|v| (v - mean).powi(2)) .sum::<f64>() / (data.len() - 1) as f64; // 样本方差 let stdev = variance.sqrt(); println!("均值: {}", mean); println!("中位数: {}", median); println!("方差: {}", variance); println!("标准差: {}", stdev); }
import java.util.Arrays; public class Stats { public static void main(String[] args) { double[] data = {2, 4, 4, 4, 5, 5, 7, 9}; double mean = Arrays.stream(data).average().orElse(0); Arrays.sort(data); double median; if (data.length % 2 == 0) { median = (data[data.length/2 - 1] + data[data.length/2]) / 2; } else { median = data[data.length/2]; } double sqSum = 0; for (double v : data) { sqSum += Math.pow(v - mean, 2); } double variance = sqSum / (data.length - 1); // 样本方差 double stdev = Math.sqrt(variance); System.out.println("均值: " + mean); System.out.println("中位数: " + median); System.out.println("方差: " + variance); System.out.println("标准差: " + stdev); } }
<?php $data = [2, 4, 4, 4, 5, 5, 7, 9]; $mean = array_sum($data) / count($data); sort($data); $count = count($data); $mid = floor($count / 2); $median = ($count % 2 == 0) ? ($data[$mid - 1] + $data[$mid]) / 2 : $data[$mid]; $squaredDiffs = array_map(fn($v) => ($v - $mean) ** 2, $data); $variance = array_sum($squaredDiffs) / (count($data) - 1); // 样本方差 $stdev = sqrt($variance); echo "均值: $mean\n"; echo "中位数: $median\n"; echo "方差: $variance\n"; echo "标准差: $stdev\n";
第五节

常见问题

Q & A
我有一堆考试成绩,算方差和标准差能看出什么?

方差和标准差衡量一组数据的离散程度——分数波动大不大。比如全班平均分 75,标准差 5 说明多数人集中在 70-80 之间;标准差 20 说明有人 40 分有人 100 分,差距悬殊。标准差单位与原始数据相同(分),方差是平方后的单位,不直观。本工具同时输出两者,方便直接用标准差解释波动幅度。

为什么我算出来的方差是负数?

方差的计算公式是各数据点与均值差的平方和除以数据个数,平方保证结果永远非负。出现负数只有一种可能:输入数据有误,比如包含了非数字字符、空值或文本。本工具前端校验输入,如果遇到非数字会提示;但如果手动粘贴时混入空格或换行符没有清理干净,也可能导致计算失败。检查输入框内每个值是否都是纯数字。

算方差和标准差时,分母用 n 还是 n-1?有什么区别?

本工具默认用 n(总体方差/标准差),适用于数据代表整个群体(如全班所有人的成绩)。如果数据只是从大群体中抽出的样本,应该用 n-1(样本方差/标准差)来无偏估计总体。目前页面只提供总体版本,处理抽样数据时需注意:直接用会低估实际离散程度。如果手头是样本数据,建议手动将结果乘以 n/(n-1) 校正。

我输入了几千个数字,页面卡死了怎么办?

本工具完全在浏览器本地计算(FE 实现),不依赖服务器,因此性能受限于设备内存和 CPU。几千个数字通常没问题,但如果是几万个或更大,浏览器可能响应慢。建议分批处理:每次粘贴几千个,算完记录结果再清空下一批。如果数据量极大,可改用本地脚本(如 Python/R)计算,避免浏览器内存溢出。

算出来的中位数跟我手动找的不一样?

中位数的计算方式取决于数据个数是奇数还是偶数。奇数个数据时取中间那个值;偶数个数据时取中间两个值的平均值。本工具按此标准算法处理。如果手动找时用了不同规则(比如偶数个时直接取前一个或后一个),结果就会不同。另外数据排序顺序不影响结果,但如果有重复值,中位数可能落在重复区间内,这是正确的。

数据里有极端值,算均值还是中位数更合理?

均值对极端值敏感——一个 100 万的数据点能把均值拉高很多;中位数不受极端值影响,更能代表“典型水平”。比如一组收入数据:5 人月薪 5000,1 人月薪 50000,均值约 12500,中位数 5000,中位数更符合多数人的实际收入。本工具同时输出均值和 中位数,建议对比两者差距:差异大说明数据偏态严重,优先参考中位数。

这个工具会上传我的数据到服务器吗?

不会。本工具采用纯前端(FE)实现,所有计算都在浏览器本地完成,数据不会离开你的电脑。输入的数字只在内存中参与运算,关闭页面或刷新后数据自动消失。无需担心隐私泄露,甚至可以在断网环境下使用(页面加载过一次后离线也能计算)。适合处理敏感数据,如个人健康指标、公司内部报表等。

标准差和平均差是一回事吗?

不是。标准差是各数据点与均值差值的平方和开方,平均差是各数据点与均值差值的绝对值的平均数。标准差通过平方放大了较大偏差的影响,对异常值更敏感;平均差线性处理,受极端值影响较小。本工具只计算标准差和方差,不提供平均差。如果需要平均差,可以手动将每个数据与均值的绝对值求和后除以数据个数。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

选择 打开 +新窗口 esc关闭