Method: TrailGuide::Calculators::Bayesian#calculate!

Defined in:
lib/trail_guide/calculators/bayesian.rb

#calculate!Object


71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# File 'lib/trail_guide/calculators/bayesian.rb', line 71

def calculate!
  variants_with_conversion.each do |variant|
    expvar = experiment.variants.find { |var| var.name == variant.name }
    vprob = variant_probability(variant)
    variant.probability = vprob
    variant.significance = TrailGuide::Calculators::SIGNIFICANT_PROBABILITIES.reverse.find { |pct| vprob >= pct } || 0

    #if worst && variant.measure > worst.measure
    #  variant.difference = (variant.measure - worst.measure) / worst.measure * 100
    #end
    if base
      if variant.measure > base.measure
        variant.difference = (variant.measure - base.measure) / base.measure * 100
      elsif base.measure > variant.measure
        variant.difference = -((base.measure - variant.measure) / base.measure * 100)
      else
        variant.difference = 0
      end
    end
  end

  @choice = best && best.probability >= probability ? best : nil

  self
end