Arbeta med multivariata tidsserieprognoser | Qlik CloudHjälp
Gå till huvudinnehåll Gå till ytterligare innehåll

Arbeta med multivariata tidsserieprognoser

Med Qlik Predict kan du träna maskininlärningsmodeller för att göra prognoser för tidsspecifika mätvärden. Med hjälp av neurala nätverksbaserade metoder lär sig och förutsäger modeller komplexa mönster som involverar tidsspecifika associationer, grupperade måldata, historiska funktioner och kända framtida variabler. För att skapa en tidsserieprognos förbereder du en träningsdatauppsättning, använder den i ett tidsserieexperiment, distribuerar en modell och skapar sedan tillämpningsdatauppsättningar som du kan använda för att generera förutsägelser.

Komponenter i ett tidsserieproblem

Med tidsserieprognoser är målet att förutsäga målvärden för specifika datum i framtiden. Du kanske till exempel vill förutsäga försäljningen för nästa vecka, månad eller kvartal.

När du utvecklar ditt tidsserieproblem definierar du följande komponenter:

  • Mål och grupper

  • Datumindex

  • Prognoshorisont

  • Kovariater

Anteckning om informationDetta ramverk beskriver hur man definierar en maskininlärningsfråga för tidsserieprognosproblem. För att definiera maskininlärningsfrågor för klassificerings- och regressionsproblem, se Definiera frågor för maskininlärning.

Förenklad illustration som beskriver komponenterna i ett tidsserieprognosproblem i Qlik Predict.

Mål

Precis som med andra experimenttyper är målet den kolumn för vilken du vill att modellen ska förutsäga framtida värden. För tidsserieexperiment måste målet innehålla numeriska data – till exempel försäljning eller lager.

Om du använder grupper i tidsserieprognosen kommer modeller att förutsäga ett målvärde per grupp och tidssteg i prognosfönstret. Om du inte använder grupper kommer dina tränade modeller att förutsäga ett målvärde för varje tidssteg i prognosfönstret.

Datumindex

Datumindexet spårar tidsseriemätvärdena över ett kontinuerligt tidsintervall (tidssteg). Du måste bestämma dig för ditt tidssteg i ett tidigt skede: hur ofta behöver du förutsäga framtida värden?

Specifikt är datumindexet en kolumn som visas i dina tränings- och tillämpningsdatauppsättningar för tidsserieproblem. Datumindexet bestämmer strukturen för båda dessa tillämpningsdatauppsättningar – varje rad representerar ett steg i tiden (eller, med grupper, ett steg i tiden för varje unik gruppering).

När du lägger till din träningsdatauppsättning i ett tidsserieexperiment identifieras möjliga datumindexkolumner automatiskt och presenteras för dig som Insikter på kolumnnivå. Du kan identifiera dem från insikten Möjligt datumindex i schemavyn.

Grupper

Grupper är funktioner som innehåller kategorisk information för vilken du vill generera förutsägelser separat. Klassiska exempel på grupper inkluderar butiksnummer och produkt, som kunde ha använts för att organisera data för ett mål som försäljning. Genom att välja butiksnummer och produkttyp som grupper kommer dina tidsseriemodeller att ge förutsägelser för varje enskilt värde över dessa kolumner. Till exempel, med ett mål för försäljning, om du har tre butiksnummer – 1, 2 och 3 – och två produkttyper – livsmedel och färskvaror – kommer din modell att generera försäljningsförutsägelser för varje unik kombination av dessa värden.

Du bör införliva grupper i ditt tidsserieproblem om du har data och behöver individuella förutsägelser per kategori. En annan fördel med grupper är att modeller kan lära sig globalt och bättre förstå de mönster som finns mellan de olika grupperingar du definierar.

Du kan konfigurera vilka grupper som ska användas för varje experimentversion. Om du inte anger grupper men grupper identifieras i din träningsdatauppsättning kommer träningen att använda grupper.

Grupper identifieras av dubblettvärden i datumindexkolumnen – till exempel, för datumet 2025-01-14 har du två poster: en för butik A och den andra för butik B.

Varje grupp i ett tidsserieexperiment – inklusive enbart målet – anses vara separata tidsserier inom din datauppsättning. Se Vad är en tidsserie?.

Primära och sekundära grupper

För tidsserieproblem med två gruppkolumner är en grupp den primära gruppen och den andra är den sekundära gruppen. För exempel, se Förbereda en träningsdatauppsättning, Exempel på träningsdatauppsättning – två grupper och Exempel på tillämpningsdatauppsättning – två grupper.

