Target forecasting met ARIMA

01 december 2021 ,
Samenvatting in 30 seconden
  • Het gebruik van Big Data algoritmes komt bij veel bedrijven niet van de grond. Dit doordat organisaties hier vaak niet de tijd en het geld voor hebben.
  • Met behulp van BigQuery en machine learning algoritmes kunnen bedrijven snel en goedkoop Big Data analyseren.
  • Een concreet voorbeeld van een algoritme dat beschikbaar is binnen BigQuery is ARIMA time series forecasting.
  • Het ARIMA-algoritme kan pas worden toegepast wanneer de GA4 data die geïmporteerd wordt eerst naar het juiste format wordt omgezet.
  • Als de GA4 data is omgezet, kan het algoritme erop los worden gelaten. Er onstaat een forecast die geanalyseerd kan worden.

Target forecasting met ARIMA

Een concreet voorbeeld van een algoritme dat beschikbaar is binnen BigQuery is ARIMA time series forecasting. Een voorbeeld: veel bedrijven maken gebruik van targets. Ze stellen bijvoorbeeld een doel voor de maandelijkse omzet of winst. Vaak is de hoogte van de target enigszins uit de lucht gegrepen. Er is geen rekening gehouden met de invloed van factoren als bijvoorbeeld seizoen en andere historische data op de hoogte van de target.

ARIMA time series forecasting gebruikt historische data om voorspellingen te doen over de toekomst. Je kunt dit algoritme gebruiken om reëlere targets te stellen. Ook kun je het algoritme gebruiken om waarschuwingen af te geven als zich afwijkingen voordoen in de huidige data die een mogelijke breuk kunnen betekenen met de huidige verwachtingen, zogenaamde “anomaly detection”.

Omzetten data format

Voordat het ARIMA-algoritme kan worden toegepast moet de uit GA4 geïmporteerde data eerst omgezet worden naar het juiste format. De te genereren tabel hoeft slechts 2 kolommen te bevatten: een kolom met datum en één die de betreffende target bevat. Doordat de GA4 data in BigQuery geneste data bevat (vergelijkbaar met JSON) kan het even wat moeite kosten de data om te zetten. Todd Kerpelman geeft in een artikel een duidelijke uitleg van de opbouw van deze data. (lhttps://medium.com/firebase-developers/using-the-unnest-function-in-bigquery-to-analyze-event-parameters-in-analytics-fb828f890b42 ).

Benodigde SQL Query’s

Hieronder volgen verschillende SQL-query’s die als voorbeeld dienen hoe een eenvoudige opzet eruit zou zien. Ben je geen SQL-whizzkid? Dat geeft niets. Je kunt de code gewoon overslaan. Onderstaande voorbeeld geeft dan in ieder geval een voorbeeld van de stappen die nodig zijn.

Een query om een tabel te genereren met conversies (gebaseerd op bereiken van een bepaalde webpagina) zou er ongeveer als volgt uit kunnen zien:

CREATE OR REPLACE TABLE `project.aggregates.conversions` AS

SELECT COUNT(DISTINCT user_pseudo_id) AS conversions, PARSE_DATE('%Y%m%d', event_date) AS conv_date

FROM `project.analytics_250567900.events_*`

WHERE event_name = "page_view" AND _TABLE_SUFFIX BETWEEN '20210618' AND '20210622' AND

(SELECT value.string_value FROM UNNEST(event_params)

WHERE key = "page_location") LIKE '%conversiepaginanaam.htm%'

GROUP BY conv_date

Vervolgens kun je op basis van deze tabel het ARIMA-model genereren. De query zou er dan zo uit kunnen zien:

CREATE OR REPLACE MODEL

`project.models.tseries` OPTIONS( MODEL_TYPE = 'ARIMA_PLUS',

TIME_SERIES_TIMESTAMP_COL = 'conv_date',

TIME_SERIES_DATA_COL = 'conversions',

HOLIDAY_REGION = 'NL' ) AS

SELECT conv_date, conversions

FROM `project.aggregates.conversions`

WHERE conv_date BETWEEN DATE('2019-01-01')

AND DATE('2021-04-01')

ORDER BY conv_date ASC

Zo eenvoudig is de basis opzet voor het genereren van het model. Minder dan 30 regels code. Als het model gegenereerd is, kun je de forecast genereren. In onderstaande geval betreft dit een forecast van 30 dagen. Het model produceert ook een onderste en bovenste confidence level. Een confidence level van 0,9 voorspelt de onder- en bovenwaarden waarvan 90% zeker is dat de werkelijke waarde daarbinnen zal vallen.

SELECT * FROM

ML.FORECAST( MODEL `project.models.tseries`,

STRUCT(7 AS horizon, 0.90 AS confidence_level) )

Zo’n forecast kan er dan als volgt uitzien.

ARIMA forecast

Toelichting Forecast grafiek

De gele en grijze lijn zijn respectievelijk de onderste en bovenste confidence level. De rode lijn is de forecast. De blauwe lijn is het reële aantal conversies. We hebben een forecast gedaan over een periode in het verleden zodat we konden controleren hoe goed de voorspelling was. In dit geval blijft het daadwerkelijke aantal conversies in alle gevallen binnen de onderste en bovenste confidence level lijnen.

Anomaly detection

Je zou zo’n forecast regelmatig updaten om zo’n accuraat mogelijke voorspelling te hebben. Vervolgens zou je hetzelfde model kunnen gebruiken voor een “anomaly detection”. Hierbij doet het model een voorspelling of de daadwerkelijk behaalde waardes dusdanig afwijken van de voorspelling dat “er iets aan de hand is”.

SELECT * FROM

ML.DETECT_ANOMALIES(

MODEL `project.models.timeserie`,

STRUCT(0.9 AS anomaly_prob_threshold),

TABLE `project.aggregates.conversions')

De tabel die terugkomt bevat een kolom “is_anomaly”. Regels die de waarde “true” bevatten wijken dusdanig af dat ze aandacht behoeven.

Veel meer Machine Learning Algoritmes

Bovenstaande stappen geven een beeld wat nodig is om je eerste stappen te zetten met gebruik van ML algoritmes in combinatie met je GA4 data. Er zijn veel meer algoritmes beschikbaar in BigQuery zie: https://cloud.google.com/bigquery-ml/docs/introduction

Upgraden naar Google Analytics 4? De voor- en nadelen

Een half jaar nadat de nieuwe versie van Google Analytics uit bèta is, valt het op dat nog betrekkelijk weinig bedrijven verder zijn dan...

Lees hier verder