Hur man modellerar restfel för att korrigera prognoser för tidsserier med Python

Hur man modellerar restfel för att korrigera prognoser för tidsserier med Python

De återstående felen från prognoser på en tidsserie ger en annan informationskälla som vi kan modellera.

Restfel i sig utgör en tidsserie som kan ha tidsstruktur. En enkel autoregressionsmodell av denna struktur kan användas för att förutsäga prognosfelet, vilket i sin tur kan användas för att korrigera prognoser. Denna typ av modell kallas en glidande medelmodell, med samma namn men väldigt annorlunda än glidande medelvärde.

I den här handledningen kommer du att upptäcka hur man modellerar en restfel-tidsserie och använder den för att korrigera förutsägelser med Python.

Efter att ha slutfört denna handledning vet du:

  • Om hur man modellerar kvarvarande feltidsserier med hjälp av en autoregressiv modell.
  • Hur man utvecklar och utvärderar en modell av kvarvarande feltidsserier.
  • Hur man använder en modell av kvarvarande fel för att korrigera förutsägelser och förbättra prognosfärdigheter.

Starta ditt projekt med min nya bok Time Series Forecasting With Python, inklusive steg-för-steg-självstudier och den Python-källkod filer för alla exempel.

Låt oss börja.

  • Uppdaterad jan / 2017: Förbättrade några av kodexemplen för att bli mer kompletta.
  • Uppdaterad apr / 2019: Uppdaterade länken till dataset.
  • Uppdaterad augusti / 2019: Uppdaterad dataladdning för att använda nytt API.
  • Uppdaterad apr / 2020: Ändrat AR till AutoReg på grund av API-ändring.

Modell för återstående fel

Skillnaden mellan vad som förväntades och vad som förutses kallas restfelet.

Det beräknas som:

Precis som själva ingångsobservationerna kan de återstående felen från en tidsserie ha tidsstruktur som trender, förspänning och säsongssäkerhet.

Eventuell tidsstruktur i tidsserien för återstående prognosfel är användbar som diagnostik eftersom den föreslår information som kan införlivas i den prediktiva modellen. En ideal modell skulle inte lämna någon struktur i restfelet, bara slumpmässiga fluktuationer som inte kan modelleras.

Struktur i restfelet kan också modelleras direkt. Det kan finnas komplexa signaler i det kvarvarande felet som är svåra att direkt integrera i modellen. Istället kan du skapa en modell av restfeltserien och förutsäga det förväntade felet för din modell.

Det förutspådda felet kan sedan subtraheras från modellförutsägelsen och i sin tur ge ytterligare prestanda.

En enkel och effektiv modell för kvarvarande fel är en autoregression. Det är här ett visst antal fördröjda felvärden används för att förutsäga felet i nästa steg. Dessa fördröjningsfel kombineras i en linjär regressionsmodell, ungefär som en autoregressionsmodell för observationerna av direkta tidsserier.

En autoregression av restfel-tidsserien kallas en Moving Average (MA) -modell. Detta är förvirrande eftersom det inte har något att göra med utjämningsprocessen för glidande medelvärde. Tänk på det som syskon till den autoregressiva processen (AR), förutom vid kvarvarande restfel snarare än eftersläpna råa observationer.

I den här handledningen kommer vi att utveckla en autoregressionsmodell för restfeltserierna.

Innan vi dyker in, låt oss titta på en univariat dataset för vilken vi kommer att utveckla en modell.

Sluta lära sig tidsserieprognoser långsam väg!

Ta min gratis 7-dagars e-postkurs och upptäck hur du kommer igång (med exempelkod).

Klicka för att registrera dig och få en gratis PDF-e-bokversion av kursen.

Starta din GRATIS minikurs nu!

Dataset för kvinnliga födelser dagligen

Denna dataset beskriver antalet dagliga kvinnliga födda i Kalifornien 1959.

Enheterna är ett antal och det finns 365 observationer. Källan till datasetet krediteras Newton (1988).

Ladda ner datamängden och placera den i din nuvarande arbetskatalog med filnamnet “daglig-totalt-kvinnlig-födelse. csv“.

Nedan följer ett exempel på hur du laddar datauppsättningen Daily Female Births från CSV.

Att köra exemplet skriver ut de första 5 raderna i den laddade filen.

Datasetet visas också i en linjediagram över observationer över tiden.

Daglig total kvinnlig födelse tomt

Daglig total kvinnlig födelse tomt

Vi kan se att det inte finns någon uppenbar trend eller säsongsmässighet. Datauppsättningen ser stillastående ut, vilket är en förväntan att använda en autoregressionsmodell.

Persistensprognosmodell

Den enklaste prognosen vi kan göra är att förutsäga att det som hände i föregående tidssteg kommer att vara detsamma som vad som kommer att hända i nästa tidssteg.

Detta kallas ”naiv prognos” eller modellen för uthållighetsprognos. Denna modell ger förutsägelser från vilka vi kan beräkna restfel-tidsserierna. Alternativt kan vi utveckla en autoregressionsmodell av tidsserien och använda den som vår modell. Vi kommer inte att utveckla en autoregressionsmodell i detta fall för korthet och för att fokusera på modellen för kvarvarande fel.

Vi kan implementera uthållighetsmodellen i Python.

Efter att datauppsättningen har laddats formuleras den som ett övervakat inlärningsproblem. En försenad version av datasetet skapas där föregående tidssteg (t-1) används som inmatningsvariabel och nästa tidssteg (t + 1) tas som utdatavariabel.

Därefter delas datauppsättningen i tränings- och testuppsättningar. Totalt 66% av uppgifterna sparas för träning och de återstående 34% förvaras för testuppsättningen. Ingen utbildning krävs för uthållighetsmodellen; detta är bara ett vanligt tillvägagångssätt.

Efter att ha delats separeras tåget och testuppsättningarna i sina in- och utgångskomponenter.

Persistensmodellen tillämpas genom att förutsäga utgångsvärdet (y) som en kopia av inmatningsvärdet (x).

De återstående felen beräknas sedan som skillnaden mellan det förväntade resultatet (retlig) och förutsägelsen (förutsägelser).

Exemplet sammanställer allt detta och ger oss en uppsättning återstående prognosfel som vi kan utforska den här självstudien.

Exemplet skriver sedan ut RMSE och de första 5 raderna av de prognostiserade restfelen.

Vi har nu en kvarvarande feltidsserie som vi kan modellera.

Autoregression av restfel

Vi kan modellera restfelstidserierna med hjälp av en autoregressionsmodell.

Detta är en linjär regressionsmodell som skapar en viktad linjär summa av kvarvarande kvarvarande feltermer. Till exempel:

Vi kan använda den autoregressionsmodellen (AR) som tillhandahålls av statsmodelsbiblioteket.

Baserat på uthållighetsmodellen i föregående avsnitt kan vi först träna modellen på de kvarvarande felen beräknade på träningsdataset. Detta kräver att vi gör förutsägelseförutsägelser för varje observation i träningsdatasetet och sedan skapar AR-modellen enligt följande.

Du kan också vara intresserad av