Den primära grupperingen definierar oberoende tidsserier. Till exempel blir varje butik sin egen separata tidsserie, vilket gör att modellen kan lära sig olika beteenden och mönster i olika butiker.

Den sekundära grupperingen behandlas annorlunda. Istället för att skapa helt separata serier pivoterar systemet dessa värden till ytterligare funktioner (kovariater), vilket gör att relaterade underserier kan ge kontextuell information till varandra.

Du behöver i allmänhet inte veta vilken grupp som är den primära och vilken som är den sekundära, även om du valfritt kan välja en primär grupp i ditt experiment. Vissa överväganden gäller för att förutsäga med distribuerade tidsseriemodeller – se Förbereda en tillämpningsdatauppsättning.

Anteckning om information

Alla primära grupper bör dela samma sekundära grupper. Till exempel, om butiker är primära grupper och produkter är sekundära grupper, bör varje butik innehålla samma uppsättning produkter. Saknade sekundära grupper skulle leda till inkonsekventa funktionsdimensioner över tidsserier.

Om du förväntar dig att sekundära gruppvärden inte stämmer överens med primära gruppvärden vid förutsägelsetillfället, är ett möjligt tillvägagångssätt att kombinera de ursprungliga primära och sekundära gruppvärdena till en ny grupperingskolumn och använda den som den primära gruppen när du tränar om modellen. I denna konfiguration är modellen inte längre beroende av sekundära grupper, men korrelerad information mellan grupper kan minska.

Prognoshorisont

Prognoshorisonten anger hur långt in i framtiden du vill göra prognoser. Prognoshorisonten består av prognosfönstret (antalet tidssteg för vilka du behöver förutsägelser) och prognosgapet (ett valfritt antal tidssteg efter dina historiska data för vilka du inte vill ha förutsägelser).

Du ställer in prognosfönstret och gapstorleken när du konfigurerar en experimentversion. Dessa värden används både under modellträning och när du genererar förutsägelser från modeller som distribuerats som ML-distributioner.

Prognosfönstret är antalet tidssteg för vilka du vill förutsäga in i framtiden. Till exempel, om ditt tidssteg är en dag och du vill göra en prognos för försäljningen för de kommande två veckorna, skulle du ställa in ditt prognosfönster på 14.

Prognosgapet är den tid i framtiden för vilken du inte kräver förutsägelser. Att ställa in ett prognosgap är valfritt, eftersom du kanske eller kanske inte behöver ett. Prognosgapet börjar i slutet av de registrerade historiska träningsdata du har angett. Prognosfönstret börjar där prognosgapet slutar.

Till exempel kanske du vill förutsäga framtida försäljning, men du är bara intresserad av framtida försäljning för datum senare än en vecka efter slutet av dina indata. I det här fallet, med ett tidssteg på dagar, kan du ställa in din prognosgapstorlek på sju tidssteg.

Ditt valda prognosfönster, utöver hur mycket träningsdata du har, begränsar hur långt in i framtiden du kan göra prognoser. För mer information, se Maximalt prognosfönster.

Kovariater

I tidsserieproblem kallas funktioner ofta för kovariater. I likhet med andra maskininlärningsproblem är kovariater de andra variabler som du misstänker har ett inflytande på målets utfall. Varje kovariat representeras som en enda kolumn i din träningsdatauppsättning.

Inom tidsserieprognoser finns det flera typer av kovariater och de har några viktiga skillnader:

  • Statiska kovariater: Kolumner som inte varierar under en tidsserie. Statiska kovariater är tillämpliga i tidsserieexperiment där grupper används. Anta till exempel att du har grupper för Produkt och Butiksnummer, och det finns en funktion Standardrabatt. Om Produkt A i Butik 1 har en standardrabatt på 10 % och Produkt B i Butik 2 har en standardrabatt på 20 %, skulle Standardrabatt vara en statisk kovariat. Det vill säga, den varierar inte inom data för den grupp inom vilken den visas.

    Statiska kovariater upptäcks automatiskt från historiska funktioner som du inkluderar i experimentet. Du behöver inte ange vilka funktioner som är statiska kovariater.

  • Tidigare kovariater: Tidsberoende variabler som endast är tillgängliga i historiska data och som varierar över dessa data. Tidigare kovariater upptäcks automatiskt från historiska funktioner som du inkluderar i experimentet. Du behöver inte uttryckligen ange vilka funktioner som är tidigare kovariater.

  • Framtida kovariater: Framtida kovariater, även kända som framtida funktioner, är tidsberoende variabler för vilka du kommer att känna till de framtida värdena inom prognoshorisonten. När du använder framtida kovariater i träning måste du ange dem som framtida funktioner i träningskonfigurationen.

