Skip to content

Instantly share code, notes, and snippets.

@stucchio
stucchio / bayesian_ab_test.py
Last active April 2, 2023 03:17
Bayesian A/B test code
from matplotlib import use
from pylab import *
from scipy.stats import beta, norm, uniform
from random import random
from numpy import *
import numpy as np
import os
# Input data
import matplotlib
matplotlib.use("WXAgg")
from pylab import *
from scipy.stats import beta, uniform, norm
class BetaBandit(object):
def __init__(self, num_options=2, prior=(1.0,1.0)):
self.trials = zeros(shape=(num_options,), dtype=int)
self.successes = zeros(shape=(num_options,), dtype=int)
self.num_options = num_options
from pylab import *
import random
from scipy.stats import beta, uniform
prior = beta(1,1)
class Bandit(object):
def __init__(self):
self.history = [(1.0,1.0), (1.0,1.0)]
from pylab import *
from scipy.stats import uniform
gamma = 0.01/12.0
t = arange(0,360)
num_mortgages=50
def compute_payout(payout):
return (payout * exp( - gamma * t)).sum()
@stucchio
stucchio / simple_mortgage.py
Last active October 30, 2015 22:11
For a forthcoming blog post.
from pylab import *
from scipy.stats import uniform
gamma = 0.01/12.0
t = arange(0,360)
def compute_payout(payout):
return (payout * exp( - gamma * t)).sum()
def generate_payout():
from pylab import *
from numpy import *
from numpy.linalg import solve
from scipy.integrate import odeint
from scipy.stats import norm, uniform, beta
from scipy.special import jacobi
a = 0.0
from pylab import *
from numpy import *
from numpy.linalg import solve
from scipy.integrate import odeint
from scipy.stats import norm, uniform, beta
from scipy.special import jacobi
a = 0.0
b = 3.0
theta=1.0
@stucchio
stucchio / basic_income_with_death_estimate.py
Created November 15, 2013 20:51
Same as https://gist.github.com/stucchio/7447067 but accounting for death rates, as suggested by a commenter on the blog.
from pylab import *
from scipy.stats import *
num_adults = 227e6
basic_income = 7.25*40*50
labor_force = 154e6
disabled_adults = 21e6
current_wealth_transfers = 3369e9
def jk_rowling(num_non_workers):
@stucchio
stucchio / basic_income_monte_carlo.py
Last active August 28, 2021 01:42
Monte carlo simulation of basic income/basic job calculations, from blog.
from pylab import *
from scipy.stats import *
num_adults = 227e6
basic_income = 7.25*40*50
labor_force = 154e6
disabled_adults = 21e6
current_wealth_transfers = 3369e9
def jk_rowling(num_non_workers):
@stucchio
stucchio / bayes_bandit_empirical_gain_from_incorporating_priors.py
Created April 28, 2013 22:17
Empirical gain from incorporating priors into the Bayesian Bandit
from numpy import *
from scipy.stats import beta
import random
class BetaBandit(object):
def __init__(self, num_options=2, prior=None):
self.trials = zeros(shape=(num_options,), dtype=int)
self.successes = zeros(shape=(num_options,), dtype=int)
self.num_options = num_options