Module: SkiftetStatistical

Defined in:
lib/skiftet_statistical.rb,
lib/skiftet_statistical/arm.rb,
lib/skiftet_statistical/bandit.rb,
lib/skiftet_statistical/sampler.rb,
lib/skiftet_statistical/version.rb,
lib/skiftet_statistical/descriptive.rb,
lib/skiftet_statistical/significance.rb,
lib/skiftet_statistical/policies/base.rb,
lib/skiftet_statistical/policies/ucb1.rb,
lib/skiftet_statistical/policies/softmax.rb,
lib/skiftet_statistical/policies/epsilon_greedy.rb,
lib/skiftet_statistical/policies/thompson_sampling.rb

Overview

Skiftet's shared statistics toolkit — a home for reusable, app-independent statistical analysis code across the workspace.

Modules:

  • Descriptive — mean, variance, standard deviation, percentiles/median.

  • Significance — A/B significance testing (two-proportion z-test, Welch's t-test, normal CDF / two-tailed p-values).

  • Sampler — Gamma/Beta/Gaussian random sampling (RNG-injectable).

  • Bandit + Policies — multi-armed bandit (Thompson Sampling, epsilon-greedy, UCB1, Softmax) for online explore/exploit decisions.

    bandit = SkiftetStatistical.bandit(arms: %w[facebook whatsapp x]) choice = bandit.select # which arm to play now bandit.record(choice, 1) # observed a reward (e.g. a conversion) bandit.best_arm # current best by empirical mean

Defined Under Namespace

Modules: Descriptive, Policies, Significance Classes: Arm, Bandit, Error, Sampler

Constant Summary collapse

VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.banditObject

Convenience constructor for a multi-armed bandit.



34
35
36
# File 'lib/skiftet_statistical.rb', line 34

def self.bandit(...)
  Bandit.new(...)
end