package obistat debut

This commit is contained in:
2022-07-28 16:52:27 +02:00
parent b4cabf31fc
commit 821abb1395
3 changed files with 156 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
package obistats
import (
"math"
"sort"
"gonum.org/v1/gonum/floats"
"gonum.org/v1/gonum/stat/distuv"
)
func BetaKolmogorowDist(data []float64, alpha, beta float64, preordered bool) float64 {
odata := data
if !preordered {
odata = make([]float64, len(data))
copy(odata,data)
sort.Float64s(odata)
}
distances := make([]float64, len(data))
B := distuv.Beta{
Alpha: alpha,
Beta: beta,
Src: nil,
}
s := float64(0.0)
for i, v := range odata {
s += v
distances[i] = math.Abs(B.CDF(s) - 1.0/(float64(i)+1.0))
}
return floats.Max(distances)
}