时间序列预测就是利用过去一段时间内的数据来预测未来一段时间内该数据的走势,比如根据过去5年的销售数据进行来年的收入增长预测,根据上个季度的股票走势推测未来一周的股价变化等等。

对于大部分人来说,这是个相对比较复杂的预测建模问题,但在工具如此丰富的今天,当然可以不用自己动手建模,很多工具都可以实现这一功能。本文介绍在PowerBI中如何进行时间序列预测。

折线图中的预测

时间序列数据一般使用折线图来展现,因此在PowerBI的折现图中也就有了预测功能。

先在PowerBI中创建一个折线图,

然后在分析面板中,可以看到最后要有一个【预测】功能,

展开【预测】,点击添加,有以下几个参数设置,

预测长度就是进行未来多长时间的预测,下面以50天为例,

忽略最后N个数据点,可以避免最后一些异常值的影响;还有一个功能是可以检验预测的效果,比如忽略最后50天,预测长度也是50天,这样就可以检验最后50天的实际值和预测值的差异,通过下图可以看到,实际走势的确在预测区间内,

置信区间是统计学上的一个基础术语,利用它可以计算出预测区间的上限和下限值。通过置信区间的设置,可以控制预测的质量,因为既然是预测,结果往往会有误差,几乎不可避免。

上图用的是95%的置信区间,通俗的来说,就是实际数据有95%的可能性会落在这个区间内。

如果选择的是75%的置信区间,如下图,

可以看出预测区间收窄,只有75%的可能性会落在这个区间内。

置信区间设置的越高,预测区间越大,但预测的精度较低;通过降低置信区间,可以提升预测的精度,但其可信度也随之下降。实际预测时要平衡这二者的关系。

最后还有一个参数是季节性,如果历史数据有规律性的变化,可以在这里进行设置。假如每年的销售数据有季节性的规律,如果数据点间隔是季度,就可以设置为4,如果数据点间隔为天,设置为365。这里如果不填,系统会自动检测规律性。

上面的几个预测,就是没有填写这个参数,系统没有检测出历史数据有什么规律,所以预测线都是一条直线,预测区间上下限间隔相等。

还是上图的数据,季节性填上150,置信区间为95%,看看预测区间有什么变化,

可以看到预测线也有了一定的曲折变化,这是因为根据之前150天的历史数据的涨跌变化,预测未来也有这个涨跌趋势。

当然这里不能随便填写,除非你有足够的证据表明历史数据有这个规律,否则预测结果更加难以控制。

预测数据不仅只是在折现图上展现,还可以查看预测数据并导出,

