class Ablab::Result
Public Class Methods
new(experiment)
click to toggle source
# File lib/ablab.rb, line 130 def initialize(experiment) @experiment = experiment end
Public Instance Methods
data()
click to toggle source
# File lib/ablab.rb, line 134 def data counts_c = counts(control) groups.map do |group| if group == control next [group.name, counts_c.merge(control: true, description: group.description)] end counts = counts(group) z = z_score(counts[:sessions], counts[:conversions], counts_c[:sessions], counts_c[:conversions]) [group.name, counts.merge(z_score: z, control: false, description: group.description)] end.to_h end
Private Instance Methods
counts(group)
click to toggle source
# File lib/ablab.rb, line 147 def counts(group) Ablab.tracker.counts(name, group.name) end
z_score(s, c, sc, cc)
click to toggle source
# File lib/ablab.rb, line 151 def z_score(s, c, sc, cc) return nil if s == 0 || sc == 0 p = c.to_f / s pc = cc.to_f / sc (p - pc) / Math.sqrt((p*(1 - p) / s) + (pc*(1 - pc) / sc)) end