
2. 几何平均与算术平均的转换关系(附):


3.2 几何平均数适用于求连乘样本的均值,算术平均数适用于求连加样本的均值
例:假定某地储蓄年利率(按复利计算):5%持续1.5年,3%持续2.5年,2.2%持续1年。求此5年内该地平均储蓄年利率。
r1, r2, r3 = 1.05, 1.03, 1.022 # 各年利率 n1, n2, n3 = 1.5, 2.5, 1 # 各年利率持续时间 G = (r1n1*r2n2*r3n3)(1/(n1+n2+n3)) r_avg = G - 1 print('用几何级数计算平均年利率的误差:', (1+r_avg)(n1+n2+n3) - r1n1*r2n2*r3n3) # 几何平均数的n次方等于总量 A = (n1*r1+n2*r2+n3*r3)/(n1+n2+n3) r_avg = A - 1 print('用算术级数计算平均年利率的误差:', (1+r_avg)*(n1+n2+n3) - r1n1*r2n2*r3n3) # 算术平均数的n倍等于总量
4 四种平均数的大小关系:调和平均 < 几何平均 < 算术平均 < 均方根

当yi=0时,上式为各点的四种平均数;当yi≠0时,上式为各残差点的四种平均数。
import numpy as np from scipy.stats import hmean, gmean from sklearn.metrics import mean_squared_error a = np.random.rand(3)+1 print(a) print('调和平均:{:.3f},几何平均:{:.3f},算术平均:{:.3f},均方根:{:.3f}'.format(hmean(a), gmean(a), a.mean(), mean_squared_error(a, np.zeros(len(a)), squared=False)), '\n' '调和平均 < 几何平均 < 算术平均 < 均方根:', hmean(a) < gmean(a) < a.mean() < mean_squared_error(a, np.zeros(len(a)), squared=False), '\n') a = np.random.rand(3) print(a) print('调和平均:{:.3f},几何平均:{:.3f},算术平均:{:.3f},均方根:{:.3f}'.format(hmean(a), gmean(a), a.mean(), mean_squared_error(a, np.zeros(len(a)), squared=False)), '\n' '调和平均 < 几何平均 < 算术平均 < 均方根:', hmean(a) < gmean(a) < a.mean() < mean_squared_error(a, np.zeros(len(a)), squared=False))
即四种平均值也是按此种顺序趋近于样本点中的较小值,调和平均最接近,均方根最远离。
from scipy.stats import hmean hmean([1, 4]) 1.00001 hmean([1, 2, 3, 4, 5, 6, 7]) 2.63363
另:四种平均值受样本点中离群值的影响程度也遵循此种顺序,即调和平均受离群值影响最小,均方根受离群值影响最大。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/220094.html原文链接:https://javaforall.net
