使用Apache commons-maths3-3.6.1.jar包进行简单的数据统计分析(java)

使用maths3函数进行简单的数据统计性描述;

使用场景:本地,直接运行就可以;

具体后面有个性化的需求,可以再修改~

 1 package com;
 2 
 3 import org.apache.commons.lang.math.Range;
 4 import org.apache.commons.lang3.StringUtils;
 5 import org.apache.commons.math3.stat.StatUtils;
 6 import org.apache.commons.math3.stat.descriptive.moment.StandardDeviation;
 7 import org.apache.commons.math3.stat.descriptive.rank.Median;
 8 
 9 /*
10  * @description:简单的数据统计分析
11  * */
12 
13 public class MathYsf {
14     public static void main(String[] args){
15         double[] values = new double[] { 0.33, 1.33,0.27333, 0.3, 0.501,  
16                 0.444, 0.44, 0.34496, 0.33,0.3, 0.292, 0.667 }; 
17         double[] values2 = new double[] { 0.89, 1.51,0.37999, 0.4, 0.701,  
18                 0.484, 0.54, 0.56496, 0.43,0.3, 0.392, 0.567 };
19         
20         //计数
21         System.out.println("计算样本个数为:" +values.length);
22         //mean--算数平均数
23         System.out.println("平均数:" + StatUtils.mean(values));
24         //sum--和
25         System.out.println("所有数据相加结果为:" + StatUtils.sum(values));
26         //max--最小值
27         System.out.println("最小值:" + StatUtils.min(values));
28         //max--最大值
29         System.out.println("最大值:" + StatUtils.max(values));
30         //范围
31         System.out.println("范围是:" + (StatUtils.max(values)-StatUtils.min(values)));
32         //标准差  
33         StandardDeviation standardDeviation =new StandardDeviation();
34         System.out.println("一组数据的标准差为:" + standardDeviation.evaluate(values));
35         //variance--方差
36         System.out.println("一组数据的方差为:" + StatUtils.variance(values));
37         //median--中位数
38         Median median= new Median();
39         System.out.println("中位数:" + median.evaluate(values));
40         //mode--众数
41         double[] res = StatUtils.mode(values);
42         System.out.println("众数:" + res[0]+","+res[1]);
43         for(int i = 0;i<res.length;i++){
44             System.out.println("第"+(i+1)+"个众数为:"+res[i]);
45             }
46         //geometricMean--几何平均数
47         System.out.println("几何平均数为:" +StatUtils.geometricMean(values));
48         //meanDifference-- 平均差,平均概率偏差
49         System.out.println("平均差为:"+StatUtils.meanDifference(values, values2));
50         //normalize--标准化
51         double[] norm = StatUtils.normalize(values2);
52         for(int i = 0;i<res.length;i++){
53             System.out.println("第"+(i+1)+"个数据标准化结果为:" + norm[i]);
54             }
55         //percentile--百分位数
56         System.out.println("从小到大排序后位于80%位置的数:" + StatUtils.percentile(values, 70.0));
57         //populationVariance--总体方差 
58         System.out.println("总体方差为:" + StatUtils.populationVariance(values));
59         //product--乘积  
60         System.out.println("所有数据相乘结果为:" + StatUtils.product(values));
61         //sumDifference--和差
62         System.out.println("两样本数据的和差为:" + StatUtils.sumDifference(values,values2));
63         //sumLog--对数求和
64         System.out.println("一组数据的对数求和为:" + StatUtils.sumLog(values));
65         //sumSq--计算一组数值的平方和
66         System.out.println("一组数据的平方和:" + StatUtils.sumSq(values));
67         //varianceDifference --方差差异性。
68         System.out.println("一组数据的方差差异性为:" + StatUtils.varianceDifference(values,values2,StatUtils.meanDifference(values, values2)));
69     }    
70 }

个人认为,使用这些函数关键是知道他的公式和用法,能准确定位,有一些方法,我也找不到它的公式,只是罗列上了,欢迎批评指正~

原文地址:https://www.cnblogs.com/xiao02fang/p/9883909.html