"““价格弹性测试模拟器:模拟A/B测试数据、计算弧弹性、做显著性检验并推荐最优定价。””" import math def simulate_campaign(conv_rate, n_users): "““用二项分布模拟一个价格组的成交量””" from random import random hits = 0 for _ in range(n_users): if random() < conv_rate: hits += 1 return hits def arc_elasticity(p1, p2, q1, q2): "““计算两点之间的弧弹性””" delta_p = p2 - p1 delta_q = q2 - q1 mid_p = (p1 + p2) / 2.0 mid_q = (q1 + q2) / 2.0 return (delta_q / mid_q) / (delta_p / mid_p) def z_test(sample1, sample2): "““对两个比例做z检验,返回z值和p值””" hits1, n1 = sample1 hits2, n2 = sample2 p1 = hits1 / n1 p2 = hits2 / n2 p_pool = (hits1 + hits2) / (n1 + n2) se = math.sqrt(p_pool (1 - p_pool) (1.0 / n1 + 1.0 / n2)) z = (p1 - p2) / se p_value = 2 * (1 - normal_cdf(abs(z))) return z, p_value def normal_cdf(x): "““标准正态分布的近似累积分布函数””" return 0.5 * (1 + math.erf(x / math.sqrt(2))) def pick_best_price(prices, revenues): "““返回收入最高的定价””“ best = max(prices, key=lambda p: revenues[p]) return best def main(): random_seed = None print(“===== AI产品价格弹性测试模拟器 =====”) n_users = 1000 base_price = 19.9 data = {} for multiplier in [1.0, 1.5, 2.0]: price = round(base_price * multiplier, 2) if multiplier == 1.0: conv = 0.10 elif multiplier == 1.5: conv = 0.06 else: conv = 0.03 hits = simulate_campaign(conv, n_users) data[price] = hits print(f“价格 {price:>6} 元 -> 成交 {hits:>3} 单 / {n_users} 人”) prices = sorted(data.keys()) print(“\n===== 相邻价格区间的弧弹性 =====”) for i in range(len(prices) - 1): p1, p2 = prices[i], prices[i + 1] q1, q2 = data[p1], data[p2] e = arc_elasticity(p1, p2, q1, q2) print(f“区间 {p1}~{p2} 元:弧弹性 = {abs(e):.2f}”) print(“\n===== 显著性检验(相对最低价) =====”) baseline = (data[prices[0]], n_users) for p in prices[1:]: z, pv = z_test((data[p], n_users), baseline) verdict = “显著” if pv < 0.05 else “不显著” print(f“价格 {p} vs {prices[0]}: z={z:.2f}, p={pv:.4f}, {verdict}”) revenues = {} sim_price_curve = [round(base_price * k, 1) for k in [0.8, 1.0, 1.2, 1.5, 1.8]] for p in sim_price_curve: el = -1.5 volumes = 1000 (p / base_price) * el revenues[p] = p volumes 0.01 best = pick_best_price(sim_price_curve, revenues) print(f“\n===== 定价建议 =====”) print(f“模拟价格曲线收入最高点:{best} 元”) if name == ”main": main() ```
代码用途:这段代码模拟了价格弹性测试的核心流程——生成不同价格组的A/B实验数据、计算弧弹性、做z检验判断差异显著性,最后估算总收入推荐最优定价。