INNER CODE UNIT · Python
purchases
CamDavidsonPilon/lifetimes · lifetimes/generate_data.py:127
purchases = [[i, s - pd.Timedelta(1, unit=freq)]]
next_purchase_in = random.exponential(scale=1.0 / l)
alive = True
while next_purchase_in < age and alive:
purchases.append([i, s + pd.Timedelta(next_purchase_in, unit=freq)])
next_purchase_in += random.exponential(scale=1.0 / l)
alive = random.random() > p
df = df.append(pd.DataFrame(purchases, columns=columns))
return df.reset_index(drop=True)
def pareto_nbd_model(T, r, alpha, s, beta, size=1):
"""
Generate artificial data according to the Pareto/NBD model.