(具体如何导出数据,可以查看:PowerBI中的数据如何导出到Excel?

从以上介绍可以看出,PowerBI中创建预测具有极高的易用性,可以不用深入了解模型和算法原理,初学者也只需点击几下就可轻松实现预测分析。

当然如果想要更深入的进行预测分析,运用预测模型并精准控制模型的参数,还有几个自定义图表可以实现。

在自定义图表市场中搜索"forecast",

可以找到很多预测图表,不过都是R脚本创建的,使用之前需要电脑中先安装R程序,并加载图表需要的程序包。(关于这一块可以参考:R数据可视化)

依然运用上面的数据,挑选几个常用的自定义图表看看预测的结果

Time Series Forecasting Chart

这是利用指数平滑模型来进行预测的,可以在设置选项中设置各项参数,可以看到它有深浅两个预测区间,这是因为它可以设置两个置信区间,同时进行观察。

Forecasting With ARIMA

ARIMA就是自回归移动平均模型的简称,是一个非常著名的时间序列预测方法,PowerBI中将这一模型图表化,只需要输入相关的参数,就可以轻松运用这一模型进行预测,不过使用之前需要先了解该模型以及它的各项参数的含义。

Forecast Using Neural Network By MAQ

对这个算法原理不太清楚,不过从名字上来看,应该更加高端,是运用神经网络技术来进行预测,其结果可能会更加精准一些。

简单列出这几个自定义模型,其他的预测图表可以自己加载了解一下。通过这些模型,PowerBI将复杂的建模和算法在后台进行配置,而在界面上只需要简单的交互式参数输入,为最终用户包括数据科学家提供预测分析服务。

想要深入进行数据预测,还是要了解一下这些预测模型的原理和算法的,以便对预测的过程进行控制,对预测的结果进行解释。如果只是一般的预测,PowerBI默认的折线图中的预测也足够用了。

数据可视化之powerBI技巧(六)在PowerBI中简单的操作,实现复杂的预测分析的更多相关文章

  1. 数据可视化之powerBI技巧(十)利用度量值,轻松进行动态指标分析

    在一个图表中,可以将多项指标数据放进去同时显示,如果不想同时显示在一起,可以根据需要动态显示数据吗?在 PowerBI 中当然是可以的. 下面就看看如何利用度量值进行动态分析. 假如要分析的指标有销售 ...

  2. 数据可视化之PowerQuery篇(十一)使用Power BI进行动态帕累托分析

    https://zhuanlan.zhihu.com/p/57763423 上篇文章介绍了帕累托图的用处以及如何制作一个简单的帕累托图,在 PowerBI 中可以很方便的生成,但若仅止于此,并不足以体 ...

  3. 我的Android六章:Android中SQLite数据库操作

    今天学习的内容是Android中的SQLite数据库操作,在讲解这个内容之前小编在前面有一篇博客也是讲解了SQLite数据库的操作,而那篇博客的讲解是讲述了 如何在Window中通过DOM来操作数据库 ...

  4. 数据可视化之powerBI技巧(二十一)简单三个步骤,轻松管理你的Power BI度量值

    最近碰到几个星友的问题,都是问我之前分享的源文件是如何把度量值分门别类放到不同的文件夹中的,就像这样, 其实在之前的文章中也曾提及过做法,这里再详细说一下制作步骤: 01 | 新建一个空表 点击菜单栏 ...

  5. 数据可视化基础专题(六):Pandas基础(五) 索引和数据选择器(查找)

    1.序言 如何切片,切块,以及通常获取和设置pandas对象的子集 2.索引的不同选择 对象选择已经有许多用户请求的添加,以支持更明确的基于位置的索引.Pandas现在支持三种类型的多轴索引. .lo ...

  6. 数据可视化实例(十六):有序条形图(matplotlib,pandas)

    排序 (Ranking) 棒棒糖图 (Lollipop Chart) 棒棒糖图表以一种视觉上令人愉悦的方式提供与有序条形图类似的目的. https://datawhalechina.github.io ...

  7. Android源码阅读技巧--查找开发者选项中显示触摸操作源码

    在开发者模式下,在开发者选项中,可以勾选“显示触摸操作”,然后只要点击屏幕就会在点击的位置有圈圈显示.如何找到绘制圈圈的代码部分,有什么技巧来阅读代码量这么大的android系统源码呢?以下请跟着小老 ...

  8. Git知识总览(六) Git分支中的远程操作实践

    前几篇博客陆陆续续的讲了好多关于Git操作的内容,本篇博客仍然也不例外,不过本篇博客的主题是关于git的远程操作的.依照之前博客的风格,我们依然依托于LearningGitBranch中的相关内容来探 ...

  9. 使用bokeh-scala进行数据可视化(2)

    目录 前言 几种高级可视化图表 总结 一.前言        之前已经简单介绍过一次如何使用Bokeh-scala进行数据可视化(见使用bokeh-scala进行数据可视化),以及如何在Geotrel ...

随机推荐

  1. [51nod 1847]奇怪的数学题

    [ 51nod 1847 ]奇怪的数学题 题目   点这里看题目. 分析   是挺奇怪的......   以下定义质数集合为\(P\),\(p_i\)为第\(i\)个质数.   定义\(mp(x)\) ...

  2. MySQL 性能优化之慢查询

    性能优化的思路 首先需要使用慢查询功能,去获取所有查询时间比较长的SQL语句 其次使用explain命令去查询由问题的SQL的执行计划(脑补链接:点我直达1,点我直达2) 最后可以使用show pro ...

  3. Web api配置填坑攻略

    最近开始使用web api,开发调试过程还算顺利,现在项目已经发布,网站已经部署,结果浏览过程出现问题(不出问题好像不正常吧……),做个note开始填坑. 1.1号坑 咋一开始就爆出另一个程序正在使用 ...

  4. 前后端分离项目 nginx配置实践

    新项目采用前后端分离的方式开发,前后端代码打算分开部署(同机器且同域名),但打算支持后端依然可访问静态资源. 搜索nginx配置大部分都通过url前缀进行转发来做前后端分离,不适用目前项目. 说明 前 ...

  5. JSON类库Jackson优雅序列化Java枚举类

    1. 前言 在Java开发中我们为了避免过多的魔法值,使用枚举类来封装一些静态的状态代码.但是在将这些枚举的意思正确而全面的返回给前端却并不是那么顺利,我们通常会使用Jackson类库序列化对象为JS ...

  6. Jenkins入门教程之linux下安装配置jenkins(一)

    https://blog.csdn.net/zjh_746140129/article/details/80835866

  7. 2、尚硅谷_SSM高级整合_创建Maven项目.avi

    第一步我们新建立一个web工程 这里首先要勾选上enable的第一个复选框 这里要勾选上add maven support 我们在pom.xml中添加sevlet的依赖 创建java web项目之后, ...

  8. jni不通过线程c回调java的函数

    整个工程的项目如下: 1.项目的思路是在activity中启动MyService这个服务,在服务中调用 JniScsManger类中的本地方法startNativeScsService,在 start ...

  9. LeetCode 80,不使用外部空间的情况下对有序数组去重

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode专题的第49篇文章,我们一起来看LeetCode的第80题,有序数组去重II(Remove Duplicates fr ...

  10. Python3-datetime模块-日期与时间

    官方文档 http://python.usyiyi.cn/translate/python_352/library/datetime.html 代码示例 from datetime import da ...