美文网首页数据科学与R语言
数据分析小案例(一):商业街抽奖(python)

数据分析小案例(一):商业街抽奖(python)

作者: 三猫后端 | 来源:发表于2017-09-25 09:42 被阅读157次

    原文链接:数据分析小案例(一):商业街抽奖(python)

    微信公众号:机器学习养成记    搜索添加微信公众号:chenchenwings


    第二弹戳这里:数据分析小案例(二):面包是不是变轻了(python)

    第三弹戳这里:数据分析小案例(三):调查问卷(python)

    第四弹戳这里:数据分析小案例(四):销售额下滑(python)

    第五弹戳这里:小案例(五):销量预测(python)

    最近有很多以小说的方式讲解数据分析的书,比如在看的这本《菜鸟侦探挑战数据分析》。里面的程序以R语言实现,案例都很简单,正巧最近在学习python,就尝试把里面的案例用python实现一下。

    案件回顾

    商业街抽奖

    1,宣传说“平均每100人就能有1人抽中一等奖”

    2,中奖率由店家调整——1%

    3,每天的客人超过100人——一周总共有超过700人参与抽奖

    4,1周内开出一等奖次数——5次(问题:1周之内每天都有超过100人抽奖,但是没有产生7个一等奖,只产生了5个,是不是有猫腻?)

    模拟实验与分析

    对于出现的问题,首先通过python进行模拟实验,看看一百次抽奖中会出现多少次一等奖。

    import pandas as pd

    from collections import Counter

    choujiang = pd.Series(["未中奖","一等奖"])

    cnt = Counter(choujiang.sample(n=100,replace=True,weights=([99,1])))

    cnt

    sample为pandas中函数,功能为随机抽样;

    replace=True表示有放回的抽样;

    weights表示取值权重;

    Counter为collections中函数,功能为计算array中不同值的取值个数。

    运行三次,结果分别为:

    Counter({'一等奖': 1, '未中奖': 99})

    Counter({'未中奖': 100})

    Counter({'一等奖': 2, '未中奖': 98})

    结论,中奖概率为1%,不代表抽100次必然出现1次一等奖。

    上例为模拟了100次1%中奖率的电子抽奖,把这个模拟重复7次,即为1周内的抽奖情况模拟。用电脑模拟1000周的抽奖结果,就可以统计1000周里,出现5次一等奖的周数。

    import numpy as np

    #模拟1000周的抽奖情况

    a = np.zeros(1000)

    for i in range(1000):

    for j in range(7):

    a[i] = np.sum(choujiang.sample(n=100,replace=True,weights=([99,1]))=="一等奖")+a[i]

    #画出直方图

    import pylab

    pylab.hist(a, bins=18, normed=0,edgecolor='black',facecolor='blue',alpha=0.75)

    pylab.show()

    np.transpose(Counter(a))

    模拟1000周的抽奖情况,并计算抽中一等奖的次数,画出直方图。图中,横轴表示出现一等奖的次数,纵轴表示周数。

    array(Counter({7.0: 151, 6.0: 140, 8.0: 138, 5.0: 130, 9.0: 96, 4.0: 91, 10.0: 81, 3.0: 53, 11.0: 37, 12.0: 26, 2.0: 23, 13.0: 13, 14.0: 7, 1.0: 7, 15.0: 3, 0.0: 3, 18.0: 1}), dtype=object)

    上面结果为图中的频率分布情况,可以看出,一周内出现5次一等奖的一共有130周,130除以1000,为13%,即出现5次一等奖的周数占整体的13%。如果出现5次算有诈,那出现小于5次的也为有诈,则占总体的30%,概率过大,因此,不能单凭1周内只开出5次一等奖认为抽奖有诈

    几个小概念

    概率:对于例子中对抽奖而言,中奖概率为1%,但是抽700次不一定出现7次大奖。

    频率分布表:统计与某个数值一致的数据的个数,或者属于某数值范围内的数据的个数,然后将这些统计值制成一览表。

    直方图:图形化的频率分布表。

    数据的分布:如果将数据划分为若干个范围,那么数据在各个范围内的散布情况就成为分布。就大部分数据而言,平均值所在的范围频率最高,与平均值相差越大的范围频率越低。


    微信公众号:机器学习养成记    搜索添加微信公众号:chenchenwings

    扫描二维码,关注我们。

    如需转载,请在开篇显著位置注明作者和出处,并在文末放置机器学习养成记二维码和添加原文链接。

    快来关注我们吧!


    相关文章

      网友评论

        本文标题:数据分析小案例(一):商业街抽奖(python)

        本文链接:https://www.haomeiwen.com/subject/pasrextx.html