• 蒙特卡洛方法分析Web页面浏览量


    作者|Michael Grogan
    编译|VK
    来源|Towards Data Science

    蒙特卡洛这种方法在金融等领域得到了广泛的应用,以便对各种风险情景进行建模。

    然而,该方法在时间序列分析的其他方面也有重要的应用。在这个特定的例子中,让我们看看蒙特卡洛方法如何被用来为web页面浏览量建模。

    以上时间序列来源于Wikimedia Toolforge,是从2019年1月到2020年7月维基百科上“医疗”一词的网页浏览量的时间序列。数据都是按每日划分的。

    我们可以看到,时间序列每天都显示出显著的波动性,并且显示了数据中一些奇怪的“峰值”的典型特征。或者说,在这些天中,搜索该术语的次数特别高。

    试图对这样的时间序列进行直接预测通常是徒劳的。这是因为不可能从统计学上预测搜索词何时会出现峰值,因为这会受到独立于过去数据的影响。例如,与健康有关的重大新闻事件会导致搜索该词的高峰。

    然而,特别有趣的是我们可以创建一个模拟,以分析web页面统计的许多潜在场景,并估计在不正常的场景下这个搜索词的页面浏览量有多高或多低。

    概率分布

    当运行蒙特卡罗模拟时,重要的是要注意所使用的分布类型。

    考虑到页面浏览量不能为负,我们假设分布是正偏态的。

    以下是数据的柱状图:

    我们可以看到,分布显示正偏态,有几个离群值使分布尾部向右倾斜。

    >>> series = value;
    >>> skewness = series.skew();
    >>> print("Skewness:");
    >>> print(round(skewness,2));
    Skewness:
    0.17
    

    此分布的偏态为0.17。

    QQ图表明,除了出现的异常值外,大多数值的分布都是正态分布。

    然而,更可能的是,由于正偏态,该数据表示对数正态分布。我们将数据转换为对数格式将导致分布的正态性。

    >>> mu=np.mean(logvalue)
    >>> sigma=np.std(logvalue)
    >>> x = mu + sigma * np.random.lognormal(mu, sigma, 10000)
    >>> num_bins = 50
    

    这是对数数据的分布,更能代表正态分布。

    此外,此分布的偏态现在为-0.41。

    >>> logvalue=pd.Series(logvalue)
    >>> logseries = logvalue;
    >>> skewness = logseries.skew();
    >>> print("Skewness:");
    >>> print(round(skewness,2));
    Skewness:
    -0.41
    

    这表明有轻微的负偏态,但QQ图仍显示正态分布。

    蒙特卡罗模拟

    既然数据已经被适当地转换,就可以生成蒙特卡罗模拟来分析页面浏览量统计的潜在结果范围。页面浏览量按照所选的分布以对数格式表示。

    首先,计算时间序列的平均值和波动率(用标准差衡量)。

    >>> mu=np.mean(logvalue)
    >>> sigma=np.std(logvalue)
    >>> x = mu + sigma * np.random.lognormal(mu, sigma, 10000)
    >>> num_bins = 50
    

    然后用x定义相应的数组,使用mu和sigma,再生成10000个随机数,这些随机数按照定义的均值和标准差遵循对数正态分布。

    array([5.21777304, 5.58552424, 5.39748092, ..., 5.27737933, 5.42742056, 5.52693816])
    

    现在,让我们绘制直方图。

    同样,这些值以对数格式表示。我们看到这个形状代表正态分布。如前所述,蒙特卡罗模拟的思想不是预测网页浏览量本身,而是提供在许多不同的模拟中网页浏览量的估计值,以便确定

    • 1)大多数网页浏览量的范围;
    • 2)分布中极值的范围。

    结论

    在本文中,你看到了:

    • 蒙特卡罗模拟的应用

    • 偏态在定义分布中的作用

    • 如何进行模拟以识别获得极值的概率

    原文链接:https://towardsdatascience.com/monte-carlo-simulations-in-python-analysing-web-page-views-b6dbec2ba683

    欢迎关注磐创AI博客站:
    http://panchuang.net/

    sklearn机器学习中文官方文档:
    http://sklearn123.com/

    欢迎关注磐创博客资源汇总站:
    http://docs.panchuang.net/

  • 相关阅读:
    图标图片1
    korGE打包注意事项
    书摘1011
    ffmpeg转流rtp转udp
    ffmpeg文档
    ffmpeg http 推流服务器
    cpp笔记
    搭建shAadowsoacks 错误
    ffmpeg 开发板推流到ubuntu和pc
    gstreamer笔记
  • 原文地址:https://www.cnblogs.com/panchuangai/p/13383173.html
Copyright © 2020-2023  润新知