Learn how to add standard deviation to your series.
Standard Deviation
Standard Deviation transponder expects three variables to be present. It utilises rapid Standard Deviation formula that depends on count
, sum
of values and sum of square
root of values. The easiest way to populate this is to make sure every time you preserve a value, you do something like this.
def duration(value:)
{
count: 1,
sum: value,
square: value**2
}
end
These will make sure your sums are incremented correctly and you can use them to calculate Standard Deviation.
Note:
count
,sum
andsquare
are default values of the keys. You need to pass only overrides.
series = Trifle::Stats.series(...)
=> #<Trifle::Stats::Series:0x0000ffffa14256e8 @series={:at=>[2024-03-22 19:38:00 +0000, 2024-03-22 19:39:00 +0000], :values=>[{events: {count: 42, sum: 2184}}, {events: {count: 33, sum: 1553}}]}>
series.transpond.standard_deviation(path: 'events')
=> #<Trifle::Stats::Series:0x0000ffffa14256e8 @series={:at=>[2024-03-22 19:38:00 +0000, 2024-03-22 19:39:00 +0000], :values=>[{events: {count: 42, sum: 2184, sd: 123}}, {events: {count: 33, sum: 1553, sd: 456}}]}>
Note:
path
is a list of keys joined by dot. Ieorders.shipped.count
would represent value at{orders: { shipped: { count: ... } } }
.