统计学上sd、cv的计算

sd Std Dev,Standard Deviation 标准偏差(Std Dev,Standard Deviation)
一种量度数据分布的分散程度之标准,用以衡量数据值偏离算术平均值的程度。标准偏差越小,这些值偏离平均值就越少,反之亦然。标准偏差的大小可通过标准偏差与平均值的倍率关系来衡量。

标准偏差公式:S = Sqr(∑(xn-x拨)^2 /(n-1))
公式中∑代表总和,x拨代表x的算术平均值,^2代表二次方,Sqr代表平方根。

例子:有一组数字分别是200、50、100、200,求它们的标准偏差。
x拨 = (200+50+100+200)/4 = 550/4 = 137.5
S^2 = [(200-137.5)^2+(50-137.5)^2+(100-137.5)^2+(200-137.5)^2]/(4-1) =[62.5^2+(-87.5)^2+(-37.5)^2+62.5^2]/3 =[3906.25+7656.25+1406.25+3906.25]/3 = 16875/3 = 5625
标准偏差 S = Sqr(5625) = 75


cv 变异系数(coefficient of variation),亦称离散系数(coefficient of dispersion)或相对偏差(rsd),是标准偏差与平均值之比,用百分数表示,计算公式为:
cv = sd/mean ×100%
200、50、100、200的cv=55%

通过 commons-math,要计算SD、CV值,只需要
// Get a DescriptiveStatistics instance using factory method
DescriptiveStatistics stats = DescriptiveStatistics.newInstance(); 

// Add the data from the array
for( int i = 0; i < inputArray.length; i++) {
        stats.addValue(inputArray[i]);
}

double std = stats.getStandardDeviation(); //获得sd值
double mean=stats.getMean();   // 获得平均值
String cv=new DecimalFormat("0%").format(DoubleUtil.divide(std,mean,2));  //获得cv值

你可能感兴趣的:(apache,html)