Framtida funktioner

Med framtida funktioner kan du förse dina modeller med ytterligare data om framtida information som du redan känner till eller rimligen kan förvänta dig. I synnerhet har du tillgång till framtida värden för denna funktion som spänner över din valda prognoshorisont. När du definierar framtida funktioner måste du tillhandahålla både historiska och framtida data.

Till exempel, för en modell som förutsäger mätvärden som kan påverkas av framtida rabatter som erbjuds av en butik, kan du inkludera de historiskt observerade rabatterna, liksom rabatterna för framtida tidsperioder inom prognosfönstret. Andra exempel på framtida funktioner kan vara väder- eller kalenderinformation.

Andra viktiga koncept

Detta avsnitt beskriver koncept som är relevanta för ditt tidsserieproblem, men som du inte konfigurerar direkt i ett experiment eller en ML-distribution. Dessa är egenskaper som definieras av dina data eller av andra egenskaper som du konfigurerar för modellen.

Tidssteg

Tidssteget definieras av din träningsdatauppsättning och är viktigt för både träning och förutsägelser.

I din träningsdatauppsättning är tidssteget det intervall med vilket data i ditt datumindex registreras. Till exempel kan tidssteget vara dagligen, varje timme, varje minut eller varje sekund. Det minsta tidssteget som upptäcks är millisekunder.

Det är viktigt att vara medveten om det tidssteg som används i dina träningsdata. Andra experimentparametrar som du definierar, såsom prognosfönster och prognosgapstorlek, kommer att följa detta tidsstegsintervall.

Efter att du har distribuerat din modell måste de tillämpningsdata för vilka du vill skapa förutsägelser följa samma tidssteg som definierats i träningsdatauppsättningen.

Kvalitet

När du väljer en träningsdatauppsättning härleder systemet det tidssteg som används. Om det saknas några värden eller finns luckor i datumindexet kan kolumner som mål, grupper och kovariater ofta interpoleras automatiskt av systemet. Återkommande luckmönster orsakade av saknade värden hanteras automatiskt och introducerar inte i sig ett nytt tidssteg. Men om dina data innehåller verkligt blandade registreringsintervall till den grad att olika inbyggda tidssteg upptäcks, måste data åtgärdas först. Till exempel, om du har flera månader av data som registrerats en gång dagligen, men det finns ett delavsnitt där data konsekvent registreras på veckobasis, kan datauppsättningen inte användas eftersom flera tidssteg kommer att upptäckas.

Tillämpningsfönster

Tillämpningsfönstret, eller tillbakablicksperioden, är den del av träningsdata som algoritmen kan använda för att ge förutsägelserna för ditt angivna prognosfönster.

Tillämpningsfönstret beräknas och ställs in av systemet. Det mäts i tidssteg. Tillämpningsfönstret definieras av vad du ställer in som prognosfönster och gap (prognoshorisont). Din tillämpningsfönsterstorlek visas i experimentkonfigurationspanelen och Modellträningssammanfattning, efter att ha kört minst en experimentversion. Det visas också i ett ML-distributions Modellschema när du skapar eller redigerar en batchförutsägelsekonfiguration.

Tillämpningsfönstret identifieras automatiskt från din träningskonfiguration. För att generera förutsägelser för ett givet prognosfönster måste du tillhandahålla historiska data som täcker åtminstone ditt tillämpningsfönster. Detta tillhandahålls i din tillämpningsdatauppsättning. Se Förbereda en tillämpningsdatauppsättning.

Maximalt prognosfönster

Det maximala prognosfönstret uppskattas när du konfigurerar ditt tidsserieexperiment. Efter att du har kört en version av träningen bekräftas det maximala prognosfönstret med säkerhet. Det maximala prognosfönstret visas för dig som Uppskattad maximal prognos eller Maximal prognos under Baserat på dina data, när du öppnar Mål och experimenttyp i experimentkonfigurationspanelen. Det maximala prognosfönstret är det maximala antalet tidssteg för vilka du kan generera prognoser, givet ditt valda prognosfönster, hur mycket historiska data du har tillhandahållit och den minsta urvalsstorlek som förväntas av systemet. Ju mer historiska data du tillhandahåller, desto längre fram i tiden kommer du att kunna förutsäga. För att generera tillförlitliga förutsägelser är det dock viktigt att välja ett rimligt prognosfönster.

