深圳车牌竞拍价格估计

2020-03-03  本文已影响0人  chaos_chen

深圳车牌竞拍价格估计

规则

深圳车牌竞拍总共可以竞价三次,其中前两次竞价的平均价格会公布,我们能不能利用这个平均价格尽可能猜到可以成交的价格是多少?

现在我有2018年1月至今的24期竞拍数据,这些数据包含:两次竞价的平均价格、平均成交价格、最低成交价格、有效申请人数、参与竞拍的车牌数。那么如何建立模型?

思想

假设每期竞拍的价格都符合正态分布,正态分布的均值μ就是竞价的平均价格;如果正态分布的方差φ每期都差不多,那么就能利用方差去估计前x%的价格是多少(也就是能拍到的价格是多少)。

实现

先随机生成正态分布方差参数,然后根据均值和方差生成正态分布的数据,最后根据实际成交的价格推算最优的方差是多少:

def get_esti_fi(average_price):
    # 初始化用来估计的正态分布的 方差参数φ    
    fi_array = []
    for i in frange(0, average_price * 2.5, 1000):
        fi_array.append(i)
    return fi_array

def get_loss(fi_array, average_price, valid_auction_num, transaction_volume, avg_transaction_price):
    target_scale = 0
    loss = 99999999
    for fi in fi_array:
        normals = np.random.normal(average_price*1.08, fi, size=(valid_auction_num,))
        sorted_normals = sorted(normals)
        sorted_normals = sorted_normals[::-1]#降序
        lowest_quoted_price = sorted_normals[transaction_volume]
        if abs(lowest_quoted_price - avg_transaction_price) < loss:
            loss = abs(lowest_quoted_price - avg_transaction_price)
            target_scale = fi
    return target_scale, loss

验证

拿到估计出来的方差去验证:

n = min(len(valid_auction_num_history), len(pre_price_history), len(avg_hammer_price_history), len(auction_volume_history))
    print(n)
    fi_results = []
    for i in range(n):
        fi_array = get_esti_fi(pre_price_history[i])
        fi, loss = get_loss(fi_array, pre_price_history[i], valid_auction_num_history[i], auction_volume_history[i], avg_hammer_price_history[i])
        print("no:{0}, fi:{1}, loss:{2}, percent:{3}".format(i+1, fi, loss, float(auction_volume_history[i])/valid_auction_num_history[i]))
        fi_results.append(fi)
    chances = np.reshape(auction_volume_history, (len(auction_volume_history),)).astype(float) / np.reshape(valid_auction_num_history, (len(valid_auction_num_history),)).astype(float) * 100000
    plot(n, 0, avg_hammer_price_history, 0, pre_price_history, 0, fi_results, 0)

结果如下:


Figure_0.png

可见预测效果还是不错的

but

但是问题来了,这些历史数据其实是竞拍后才能拿到的,在竞拍过程中是不知道总共有多少人在拍的。(只有某些淘宝知道...)
于是,需要换模型。

重新看数据

继续观察历史数据发现,平均成交价格其实和竞拍的人数都没有正比关系,也就是说并不是拍的人多(比例小)价格就高,这样我们的估计还是有可能实现的。进一步观察发现,第二次报价与最终成交的平均价格存在着很强的相关性:


Figure_1.png

结论

可以把数据一分为2看,17年底以前最终成交价格的均价基本就是第二次报价加9千左右。17年底以后,除开18年1月和19年6月两个奇点,成交价格与第二次报价的差值不断下降:


Figure_2.png

结合前面计算过的方差值一起看,方差是不断下降的:


Figure_4.png

17年底以前方差高,估价差值低,说明大部分竞拍者是抱着试试看的心态,出价甚至比第二次公布的报价低;真正想要的竞拍者不多。
18年后投机者变少,高价竞争者也在变少,可能也预示着经济环境在变差,或者大家对于电动车的接受度越来越高。

预测

预测2020年第3期车牌价格变化不大,竞价比第二次报价高出1.2w就能拍到牌了

上一篇下一篇

猜你喜欢

热点阅读