如何用DAX实现降噪加权移动平均
移动平均,大家都清楚了,但是降噪,加权后再移动平均,将移动平均的能力推向了更高境界。
什么是降噪加权移动平均
对于一堆点,可以通过移动平均观察其趋势,如下:
可以看出:
有些点距离中间区域太远。
移动平均线如果全部考虑所有点,会被拉扯。
对此,我们希望把周围太远的点过滤掉,于是就有了:
通过调节降噪区滑杆,将实现:
周围外侧的点被排除。
移动平均的计算仅仅考虑绿色部分的点。
移动平均也更加平滑。
实现方案
以下给出 DAX 相关计算。
最高值与最低值
MATX.Y.Max =
MAXX( CALCULATETABLE( VALUES( 'Calendar'[Date] ) , ALL( 'Calendar'[Date] ) ) , [MATX.KPI] )
MATX.Y.Min =
MINX( CALCULATETABLE( VALUES( 'Calendar'[Date] ) , ALL( 'Calendar'[Date] ) ) , [MATX.KPI] )
对于学习 DAX 的小伙伴,可以好好看看,这里是如何清除筛选并保留外部筛选的技巧。
降噪算法
以下给出非常重要的 DAX 点集降噪算法,如下:
MATX.KPI.By Scope =
VAR vY = [MATX.KPI] - [MATX.Y.Min]
VAR vL = [MATX.Y.Max] - [MATX.Y.Min]
RETURN
IF( vY >= vL * MIN('Option.X'[Option.X] ) / 100 && vY <= vL * MAX('Option.X'[Option.X] ) / 100 , [MATX.KPI] )
这里的算法原理如下:
vL 表示最高和最低之间的跨度。
vY 表示相对于最低值的实际距离。
通过滑竿进行判断,给出一个百分比的区间,通过视觉可以直接判断是不是包括在内。
如果 vY 在上述滑竿给出的范围内,则是合理有效,否则就是噪声点,进行排除。
移动平均算法模板
以下给出移动平均的算法模板,如下:
MATX.Value =
AVERAGEX(
DATESINPERIOD( 'Calendar'[Date] , MAX( 'Calendar'[Date] ) , - [Start:Option.Y.Value] , DAY ) ,
//[MATX.KPI] //
[MATX.KPI.By Scope] * [MATX.Weight]
)
这是标准的移动平均算法模板,其中:
给出了移动平均的框架。
在计算环节用度量值给出实现一种委托。
将移动平均的实际计算委托给实际的度量值。
其中考虑了权重。
作图技巧
也许你已经完成了上述内容的模仿和抄袭,在作图的时候,考察了你对 PowerBI 图形的理解。这里使用的技巧包括:
只使用了一个折线图。
灵活的运用了:
只显示点,不显示折线。
只显示折线,不显示点。
总结
如果你具有复杂而真实的业务数据,有很多时候是有实际干扰的,例如:活动,促销以及客户导入等操作,通过本案例的降噪加权移动平均,可以比移动平均更加巧妙地计算多个点的实际趋势。
大家可以自己动手试试了。
现在大家可以自己体验了。
在订阅了BI佐罗讲授的《BI真经》之《BI进行时》课程区,除了可以下载本文案例,还可以观看视频讲解。
特别推荐
2021-11-09
特别推荐大家赶快购买以上插件↑,明天是最后一天年度最底优惠。
第一步:去官网下载。
第二步:双击安装完成,微信登录
第三步:购买且输入优惠码:BI6666
即可。然后加入刘万祥老师微信群享受学习服务。
Power BI 终极系列课程《BI真经》
BI真经 - 让数据真正成为你的力量
扫码与精英一起讨论 Power BI,验证码:data2021
点击“阅读原文”进入学习中心
↙