Det maximala prognosfönstret kan vara upp till 180 tidssteg.

Prognosens bryttid

Prognosens bryttid är särskilt viktig när du definierar din tillämpningsdatauppsättning under förutsägelser. Prognosens bryttid är det sista datumet i ditt urval för vilket du har ett målvärde. I grund och botten är datum efter denna bryttid de datum för vilka du vill generera förutsägelser.

Vad är en tidsserie?

I Qlik Predict-tidsserieprognoser anses varje grupp – inklusive enbart målet – vara separata tidsserier inom träningsdatauppsättningen. Anta till exempel att din träningsdatauppsättning innehåller försäljningsmätvärden. Dessa försäljningsmätvärden definieras för varje butik och produkttyp. Med kolumnerna Butik och Produkttyp definierade som grupper finns det tre tidsserier i träningsdatauppsättningen.

Förbereda en träningsdatauppsättning

För multivariata tidsserieprognoser måste din träningsdatauppsättning innehålla följande kolumner:

  • Datumindex

  • Målkolumn

  • Gruppkolumner (valfritt)

  • Funktionskolumner (valfritt – utan funktioner tränar du en univariat prognosmodell)

Illustrationer som visar de nödvändiga kolumnerna och data för tidsserieträningsdatauppsättningar. Scenarier utan grupper, en grupp och två grupper beskrivs.

Linjärt diagram som beskriver de nödvändiga komponenterna och tidslinjen för en träningsdatauppsättning för en tidsserieprognosmodell.

Datumindexkolumn

Du behöver ett datumindex som innehåller fullständiga datum eller tidsstämplar. Denna kolumn är det kronologiska index längs vilket mål- och kovariatmätvärdena spåras. Datumindexkolumnen organiserar de tidsbaserade mätningarna sekventiellt längs ett konsekvent tidsintervall (tidssteget).

Datumindexkolumnen är organiserad enligt följande, beroende på om du använder grupper eller inte:

  • Inga grupper: En enda post för varje tidssteg. Till exempel, med en daglig prognos representerar varje rad en enda dag.

  • Med grupper: En eller flera dubblettposter för varje tidssteg beroende på vilka grupper som används.

Med en multivariat träningsdatauppsättning kommer det att finnas en eller flera dubblettposter för varje tidssteg beroende på vilka grupper som används. Det finns flexibilitet i det tidssteg du använder – du kan till exempel registrera datum en eller flera gånger på daglig, veckovis eller månatlig basis, och så vidare.

Saknade eller inkonsekvent registrerade värden i denna kolumn är ibland acceptabla, om de kan interpoleras, och återkommande luckmönster för saknade värden hanteras automatiskt. Dina datumindexvärden kan dock inte innehålla flera olika inbyggda tidssteg. Till exempel, om intervallet bestäms till en gång dagligen, men vid någon tidpunkt identifieras ett intervall på två gånger dagligen, kommer ett fel att inträffa under träningen.

Målkolumn och gruppkolumner

Din datauppsättning måste ha en målkolumn som innehåller ett numeriskt mätvärde som du vill göra en prognos för. Ett vanligt exempel är försäljning.

Om du använder grupper tillhandahåller du historiska målvärden för varje möjligt värde i grupper som du lägger till. Till exempel, om ditt mål är Försäljning och du lägger till en grupp Butiksnummer som innehåller data för Butik A och Butik B, måste din datauppsättning inkludera två separata poster för varje tidssteg: en med försäljningsvärdet för Butik A och den andra med försäljningsvärdet för Butik B.

Anteckning om informationOm du har två grupper, se till att alla primära grupper delar samma sekundära grupper. Se Primära och sekundära grupper.

Funktionskolumner

Du kan träna en tidsseriemodell utan några kovariater. Men om du inkluderar kovariater, tillhandahåll en kolumn i datauppsättningen för varje funktion. Funktionsdata bör i allmänhet vara historiskt registrerade data om du inte lägger till framtida funktioner. Framtida funktionskolumner kan innehålla både historiska och framtida data. Du bör endast inkludera framtida funktionsdata i träningsdatauppsättningen om du är säker på att de framtida värdena för dessa kolumner kommer att vara kända när du skapar förutsägelser.

