module Bayesab
Constants
- VERSION
Public Class Methods
probability(control_success, control_fail, experiment_success, experiment_fail)
click to toggle source
Calculates the likelyhood that control is an improvement on experiment.
Parameters:
control_success: Number of successes for the control group. control_fail: Number of failures for the control group. experiment_success: Number of successes for the experiment group. experiment_fail: Number of failures for the experiment group.
# File lib/bayesab.rb, line 12 def self.probability(control_success, control_fail, experiment_success, experiment_fail) alpha_a = control_success + 1 beta_a = control_fail + 1 alpha_b = experiment_success + 1 beta_b = experiment_fail + 1 total = 0.0 0.upto(alpha_b - 1) do |i| total += Math.exp(Math.lbeta(alpha_a + i, beta_b + beta_a)[0] - Math.log(beta_b + i) - Math.lbeta(1 + i, beta_b)[0] - Math.lbeta(alpha_a, beta_a)[0]) end total end