Filip Charikov
08/29/2023, 4:55 PMMichael Ullock
08/29/2023, 5:08 PMFilip Charikov
08/29/2023, 5:09 PMMichael Ullock
08/29/2023, 5:11 PMMichael Ullock
08/29/2023, 5:35 PMMichael Ullock
08/29/2023, 5:37 PMProductboard
08/30/2023, 8:38 AMFilip Charikov
08/30/2023, 6:34 PMAVG(fact)
, so doing a sum & avg in combo chart wouldn't work (also this metric can only every be averaged - summing it would be nonsensical).
I noticed there's an intercept
function, but I can't find documentation on it. Maybe there's also a gradient
function?Jakub Sterba
08/30/2023, 10:43 PMSELECT CORREL((SELECT {metric/metric_1} BY {label/date.day}), (SELECT RUNSUM(SIGN({metric/metric_1})) BY {label/date.day} ))
* STDEV( SELECT {metric/metric_1} BY {label/date.day})
/ STDEV(SELECT RUNSUM(SIGN({metric/metric_1})) BY {label/date.day})
BY ALL OTHER
Alpha
SELECT AVG(SELECT {metric/metric_1} BY {label/date.day})
- ({metric/beta} * AVG(SELECT RUNSUM(SIGN({metric/metric_1})) BY {label/date.day}))
BY ALL OTHER
Trendline
SELECT {metric/alpha} + {metric/beta} * RUNSUM(SIGN({metric/metric_1}))
or as one MAQL definition
Trendline
SELECT (SELECT AVG(SELECT {metric/metric_1} BY {label/date.day}) -
((SELECT CORREL((SELECT {metric/metric_1} BY {label/date.day}),
(SELECT RUNSUM(SIGN({metric/metric_1})) BY {label/date.day} ))
* STDEV( SELECT {metric/metric_1} BY {label/date.day})/
STDEV(SELECT RUNSUM(SIGN({metric/metric_1})) BY {label/date.day}) BY ALL OTHER) * AVG(SELECT RUNSUM(SIGN({metric/metric_1})) BY {label/date.day}))
BY ALL OTHER) + ( (SELECT CORREL((SELECT {metric/metric_1} BY {label/date.day}),
(SELECT RUNSUM(SIGN({metric/metric_1})) BY {label/date.day} ))
* STDEV( SELECT {metric/metric_1} BY {label/date.day})/
STDEV(SELECT RUNSUM(SIGN({metric/metric_1})) BY {label/date.day}) BY ALL OTHER) * RUNSUM(SIGN({metric/metric_1})))
Note that you may need to adjust the definition of metric if you want to aggregate the metric by month or other level of date dimension granularity.Filip Charikov
08/31/2023, 1:50 PM