Håll reda på vilka funktioner du kommer att använda som framtida funktioner, eftersom du måste välja dem som sådana i träningskonfigurationen.

Datavolym

Din datauppsättning måste innehålla tillräckligt med poster – datavolymen bestäms av det tidsintervall som delas över alla grupper. Endast data från denna överlappande period används för att träna experimentet.

Volymen av dina historiska data spelar en roll för att avgöra hur långt in i framtiden du kan förutsäga. Ditt önskade prognosfönster påverkar också hur mycket historiska data du behöver.

Generellt sett är mer historiska data bättre än mindre. Data måste dock vara av god kvalitet och fånga de önskade trenderna. Om data ger irrelevant information eller innehåller felaktigheter är det inte till hjälp att ha dem i modellen. Överväg en balans mellan att optimera volymen och att bibehålla kvalitet och relevans.

Exempel

Förbereda en tillämpningsdatauppsättning

När du har distribuerat en tidsseriemodell måste du utveckla en tillämpningsdatauppsättning för vilken förutsägelser kommer att göras.

Tillämpningsdatauppsättning – Krav och validering

För tidsseriemodeller behöver tillämpningsdatauppsättningen:

  • Kolumner och kolumnrubriker för alla kolumner som ingår i träningsdatasetet.

  • Samma tidssteg som träningsdatasetet.

  • Alla grupper och gruppvärden som fanns i träningsdatasetet.

    Anteckning om informationOm nya gruppvärden finns i tillämpningsdatasetet (som inte fanns i träningsdata) genereras inga prediktioner för dessa rader. Om prediktioner krävs för dessa nya gruppvärden rekommenderas det att du tränar om modellen med träningsdata som inkluderar dem.
    Anteckning om information

    Vid prediktionstillfället eller i tillämpningsdatasetet hanteras saknade gruppvärden på följande sätt:

    • Det är tillåtet att värden för primärgrupp – som modellen tränas på – saknas.

    • Saknade värden för sekundärgrupp är inte tillåtna. Prediktionen misslyckas med ett fel.

    Det är bäst att samla in och tillhandahålla alla data för sekundärgrupper under prediktionen när det är möjligt. Men om sekundärgrupper förväntas saknas huvudsakligen vid prediktionstillfället är en möjlig lösning att helt undvika att använda sekundärgrupper.

    Istället kan du kombinera de ursprungliga värdena för primär- och sekundärgrupp till en enda ny grupperingskolumn, använda den som den nya primärgruppen och träna om modellen baserat på den strukturen. I den här konfigurationen är den nya modellen endast beroende av de nyligen introducerade primärgrupperna.

    Kompromissen är att du kan förlora en del av den korrelerade informationen mellan grupper, eftersom de nu kommer att behandlas som helt separata tidsserier snarare än relaterade underserier som ger kontextuell information till varandra.

  • Lika många eller fler historiska dataposter (per mål och grupp) före brytpunkten för prognosen som antalet poster i tillämpningsfönstret för modellen. Dessa måste vara fullständiga poster som innehåller det historiskt observerade datumet eller tidsstämpeln, mål och kovariatvärden. Tillämpningsfönstret bestäms av prognosfönstret och gapet som konfigurerades under träningen – ju längre in i framtiden du behöver göra prediktioner, desto mer historiska data behöver du i ditt tillämpningsdataset för att köra prediktioner.

  • Poster för alla framtida tidssteg i din prognoshorisont. För dessa framtida poster ska du endast inkludera värdena för datumindexkolumnen, samt eventuella framtida funktioner. Lämna värdena för de andra kolumnerna tomma.

Anteckning om tipsDe flesta kraven på historiska data för din tillämpningsdatauppsättning är till för att ange minsta acceptabla datavolymer. Du kan alltid tillhandahålla mer än vad som behövs. När modellen genererar prediktioner används endast de poster som behövs för att täcka tillämpningsfönstret.

Illustrationer som visar de kolumner och data som krävs för tillämpningsdatauppsättningar som används för att generera prediktioner från tidsserieprognosmodeller. Scenarier utan grupper, en grupp och två grupper beskrivs.

Linjärt diagram som beskriver de nödvändiga komponenterna och tidslinjen för en tillämpningsdatauppsättning som används för att generera prediktioner med en tidsserieprognosmodell.

Exempel

Var den här sidan till hjälp för dig?

Om du stöter på några problem med den här sidan eller innehållet på den, t.ex. ett stavfel, ett saknat steg eller ett tekniskt fel – meddela oss!