理论部分
在注册计量师考试中有一道试题,大体内容为:
现在有一块砝码在等臂天平上进行测量,第一次测得值是19.6g,调换两边位置后的测得值是19.7g,
天平最终测得检测样品的重量为多少?
个别同事可能会将算数平均值作为这个砝码的最终测量值,但实际应当使用几何平均值的方式计算,算数平均值通常假设误差是随机分布的,且没有系统偏差,而采用几何平均值的方式可以有效的消除系统误差,而且几何平均值对极端值相对不敏感,更能反映数据的整体情况。。
取五组平均值均为19.65g的检测数据,通过以下Julia代码计算模拟的图片即可体现出两种算法在多组数据中的不同。这里的为天平一侧测得值,为另一侧测得值,两种方法的计算公式:
Markdown版本计算公式
集合平均值:$\sqrt{w_{1}w_{2}}$
算数平均值:$\frac{w_{1}+w_{2}}{2}$
Julia语言实现
using Plots
measurements = [(19.6, 19.7), (19.5, 19.8), (19.4, 19.9), (19.7, 19.6), (19.8, 19.5)]
arithmetic_means = [(m1 + m2) / 2 for (m1, m2) in measurements]
geometric_means = [sqrt(m1 * m2) for (m1, m2) in measurements]
indices = 1:length(measurements)
p = plot()
# 算术平均值的散点和曲线
scatter!(indices, arithmetic_means, label="Arithmetic Mean", markercolor=:blue)
plot!(indices, arithmetic_means, seriestype=:line, label="", linecolor=:blue, linewidth=2)
scatter!(indices, geometric_means, label="Geometric Mean", markercolor=:red)
plot!(indices, geometric_means, seriestype=:line, label="", linecolor=:red, linewidth=2)
xlabel!("Measurement Pair Index")
ylabel!("Mean Value (g)")
title!("Comparison of Arithmetic and Geometric Means")
display(p)
savefig(p, "GGboy.png")
根据生成图像可以看出,五组数据平均值均为19.65g,几何平均值方法更有效的消除系统误差