Documentation
¶
Overview ¶
Package gostat provides basic statistical functions.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Online ¶
type Online struct {
Sample bool
Count int
Total float64
Max float64
Min float64
Mean float64
M2 float64
M3 float64
// contains filtered or unexported fields
}
Online or running set of statistics that doesn't need to keep all the values to produce stats. Based on https://www.johndcook.com/blog/skewness_kurtosis/
Note: Altering the values of an Online statistic will invalidate the figures it produces.
func (*Online) Push ¶
Push an integer value into the online set, updating the statistics to reflect the change.
Example ¶
package main
import (
"fmt"
"bitbucket.org/idomdavis/gostat"
)
func main() {
o := gostat.Online{}
o.Push(1)
o.Push(2)
o.Push(3)
fmt.Println(o.Count, o.Max, o.Min, o.Mean, o.Total)
}
Output: 3 3 1 2 6
func (*Online) PushFloat ¶
PushFloat pushes a float64 value into the online set, updating the statistics to reflect the change.
func (*Online) PushTally ¶ added in v0.2.0
func (o *Online) PushTally()
PushTally pushes the current tally count to the online set. The tally count is reset to 0.
Example ¶
package main
import (
"fmt"
"bitbucket.org/idomdavis/gostat"
)
func main() {
o := gostat.Online{}
o.Tally(1)
o.PushTally()
o.Tally(1)
o.Tally(1)
o.PushTally()
o.Tally(3)
o.PushTally()
o.Tally(1)
fmt.Println(o.Count, o.Max, o.Min, o.Mean, o.Total)
}
Output: 3 3 1 2 6
func (*Online) Skewness ¶
Skewness of the online set. A positive skewness typically means that the right-hand tail will be longer than the left-hand tail, and vice-versa for a negative tail. Skewness can return NaN under some conditions.
Note: Skewness is heavily dependent on sample size. For Count < 5000 the figure may not be accurate.
Example ¶
package main
import (
"fmt"
"bitbucket.org/idomdavis/gostat"
)
func main() {
o := gostat.Online{}
o.Push(1)
o.Push(1)
o.Push(2)
fmt.Println(o.Skewness())
o.Push(2)
o.Push(2)
fmt.Println(o.Skewness())
}
Output: 0.7071067811865475 -0.4082482904638631
func (*Online) StandardDeviation ¶
StandardDeviation of the online set.
Example ¶
package main
import (
"fmt"
"bitbucket.org/idomdavis/gostat"
)
func main() {
o := gostat.Online{}
o.Push(1)
o.Push(2)
fmt.Println(o.StandardDeviation())
o.Sample = true
fmt.Println(o.StandardDeviation())
}
Output: 0.5 0.7071067811865476
func (*Online) Tally ¶ added in v0.2.0
Tally records an increment to a value without pushing it to the online set. When PushTally is called the current tally count will be pushed.
func (*Online) Variance ¶
Variance of the online set. If the count of items pushed is 1 then Variance will return 0.
Example ¶
package main
import (
"fmt"
"bitbucket.org/idomdavis/gostat"
)
func main() {
o := gostat.Online{Sample: true}
o.Push(1)
fmt.Println(o.Variance())
o.Push(1)
o.Push(4)
fmt.Println(o.Variance())
o.Sample = false
fmt.Println(o.Variance())
}
Output: 0 3 2