标准差方差
均值/中位数/方差/标准差
核心指标(22 项)
分布可视化
关于本工具
了解工具定位 · 使用场景 · 对比优势
使用场景
质检批次稳定性
工厂质检员每天抽检 50 个零件测量直径,均值 10.02mm 看似合格,但标准差从 0.05mm 突然跳到 0.18mm。用本工具计算单日标准差与历史数据对比,能提前发现设备磨损或原料批次波动,避免批量不良品流出。
基金波动率评估
基民对比两只混合型基金:A 近一年收益 8% 但单月最大回撤 12%,B 收益 7.5% 但回撤仅 4%。用本工具计算两只基金日收益率的标准差,数值越小说明波动越平缓,帮风险厌恶型投资者选出真正适合自己的产品。
考试成绩离散度
班主任拿到期末数学成绩:全班平均 82 分,但 10 人 95 分以上、8 人 60 分以下。用本工具算出标准差 18.5 分,远高于年级平均的 9 分,说明两极分化严重,需要分层教学而非统一补课。
生产节拍稳定性
产线组长记录 20 个工位的单件加工时间:均值 45 秒看似达标,但中位数仅 38 秒,标准差达 12 秒。用本工具同时输出均值与中位数,能发现少数瓶颈工位拉高了整体时间,针对性优化后整线效率提升 15%。
传感器数据校验
物联网工程师部署 100 个温度传感器,回传数据均值 25.3°C 正常,但用本工具计算标准差发现高达 8.7°C。进一步查看中位数 24.8°C 与均值接近,说明异常值来自少数故障传感器,而非环境突变,从而准确定位需校准的设备。
对比矩阵本工具 vs 竞品 vs 传统方法
| 维度 | 本工具 | Excel / WPS 表格 | SPSS / SAS |
|---|---|---|---|
| 数据隐私 | 纯浏览器运算,数据不上传服务器 | 数据保存在本地文件,但可能触发云同步 | 数据需导入软件,保存在本地或服务器 |
| 处理速度 | 输入即出,1 秒内完成 | 依赖公式计算,数据量大时卡顿 | 需启动软件、导入数据、执行分析,分钟级 |
| 离线可用 | 首次加载后完全离线可用 | 完全离线可用 | 需要安装包,离线可用 |
| 大小限制 | 受浏览器内存限制,百万级数据可能卡顿 | 受 Excel 行数限制(约 104 万行) | 受软件许可和内存限制,可处理千万级 |
| 操作门槛 | 粘贴数据 → 自动出结果 | 需手动输入公式(STDEV.P/VAR.P 等) | 需学习软件操作和统计菜单 |
| 收费 | 免费 | 收费(Microsoft 365 订阅或买断) | 收费(年费或买断,价格较高) |
| 结果可复现性 | 固定算法,结果唯一 | 不同版本公式实现可能微调 | 不同版本算法实现一致,但选项多 |
| 平台兼容 | 任何现代浏览器(PC/手机/平板) | Windows/macOS 桌面端,移动端功能受限 | Windows/macOS 桌面端,无移动端 |
使用指南
上手步骤 · 输入输出 · 避坑提示
输入输出示例7 个典型场景,覆盖常规、边界与易错
| 输入 | 输出 | 说明 |
|---|---|---|
| 5, 8, 12, 15, 20 | 均值: 12.00 | 中位数: 12.00 | 方差: 28.20 | 标准差: 5.31 | 典型场景:一组离散数值的完整统计 |
| 100, 100, 100, 100, 100 | 均值: 100.00 | 中位数: 100.00 | 方差: 0.00 | 标准差: 0.00 | 边界 case:所有数值相同,方差为零 |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 | 均值: 5.50 | 中位数: 5.50 | 方差: 8.25 | 标准差: 2.87 | 典型场景:连续自然数,均值等于中位数 |
| 1, 1, 1, 1, 1000 | 均值: 200.80 | 中位数: 1.00 | 方差: 159,361.76 | 标准差: 399.20 | 边界 case:含极端离群值,均值与中位数差异大 |
| 3 | 均值: 3.00 | 中位数: 3.00 | 方差: 0.00 | 标准差: 0.00 | 边界 case:单个数值,方差和标准差为零 |
| 1.5, 2.3, 4.7, 8.1 | 均值: 4.15 | 中位数: 3.50 | 方差: 6.68 | 标准差: 2.58 | 典型场景:带小数点的数值输入 |
| 0, -5, 10, -2, 7 | 均值: 2.00 | 中位数: 0.00 | 方差: 34.80 | 标准差: 5.90 | 易错 case:包含负数,用户可能误以为不支持 |
常见错误对照8 个常踩的坑 · 错误 → 修复
1. 输入了非数值字符
1, 2, 3, abc1, 2, 3, 4.5工具只接受数字(整数或浮点数),非数字字符如字母、中文符号会导致解析失败或结果异常。
2. 用空格代替逗号作为分隔符
1 2 3 4 51, 2, 3, 4, 5空格分隔会被工具视为单个字符串,而非多个数值。必须使用英文逗号分隔每个数据点。
3. 输入了空数据集
1, 2, 3方差/标准差需要至少两个数据点才能计算;空输入或单个数字无法计算样本方差(分母为 n-1)。
4. 混淆总体方差与样本方差
输入全班成绩,期望结果与 Excel 的 VAR.P 一致,但工具默认用 VAR.S工具默认计算样本方差(分母 n-1)。如需总体方差,请自行确认算法差异或使用其他工具。样本方差(分母 n-1)用于从样本推断总体;总体方差(分母 n)用于全量数据。工具未提供切换选项时需用户自行区分。
5. 输入了科学计数法或特殊符号
1e3, 2.5e-2, 3.14%1000, 0.025, 3.14工具输入框仅接受纯数字,不支持科学计数法(1e3)、百分号(%)或单位后缀。需先转换为普通十进制数。
6. 输入了重复的极端值导致方差膨胀
1, 1, 1, 1, 1000, 1, 1, 1, 11, 1, 1, 1, 1000, 1, 1, 1, 1 (若确实如此,则结果正确;但用户可能误将异常值重复输入)方差对极端值敏感。若误将同一个异常值复制粘贴多次,会严重放大方差,掩盖正常数据的离散程度。
7. 误把中位数当作均值使用
输入 [1, 2, 100],认为中位数 2 能代表整体水平均值 ≈ 34.33,中位数 = 2中位数对极端值不敏感,适合偏态分布;均值受极端值影响大。用户需根据数据分布选择合适统计量。
8. 输入了带单位的数值
10cm, 20cm, 30cm10, 20, 30工具不解析单位后缀。带单位的输入会被当作非数值字符处理,导致解析错误或结果无意义。
工作原理
公式推导 · 流程图解 · 依据出处
核心公式
σ² = Σ(xᵢ - μ)² / N
变量说明
σ²— 总体方差xᵢ— 第 i 个数据点μ— 所有数据点的算术平均值N— 数据点总数
示例
数据集:2, 4, 6, 8。N=4,均值 μ = (2+4+6+8)/4 = 5。各点与均值差平方:(2-5)²=9,(4-5)²=1,(6-5)²=1,(8-5)²=9。方差 σ² = (9+1+1+9)/4 = 5。标准差 σ = √5 ≈ 2.236。
适用范围
适用于描述一组数值型数据的离散程度(总体方差)。若数据为样本(从更大总体中抽样),应使用样本方差公式(分母为 N-1),否则会低估总体方差。
原理图
开发者集成
3 种主流语言 · 复制即用
import math
# 样本数据
data = [12, 15, 14, 10, 18, 20, 22, 17]
n = len(data)
# 均值
mean = sum(data) / n
# 中位数
sorted_data = sorted(data)
if n % 2 == 1:
median = sorted_data[n // 2]
else:
median = (sorted_data[n // 2 - 1] + sorted_data[n // 2]) / 2
# 方差(样本方差,分母 n-1)
variance = sum((x - mean) ** 2 for x in data) / (n - 1)
# 标准差
std_dev = math.sqrt(variance)
print(f"均值: {mean:.2f}")
print(f"中位数: {median:.2f}")
print(f"方差: {variance:.2f}")
print(f"标准差: {std_dev:.2f}")
# 输出:
# 均值: 16.00
# 中位数: 15.50
# 方差: 17.43
# 标准差: 4.17package main
import (
"fmt"
"math"
"sort"
)
func main() {
data := []float64{12, 15, 14, 10, 18, 20, 22, 17}
n := len(data)
// 均值
sum := 0.0
for _, v := range data {
sum += v
}
mean := sum / float64(n)
// 中位数
sorted := make([]float64, n)
copy(sorted, data)
sort.Float64s(sorted)
var median float64
if n%2 == 1 {
median = sorted[n/2]
} else {
median = (sorted[n/2-1] + sorted[n/2]) / 2
}
// 方差(样本方差,分母 n-1)
var variance float64
for _, v := range data {
diff := v - mean
variance += diff * diff
}
variance /= float64(n - 1)
// 标准差
stdDev := math.Sqrt(variance)
fmt.Printf("均值: %.2f\n", mean)
fmt.Printf("中位数: %.2f\n", median)
fmt.Printf("方差: %.2f\n", variance)
fmt.Printf("标准差: %.2f\n", stdDev)
// 输出:
// 均值: 16.00
// 中位数: 15.50
// 方差: 17.43
// 标准差: 4.17
}const data = [12, 15, 14, 10, 18, 20, 22, 17];
const n = data.length;
// 均值
const mean = data.reduce((a, b) => a + b, 0) / n;
// 中位数
const sorted = [...data].sort((a, b) => a - b);
const median = n % 2 === 1
? sorted[Math.floor(n / 2)]
: (sorted[n / 2 - 1] + sorted[n / 2]) / 2;
// 方差(样本方差,分母 n-1)
const variance = data.reduce((acc, x) => acc + (x - mean) ** 2, 0) / (n - 1);
// 标准差
const stdDev = Math.sqrt(variance);
console.log(`均值: ${mean.toFixed(2)}`);
console.log(`中位数: ${median.toFixed(2)}`);
console.log(`方差: ${variance.toFixed(2)}`);
console.log(`标准差: ${stdDev.toFixed(2)}`);
// 输出:
// 均值: 16.00
// 中位数: 15.50
// 方差: 17.43
// 标准差: 4.17常见问题
8 个高频疑问