import org.apache.commons.math3.stat.descriptive.moment._
def vLTreeDigesttest = {
val ttCnt = 10000
val myDigestOrg: AVLTreeDigest = TDigest.createAvlTreeDigest(100).asInstanceOf[AVLTreeDigest]
val orgCollection = new mutable.ArrayBuffer[Double]()
for(i <- 0 to ttCnt){
val value = i // r.nextInt(ttCnt)*r.nextInt(100)*0.01
myDigestOrg.add(value)
orgCollection += value
}
val buf: ByteBuffer = ByteBuffer.allocate(myDigestOrg.byteSize)
buf.mark
myDigestOrg.asSmallBytes(buf)
buf.reset
println(s"size: ${buf.array().size}" )
val myDigestFromOrg: AVLTreeDigest = AVLTreeDigest.fromBytes(buf)
val sampleCollcetion = new mutable.ArrayBuffer[Double]()
for(i <- 0 to 10000) sampleCollcetion += myDigestFromOrg.quantile(i/10000.0)
// max
println(s"orgCollection max : ${orgCollection.max}")
println(s"sampleCollcetion max : ${sampleCollcetion.max}")
// min
println(s"orgCollection min : ${orgCollection.min}")
println(s"sampleCollcetion min : ${sampleCollcetion.min}")
// 全距(Range)
println(s"orgCollection Range : ${orgCollection.max - orgCollection.min }")
println(s"sampleCollcetion Range : ${sampleCollcetion.max - sampleCollcetion.min}")
//avg
val orgCollectionAvg = orgCollection.reduce(_+_)/orgCollection.size
val sampleCollcetionAvg = sampleCollcetion.reduce(_+_)/sampleCollcetion.size
println(s"orgCollection avg :$orgCollectionAvg")
println(s"sampleCollcetion avg : $sampleCollcetionAvg")
//均值标准误差(Standard Error of Mean,S.E. Mean,简称标准误
println(s"S.E. Mean : ${sampleCollcetionAvg - orgCollectionAvg}")
//Variance 方差
val orgCollectionVariance = orgCollection.map(x => Math.pow((x - orgCollectionAvg),2)).reduce(_+_)
val sampleCollcetionVariance = sampleCollcetion.map(x => Math.pow((x - sampleCollcetionAvg),2)).reduce(_+_)
println(s"orgCollection Variance : $orgCollectionVariance")
println(s"sampleCollcetion Variance : $sampleCollcetionVariance")
//Standard Deviation 标准差
println(s"orgCollection Standard Deviation : ${ Math.pow((orgCollectionVariance/orgCollection.size),0.5)}")
println(s"sampleCollcetion Standard Deviation : ${ Math.pow((sampleCollcetionVariance/sampleCollcetion.size),0.5)}")
//Median 中位数
println(s"orgCollection Median : ${ orgCollection.sortWith( (a,b) => a>b )(ttCnt/2) }")
println(s"sampleCollcetion Median : ${ myDigestFromOrg.quantile(0.5)}")
// 众数(Mode) 把 Double -> Int 由于采用后 ,值有些变化 . 所以众数不准
// orgCollection Mode : (504671,1)
// sampleCollectionMode Mode : (145013,1)
val orgCollectionMode = orgCollection.map(x => (x,1)).groupBy(_._1).map(x => (x._1,x._2.size)).toArray.sortBy(_._2)
val sampleCollectionMode = sampleCollcetion.map(x => (x.toInt,1)).groupBy(_._1).map(x => (x._1,x._2.size)).toArray.sortBy(_._2)
println(s"orgCollection Mode : ${ orgCollectionMode(orgCollectionMode.length-1) }")
println(s"sampleCollectionMode Mode : ${ sampleCollectionMode(sampleCollectionMode.length-1) }")
//峰度(Kurtosis)
val kurtosis = new Kurtosis()
println(s"orgCollection Kurtosis : ${ kurtosis.evaluate(orgCollection.toArray) }")
println(s"sampleCollection Kurtosis : ${ kurtosis.evaluate(sampleCollcetion.toArray) }")
// 偏度(Skewness)
val skewness = new Skewness()
println(s"orgCollection Skewness : ${ skewness.evaluate(orgCollection.toArray) }")
println(s"sampleCollection Skewness : ${ skewness.evaluate(sampleCollcetion.toArray) }")
}
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math3</artifactId>
<version>3.6.1</version>
</dependency>
分享到:
相关推荐
介绍数据的操作,包括合并、排序、描述统计、分箱处理。
论文研究-一般分布区间型符号数据的描述统计与分析.pdf, 以对大规模个体数据通过打包形成的区间型符号数据为研究对象, 针对个体在区间内往往不服从均匀分布的实际情况, ...
双变量与多变量的描述统计分析PPT课件.pptx
描述统计分析案例.sav
Excel数据整理与分析描述统计共22页.pdf.zip
问卷分析详细版-SPSS回归分析-信度效度分析-描述统计分析-差异分析(包含数据问卷) 本次调查研究共收集问卷 XXX份,剔除无效问卷 XX 份,问卷有效率 XXX%。本次调查研究共设置21道题,人物画像设置6题(1-6题)...
Excel第五章描述统计.pdf
数据描述统计分析(“数据”文档)共37张.pptx
单变量描述统计分析.pptx
Excel 在描述统计中的应用
优选文档多元统计引论及描述统计MATLAB实现PPT.ppt
EXCEL在描述统计相关系数与回归分析中的应用ppt课件.ppt
spss教程常用的数据描述统计:频数分布表等统计学优质资料.doc
不同状态下描述统计结果.doc
单变量描述统计数据分析.pptx
单变量描述统计概述报告.pptx