Time series analysis in agricultural production
Miből áll egy idősor, mihez mérjük az előrejelzést, és miért nem szabad véletlenül szétvágni.
The semester
Trend, szezon, maradék — és amit a maradék elárul
A sorrend maga az adat. Ha felcserélhető, nem idősor.
Egy szokásos adathalmazban a sorok felcserélhetők: mindegy, melyik tábla áll elöl. Az idősorban nem. Ha megkevered a hónapokat, elveszik minden információ, ami a héten érdekel minket. Ebből két dolog következik. Egy: a véletlen szétvágás értelmetlen, mert a jövőből tanulnál a múltra. Kettő: a megfigyelések nem függetlenek, tehát a szokásos hibaformulák túl szűk intervallumot adnak.
Tanpélda: havi NDVI négy vegetációs időszakra, ugyanazon a táblán.
Ez egy fenológiai görbe: negyvennyolc hónap NDVI-je ugyanarról a tábláról. Nézd meg, mit lát a szemed rajta három másodperc alatt. Ismétlődést lát — minden évben ugyanaz a hullám. És lát egy lassú emelkedést: a negyedik év csúcsa magasabb, mint az elsőé. Ez a kettő a szezon és a trend. A harmadik összetevőt, a maradékot, a szem nem látja — ahhoz ki kell vonni a másik kettőt.
beruházási döntés
ütemezés
piaci, több éves
ha szerkezete van, a modell hiányos
A felbontás nem öncél. Mindegyik összetevőhöz más döntés tartozik. A trend a beruházásé: érdemes-e talajjavításba kezdeni. A szezon az ütemezésé: mikor kell gépet és embert kiállítani. A ciklus a több évet átfogó ingadozás, jellemzően piaci. A maradék pedig a modellé: ha szerkezete van, akkor még kimaradt valami.
Additív vagy multiplikatív — és a logaritmus a kettő között vált.
Írjuk fel, amit az előző dia felsorolt. Additív felbontásnál a három összetevő ÖSSZEADÓDIK: a megfigyelt érték a trend, a szezon és a maradék összege. Multiplikatívnál összeszorzódik — ez akkor kell, ha a szezon amplitúdója a szinttel együtt nő, ami hozamsoron gyakori. A harmadik sor a trükk: a logaritmus a szorzatot összeggé teszi, tehát a multiplikatív eset visszavezethető az additívra. Ezért van az, hogy a gyakorlatban majdnem mindig a logaritmált soron dolgozunk.
A vastag vonal a mozgóátlag. Az ablak hossza pontosan egy szezon.
A legegyszerűbb felbontás egy szezonhossznyi mozgóátlag. Tizenkét hónapra átlagolva a szezon kiesik — mert egy teljes szezon átlaga nem függ attól, hol vagyunk benne —, és ami marad, az a trend. Itt jól látszik: nulla egész negyvenegyről nulla egész ötvenhétre nő a négy év alatt. A görbe két végén hiányzik: az átlaghoz mindkét irányban fél szezon kell, és a sor szélén nincs.
Középre igazított mozgóátlag. Páros ablakhoz a 2×m alak kell, különben fél lépéssel elcsúszik.
A trendet az előző dián mozgóátlaggal emeltük ki. Itt a képlet. Páratlan ablakhossznál egyszerű: a t körüli m darab érték átlaga. Páros ablaknál — és a havi adat tizenkettes szezonja páros — ez nem középre esik, ezért kell a kettő-kereszt-m alak, ami két egymás melletti ablak átlagát veszi. A második sor a fontosabb: a KÉSLELTETÉS. Ha a mozgóátlagot nem középre, hanem az ablak végére teszed — márpedig valós időben csak azt teheted —, akkor a simított görbe m mínusz egy per kettő lépéssel le van maradva. Ez nem hiba: ez az ára.
A cella betöltése…
Ez a cella azt méri meg, mennyibe kerül egy rosszul megválasztott szezonhossz. A helyes hosszal a maradék szórása a legkisebb, és a maradékban nem marad szezonális jel. Rossz hosszal a szezon egy része a trendbe kenődik, egy másik része a maradékban marad — és a maradék autokorrelációja azonnal elárulja. Futtasd le a saját gépeden is: ugyanezek a számok jönnek ki.
Az ábra betöltése…
És itt a mérés képben, mert a szám önmagában nem mondja el. A felső sorban a helyes, tizenkettes szezonhosszal felbontott sor: a trend sima, a szezon tiszta hullám, a maradék pedig szerkezet nélküli zaj — pontosan ez a jó felbontás ismérve. Az alsó sorban ugyanaz tízes szezonhosszal. Nézd meg a maradékot: NEM zaj, hanem hullámzik. Ez az, ami elárulja a hibát — nem a trend és nem a szezon, hanem a maradék szerkezete.
Egy havi bontású hozamsort tizenkettes szezonhosszal bontasz fel, és a maradék ábráján tizenkét hónaponként visszatérő kiugrásokat látsz. Mit jelent ez?
Egy havi bontású hozamsort tizenkettes szezonhosszal bontasz fel, és a maradék ábráján tizenkét hónaponként visszatérő kiugrásokat látsz. Mit jelent ez?
Stacionárius: az átlag, a szórás és az autokorreláció időben állandó. A legtöbb agrár sor nem az.
Egy sor akkor stacionárius, ha a statisztikai tulajdonságai nem függnek attól, mikor nézzük: az átlag, a szórás és az autokorreláció ugyanaz az első és az utolsó évben. A klasszikus modellek nagy része ezt feltételezi. Az agrár idősor viszont ritkán ilyen: van benne technológiai trend, a fajtaváltás lépcsőt csinál, és a szórás gyakran együtt nő a szinttel. A differenciálás a trendet veszi ki, a logaritmus a növekvő szórást.
Három feltétel, nem egy. A harmadik a lényeg: a kovariancia csak a TÁVOLSÁGTÓL függ.
A stacionaritásnak van pontos meghatározása, és érdemes megnézni, mert három feltételt mond, nem egyet. Az elsőt gyakran idézik: a várható érték nem függ az időtől. A második a szórásra ugyanez. A harmadik a lényeg: a kovariancia CSAK a két időpont távolságától függ, a helyétől nem. Ha ez teljesül, gyengén stacionáriusnak nevezzük. Alatta a differenciálás: az egymás utáni értékek különbsége. Egy lineáris trendet egyetlen differenciálás kiüt, egy szezont pedig a szezonhosszal eltolt differencia.
A `w06-decompose` demó mérése: ugyanaz a sor, jó és rossz szezonhosszal felbontva.
A stacionaritás elvont fogalom, de van hozzá egy nagyon egyszerű, mérhető ellenőrzés. Bontsd fel a sort trendre, szezonra és maradékra — és nézd meg a maradékot. Ha jó szezonhosszal bontottad fel, a maradékban nem marad szerkezet: a tizenkettedik késleltetésnél az autokorreláció mínusz nulla egész kettőnyolchat, tehát nincs benne évi ismétlődés. Ha rossz szezonhosszal, tízzel a tizenkettő helyett, akkor nulla egész nyolcnulla-hat: a szezon ottmaradt a maradékban. És a szórása is ötszörös. A maradék tehát nem melléktermék, hanem a felbontás vizsgája.
Eltolás k-val, és megnézzük, mennyire hasonlít a sor önmagára.
Az autokorreláció azt méri, mennyire hasonlít a sor önmagára, ha k lépéssel eltoljuk. Ha a k egyenlő eggyel érték nagy, akkor a szomszédos hónapok összefüggnek. Ha a szezonhossznál van csúcs, akkor a sor évről évre emlékszik. Ez az ábra, a korrelogram, a hét legolcsóbb diagnosztikája: egyetlen pillantásból megmondja, van-e szezon, és mekkora.
Ugyanaz, mint a korreláció — de a sor önmagával, k lépéssel eltolva.
Az emlékezet mérőszáma. A képlet ugyanaz, mint a közönséges korrelációé, csak a második változó a SAJÁT sor k lépéssel eltolva — ezért van a nevezőben egyetlen szórás négyzete, nem kettő szorzata. A második rész a gyakorlati része: honnan tudod, hogy egy autokorreláció nem nulla-e csak véletlenül? A zajsáv plusz-mínusz kettő per gyök n, és ez közvetlenül a nagy számok törvényéből jön — amit az 5. hét elején megmértünk.
Tanpélda: ugyanaz a negyvennyolc hónapos sor. A zajsáv ennél a hossznál ±0,28.
Ez ugyanannak a sornak az autokorrelációja. Nulla eltolásnál egy, definíció szerint. Aztán lecsökken, hat hónapnál mínusz nulla egész ötvennyolcra megy — fél szezon eltolással a csúcs a völgyre esik, tehát ellentétes. Tizenkettőnél viszont nulla egész hatvanhat: egy teljes szezon eltolás után a sor újra önmagára hasonlít. Huszonnégynél még mindig nulla egész harminckilenc. Ez a lépcsős lecsengés a szezon aláírása.
Az ábra betöltése…
Az előző dia egyetlen korrelogramot mutatott. Itt négy van egymás alatt, és mind a négy más szerkezetet takar. Az első az AR-egy: mértani sorban csökken, és a szomszédos oszlopok hányadosából visszajön a beállított nulla egész hetvenkettő. A második az MA-egy: az első késleltetés után levágódik, a második már nulla egész nulla-nulla-hét. A harmadik szezonális: a tizenkettedik késleltetésnél ugrik ki. A negyedik fehér zaj: a legnagyobb autokorreláció nulla egész nulla-három-hat, épp a zajsáv határán. Az ábra alakja mondja meg, milyen modellcsalád jöhet szóba — ezért kell ránézni, mielőtt bármit illesztünk.
A cella betöltése…
A korrelogramot nem kell elhinni: fél perc alatt előállítod. Ez a cella ugyanazt a sort veszi, kiszámolja az autokorrelációt, és megmondja, hol a legnagyobb csúcs a nulla eltoláson kívül. Ha a saját adatodon futtatod, és nincs csúcs a feltételezett szezonhossznál, akkor a szezonhossz rossz — vagy nincs szezon.
Két független, trendes sor között a korreláció rendszerint magas — és a teszt szignifikánsnak mondja.
És most jön az, amiért mindez számít. Két idősor között akkor is nagyon magas korrelációt kapsz, ha semmi közük egymáshoz — elég, ha mindkettőben van trend. A szokásos szignifikanciateszt itt nem véd meg, mert azt független megfigyelésekre találták ki. Ez nem elméleti veszély: a következő cella megméri, milyen gyakran fordul elő.
Az ábra betöltése…
Ez a dia az előző állítás ára, megmérve. Két idősort állítunk elő, amelyeknek az égvilágon semmi közük egymáshoz — mindkettő független véletlen bolyongás. Aztán megnézzük, mit mond rájuk a korreláció. Az esetek hatvannégy százalékában nulla egész háromnál nagyobb, tizenhét százalékában nulla egész hétnél nagyobb. A korreláció átlaga nulla egész négyszázhuszonhárom. Ez nem hiba, és nem rossz adat: trendes sorokon a szintek korrelációja egyszerűen nem értelmezhető. Differenciálás után ugyanez nulla egész egy tized százalék — visszaáll a véletlen szintjére.
A cella betöltése…
Ez a cella két teljesen független bolyongást generál, és megnézi, milyen gyakran kapunk köztük szignifikáns korrelációt. A várt öt százalék helyett sokszorosát. A megoldás nem a szignifikanciaszint szigorítása, hanem az, hogy előbb kivesszük a trendet mindkét sorból, és utána nézzük meg, maradt-e összefüggés.
Ez volt a szerkezet. A következő blokkban előrejelzünk — de csak azután, hogy tudjuk, mihez mérjük.
A legolcsóbbtól a legdrágábbig, és vissza
A simítás a jelenről szól. Az előrejelzéshez a jövőre kell kivetíteni — és akkor a szezon is kell.
Az első és leggyakoribb félreértés. A mozgóátlag és az exponenciális simítás azt mondja meg, hol tart a sor most, a zajt levéve. Ez diagnózis, nem jóslat. Előrejelzéssé attól lesz, hogy a simított szintet kivetítjük előre — és ekkor derül ki, hogy a puszta szint kevés: kell hozzá trend és szezon is.
Tanpélda: a sor utolsó két éve, két különböző alfával simítva.
Az exponenciális simításnak egy paramétere van, az alfa: mennyit számít az új megfigyelés a korábbi becsléshez képest. Nézd meg, mit csinál a két véglet ugyanazon a soron. Alfa nulla egész egy: majdnem teljesen kisimítja a szezont, egy lassú hullám marad. Alfa nulla egész nyolc: követi a szezont, de láthatóan késve — a csúcsot mindig egy hónappal a valódi után éri el. Nincs jó alfa; van a feladathoz illő.
Egy rekurzív sor. Kibontva: mértani sorban csökkenő súlyok, visszafelé a múltba.
Egyetlen sor, és ebből következik minden, amit az előző dia mutatott. Az új simított érték az új megfigyelés és az előző simított érték súlyozott átlaga. Ha az alfa egy, nincs simítás: a görbe maga a sor. Ha az alfa nulla, semmi nem változik. A második sor azt mutatja, mi van, ha visszahelyettesítesz: a régebbi megfigyelések súlya MÉRTANI SORBAN csökken — innen a név. És a harmadik sor a gyakorlati fogódzó: az alfához tartozik egy hatásos ablakhossz, ezzel lehet a mozgóátlaggal összehasonlítani.
Az egyenértékűség a két simítás átlagos késleltetésének egyeztetéséből jön.
m=2 / 0,2 - 1=9hónap
Húzd a csúszkát, és nézd, mi mozdul.
egy paraméter
kettő
három, plusz a szezonhossz
több, és illeszteni is nehezebb
csapadék, hőösszeg, ár
Ez a létra úgy épül, hogy minden fok hozzátesz egy összetevőt. Az egyszerű exponenciális simítás csak a szintet viszi. A Holt-módszer hozzáveszi a trendet. A Holt–Winters a szezont is. A SARIMA ehelyett a maradék szerkezetét modellezi, és külső változót is fogad — csapadékot, hőösszeget. Minden fok több paramétert jelent, és rövid soron a több paraméter több bizonytalanság, nem több pontosság.
Egy megye húsz évnyi éves búzahozamát kaptad meg: húsz szám. Melyik módszer illik ehhez?
Egy megye húsz évnyi éves búzahozamát kaptad meg: húsz szám. Melyik módszer illik ehhez?
Naiv: a következő érték az utolsó megfigyelt. Szezonális naiv: ami egy szezonnal korábban volt.
És most a hét legfontosabb gondolata. Egy előrejelzés hibája önmagában nem mond semmit. Nulla egész nulla hét-es átlagos hiba jó vagy rossz? Nem tudod, amíg nincs mihez viszonyítani. Két viszonyítás van, mindkettő ingyen. A naiv: a következő érték legyen az utolsó megfigyelt. A szezonális naiv: legyen az, ami egy szezonnal korábban volt. Ha a modelled ezeket nem veri meg, akkor nem modell, hanem díszítés.
Tanpélda: az utolsó szezon elrejtve, a két alapvonal előrejelzése rá.
Az utolsó tizenkét hónapot elrejtettük, és a két alapvonallal jeleztük előre. A naiv egy vízszintes vonal nulla egész harmincöten: az utolsó megfigyelt érték, végig. Ez a teljes szezont elveszti. A szezonális naiv viszont a tavalyi év alakját ismétli meg, és látszik, milyen közel van — a csúcs magassága téved, az alakja nem.
Nulla paraméter, nulla illesztés. Ettől mérce, és nem modell.
A két legolcsóbb előrejelzés, felírva. A naiv azt mondja: a következő érték legyen az utolsó megfigyelt — akárhány lépésre előre. A szezonális naiv azt: legyen az egy szezonnal korábbi érték. Nézd meg, milyen kevés van bennük: nulla paraméter, nulla illesztés. És pontosan ezért mércék. Ha a modelled nem veri meg azt az eljárást, amit egy sorban le lehet írni, akkor a modell nem tud semmit, amit az adat magától ne mondana.
A naiv átlagos abszolút hibája nulla egész huszonhárom, a szezonális naivé nulla egész nulla hét. Három egész kettő-szeres különbség, és egyetlen paraméter nélkül. A MASE oszlopot nézd meg külön: ez a hibát a szezonális naiv saját, tanítómintán mért hibájához viszonyítja. A szezonális naiv MASE-je egy egész negyvenöt — vagyis a teszt szezonon rosszabbul teljesít, mint korábban. Ez nem baj, hanem információ: a sor elmozdult, és ezt egy jó modellnek követnie kell.
MAPE: a nevezőben a valódi érték — nulla közelében felrobban. MASE: a nevezőben a naiv hibája — és egy a vízválasztó.
A MAPE, a százalékos hiba, kényelmesnek látszik, mert dimenziótlan. Csakhogy a nevezőben a valódi érték áll, és ha az nulla közelébe kerül, a MAPE felrobban. Agrárban ez nem elméleti: a téli NDVI, a nulla hozamú tábla, az üres raktár mind nulla közeli. A MASE nevezője ehelyett a naiv előrejelzés hibája — az soha nem nulla egy valódi soron, és a szám jelentése is világos: egynél kisebb jobb a naivnál, egynél nagyobb rosszabb.
A MAPE a megfigyeléssel oszt, a MASE a naiv hibájával. Az egyik elszáll nulla közelében, a másik nem.
Itt a két mérőszám egymás mellett, és a különbség a nevezőben van. A MAPE a saját megfigyeléssel oszt — ha az nullához közeli, a hányados elszáll, és egyetlen ilyen pont elviheti az egész átlagot. Az idősoros MASE nevezője a SZEZONÁLIS NAIV egylépéses hibája az illesztési szakaszon: egy rögzített szám, nem pontonkénti. Ebből következik a MASE olvasata, és ez a hét egyik legfontosabb mondata: ha MASE kisebb mint egy, megverted a naivat; ha nagyobb, nem.
A `w06-forecast` demó mérése: ugyanaz a visszatesztelés, MAE-ben és MASE-ben.
Itt látszik, miért nem mindegy, melyik számot írod le. A MAE tonna per hektárban van: ez a naivnál nulla egész huszonhét, Holt–Wintersnél nulla egész nulla-három-öt. Csakhogy ez a szám a sor nagyságrendjétől függ — egy másik táblán, másik terményen ugyanez a modell más MAE-t ad, és a kettőt nem lehet összehasonlítani. A MASE ugyanezt a szezonális naiv alapvonalhoz méri, és ezért mértékegység nélküli: egy alatt jobb az alapvonalnál, egy fölött rosszabb. A naiv négy egész ötvennégy, a Holt–Winters nulla egész ötvennyolc. Ez a szám átvihető másik sorra is.
A cella betöltése…
Ez a cella végigfuttatja az összehasonlítást, és mellé teszi azt, amiről a következő blokk szól: ugyanazt a becslőt kétféle értékeléssel. A különbség nem árnyalatnyi. Amíg ezt nem láttad a saját gépeden, addig könnyű elhinni, hogy a szétvágás módja részletkérdés.
Egy jelentésben az áll, hogy a modell átlagos abszolút hibája nulla egész nulla nyolc tonna hektáronként. Mit kérdezel vissza elsőként?
Egy jelentésben az áll, hogy a modell átlagos abszolút hibája nulla egész nulla nyolc tonna hektáronként. Mit kérdezel vissza elsőként?
autoregresszív és mozgóátlag-tagok differenciált soron; a három rend az ACF és a PACF olvasásából indul
ARIMA szezonális tagokkal; a szezonhossz a modell BEMENETE, nem tanulja
a becslés az egy szezonnal korábbi érték; nulla paraméter, és szezonális soron ez az igazi mérce
A módszerek megvannak, az alapvonal megvan. Ami hátra van: hogyan mérjük meg becsületesen.
A mérce a protokoll, nem a modell
A véletlenül kihagyott pont két szomszédja a tanítóban marad. Élesben nincs jövőbeli szomszéd.
A gépi tanulásban megszokott eljárás, hogy az adat egynegyedét véletlenszerűen félretesszük tesztnek. Idősoron ez hibás, és nem elvi okból. Ha egy áprilisi pontot kihagysz, a márciusi és a májusi ott marad a tanítóban — a modell tehát a kihagyott pont mindkét szomszédját ismeri, és elég interpolálnia. Élesben viszont nincs jövőbeli szomszéd. A teszt olyan feladatot mér, ami a valóságban nem fordul elő.
A `w06-forecast` demó mérése: szomszédból becslés, két értékelési protokollal.
Hogy ez ne elvi kifogás maradjon, itt van megmérve, mennyibe kerül. Ugyanaz az egyszerű becslő: a hiányzó pontot a két szomszédjából becsüli meg. Véletlen szétvágásnál nulla egész nulla-három-kilenc-kettő a hibája — ez remek szám. Gördülő eredettel, vagyis úgy, hogy csak a múltat ismerheti, nulla egész huszonhét. Hatszor kilencszeres különbség, és semmi nem változott a modellben. Csak annyi történt, hogy elvettük tőle a jövőt. Véletlen szétvágásnál ugyanis a kihagyott pont MINDKÉT szomszédja ismert — és ez élesben soha nem fordul elő.
idősoron érvénytelen
A helyes eljárás a gördülő eredet. Veszünk egy vágópontot, az addigi adattal tanítunk, és előrejelzünk a következő néhány lépésre. Aztán a vágópontot előrébb toljuk, és megismételjük. A hibák átlaga a mérőszám. Ez lassabb, mert sokszor kell tanítani — de ez az egyetlen, ami azt méri, amit élesben csinálni fogsz.
Minden eredetnél csak a múltból tanulunk. A hibát az eredeteken átlagoljuk.
Írjuk fel, mit jelent gördülő eredettel értékelni. Végigmegyünk az eredeteken: minden i-nél csak az addigi adatból tanulunk, és h lépésre előre jósolunk. A hibákat ezeken az eredeteken átlagoljuk. A második képlet azt mondja meg, hány ilyen eredet van — és ez az, amit előre ki kell számolni, mert ha kevés, akkor a mért különbség nem jelent semmit. Ez ugyanaz a gondolat, mint a standard hiba: kevés eredet, nagy szórás.
A cella betöltése…
Ez a cella két dolgot mér meg egyszerre. Az első a négy módszer rangsora gördülő eredettel. A második az, ami miatt ez a dia itt van: ugyanazt a szomszédból becslő eljárást lefuttatja véletlen szétvágással és gördülő eredettel. Nulla egész nulla három kilenc kettő, illetve nulla egész huszonhat kilenc négy. Hétszeres különbség — ugyanaz a becslő, ugyanaz a sor, más protokoll.
Nézd meg a harmadik sort. Az exponenciális simítás MASE-je három egész tizennégy — háromszor rosszabb, mint az ingyenes szezonális naiv. Nem azért, mert rossz módszer, hanem mert nincs benne szezon, és ez a sor szezonális. A Holt–Winters viszont nulla egész ötvennyolc: majdnem feleannyi hiba, mint az alapvonalé. Ez az a pillanat, amikor egy modell megérdemli, hogy modellnek hívjuk.
Nem a paraméterszám dönt, hanem az, hogy a modellben benne van-e az adat szerkezete.
Ez a rangsor a hét egyik fő tanulsága. Az exponenciális simítás bonyolultabb a naivnál, mégis rosszabb. A Holt–Winters bonyolultabb a simításnál, és jobb. Nem a paraméterek száma dönt, hanem az, hogy a modell tartalmazza-e azt a szerkezetet, ami az adatban van. Szezonális soron a szezon nélküli modell nem tud nyerni, akárhány paramétere van.
A `w06-forecast` demó mérése: MASE a tanult paraméterek száma szerint rendezve.
Rakjuk sorba a módszereket aszerint, hány paramétert tanulnak, és nézzük meg a MASE-t. A szezonális naiv nulla paramétert tanul, és egy egész nulla-kettőt ad — tehát gyakorlatilag az alapvonal maga. Az exponenciális simítás egy paramétert tanul, és három egész tizennégyet ad: lényegesen ROSSZABB, mint a nulla paraméteres. Miért? Mert nincs benne szezon, ez a sor pedig szezonos. A Holt–Winters három paramétert tanul, és nulla egész ötvennyolcat ad. A létra tehát nem emelkedik egyenletesen: a bonyolultság önmagában nem érték, csak akkor, ha azt a szerkezetet ragadja meg, ami az adatban tényleg ott van.
Egy kollégád azt mondja, hogy a modellje nyolcvanöt százalékos pontosságot ér el a teszthalmazon, amit véletlenszerűen választott ki a havi hozamsorból. Mi a legfontosabb kifogás?
Egy kollégád azt mondja, hogy a modellje nyolcvanöt százalékos pontosságot ér el a teszthalmazon, amit véletlenszerűen választott ki a havi hozamsorból. Mi a legfontosabb kifogás?
Három dolgot, és mind a három egy sor. Az első: melyik alapvonalhoz mérted. A második: hogyan vágtad szét — gördülő eredettel, hány ablakkal, milyen horizonttal. A harmadik: a hiba az alapvonalhoz viszonyítva. Ha ez a három nincs ott, akkor a jelentésben szereplő szám nem ellenőrizhető, tehát nem is állítás.
Az ábra betöltése…
És itt van, hogyan néz ki mindez együtt. Ez a demó saját ábrája: a négy módszer hibája egymás mellett, a naiv alapvonalhoz mérve. Nézd meg, mi az, ami ebből azonnal leolvasható. Melyik módszer veri meg a szezonális naivat, és mennyivel. Hogy a véletlen szétvágás mennyivel ad optimistább számot, mint a gördülő eredetű. Ez a két dolog az, ami a jelentésbe kell — nem a modell neve, és nem az, hogy hány paramétere van.
a becslés az egy szezonnal korábbi érték; ez az az alapvonal, amit a MASE nevezője használ
Ha a félév során csak egyetlen dolgot viszel magaddal ebből a hétből, ez legyen az.
Meddig előre, és milyen széles sávval
Hogy mennyivel romlik a hiba a horizonttal, az attól függ, mi uralja a sort.
Ez a szokásos megfogalmazás, és többnyire igaz: minél messzebbre jelzel előre, annál bizonytalanabb. De hogy mennyivel bizonytalanabb, az nem a horizonttól függ, hanem attól, mi uralja a sort. Ezt a következő ábrán megmérjük, és az eredmény meg fog lepni.
A hiba az egylépéseshez viszonyítva, gördülő eredetű visszateszteléssel mérve.
Három görbe, mind az egylépéses hibához viszonyítva. A bolyongás naiv előrejelzésénél a hiba tizenkét lépésre három egész négyszeresére nő — és pontosan illeszkedik a gyök h görbére, ami zárt alakban is levezethető. A szezonális NDVI-soron viszont Holt–Winters mellett a tizenkettedik lépés hibája mindössze egy egész kettőszerese az elsőnek. Miért? Mert ott a szezon uralja a sort, azt pedig a modell tudja — egy évvel előre ugyanúgy, mint egy hónappal.
Bolyongáson √h szerint nő, korlát nélkül. Stacionárius soron plafonhoz tart.
Az előző dia mutatta a tölcsért; itt van, miért éppen olyan. Ha a sor véletlen bolyongás, akkor a h lépésre előre vett hiba h darab FÜGGETLEN lépés összege, és a független összeadódó tagok szórása gyök h szerint nő. Ha viszont a sor stacionárius AR(1), akkor a szórás NEM nő korlátlanul: egy plafonhoz tart, amit a második képlet ad meg. Ezért van az, hogy a szezon uralta soron a tizenkét lépéses hiba alig nagyobb az egylépésesnél, a bolyongáson viszont háromszoros.
A `ts-horizon` demó bolyongás-sorának egylépéses MAE-je: 0,0164.
sh=0,02 * sqrt(12)=0,06NDVI
Húzd a csúszkát, és nézd, mi mozdul.
Az ábra betöltése…
Az előző dia görbéi innen jönnek, és szeretném, ha látnád a forrásukat. Bal oldalt a hiba szintje, jobb oldalt ugyanaz az egylépéses hibához viszonyítva, a gyök h görbével együtt. A bolyongás mért aránya három egész negyvenkettő, a gyök tizenkettő három egész negyvenhat — egy egész egy százalék eltérés. Ez a mérés önellenőrzése: ha eltérnének, a mérés volna hibás, nem a tanulság.
A cella betöltése…
A cella itt fut. A csavar a horizont: állítsd huszonnégyre, vagyis két szezonra előre. A kérdés az, hogy a bolyongáson tartja-e a gyök h szabályt — gyök huszonnégy, majdnem öt. Ha igen, akkor a képlet nem csak tizenkettőre igaz. Ha nem, akkor azt kell megmagyarázni, mi romlott el.
Szezon uralta sor: a hosszú horizont olcsó. Bolyongás uralta sor: rövid horizont, gyakori frissítés.
Két következmény. Az egyik: ha a sorodat a szezon uralja, akkor a hosszabb horizont nem kerül sokkal többe — érdemes egész szezonra tervezni. A másik: ha a sorodat a bolyongás uralja, mint a felvásárlási árat, akkor a hosszú horizontú előrejelzés lényegében értéktelen, és jobban jársz, ha rövid horizontra jelzel és gyakran frissítesz. A kérdés nem az, hány hétre akarsz látni, hanem hogy a sorod melyik fajta.
Tanpélda: az utolsó tizenkét hónap előrejelzése Holt–Winters-módszerrel, a sáv a visszatesztelt hibából.
Így néz ki egy közölhető előrejelzés. A vonal a pontbecslés, a sáv a visszatesztelésből mért hiba alapján tágul. És figyeld meg a lényeget: a valóság végig a sávon belül van, de a pontbecsléstől többször elmozdul. Aki csak a vonalat közli, azt állítja, hogy ez fog történni. Aki a sávot is, azt, hogy körülbelül ide várjuk — és ez az igaz állítás.
A szorzó a névleges szintből jön, a szélesség a visszatesztelt hibából — horizontonként külön.
A sáv felírása egyszerű: a pontbecslés plusz-mínusz egy szorzó a hiba szórásán. A kérdés az, honnan vesszük a szigma h-t. Két út van, és a kettő nem ugyanazt adja. Az egyik az ILLESZTÉSI maradékból számol — ez optimista, mert a modell arra az adatra lett illesztve, és mert horizonttól függetlenül ugyanazt a szélességet adja. A másik a VISSZATESZTELT hibából, horizontonként külön — ez az, amit használni kell. A demó mindkettőt megméri.
Az ábra betöltése…
És itt a sáv mérése. Bal oldalt a tényleges fedés horizontonként: az illesztési maradékból számolt sáv a hatodik lépésnél kilencvenkét százalékot fed a megígért kilencvenöt helyett, és a rés a horizonttal nő. A visszatesztelt hibából számolt végig tartja a szintet. Jobb oldalt az ok: az illesztési sáv MINDEN horizontra ugyanolyan széles, pedig a hiba nő.
A cella betöltése…
Itt a cella. A csavar a névleges szint: állítsd nyolcvan százalékra. A kérdés az, hogy ugyanúgy viselkedik-e, mint a kilencvenöt: az illesztési maradékból számolt sáv alulteljesít, a visszatesztelt tartja a szintet. Ha igen, a tanulság nem a szinten múlik, hanem az eljáráson.
Egy előrejelzési sávot úgy adsz meg, hogy a tanítómintán mért maradékok szórásából számolod. A visszatesztelésen kiderül, hogy a valóság az esetek harmadában a sávon kívül esik, pedig kilencvenöt százalékot ígértél. Mi a legvalószínűbb ok?
Egy előrejelzési sávot úgy adsz meg, hogy a tanítómintán mért maradékok szórásából számolod. A visszatesztelésen kiderül, hogy a valóság az esetek harmadában a sávon kívül esik, pedig kilencvenöt százalékot ígértél. Mi a legvalószínűbb ok?
a becslés az egy szezonnal korábbi érték; paraméter nélkül, és a hét mérésében a MAE-je 0,0607
Ez volt a hatodik hét. Egy mondatban: az előrejelzés akkor ér valamit, ha megveri a szezonális naivat, és ezt gördülő eredetű visszateszteléssel mutattuk ki.
| Rövidítés | Feloldás | Mit jelent |
|---|---|---|
| MAE | Mean Absolute Error — átlagos abszolút hiba | az eltérések abszolút értékének átlaga, az adat mértékegységében |
| MAPE | Mean Absolute Percentage Error | százalékos hiba; nulla közeli megfigyelésnél elszáll, ezért idősoron kerülendő |
| MASE | Mean Absolute Scaled Error | a hiba a szezonális naiv hibájához mérve: egy alatt megverted az alapvonalat, egy fölött nem |
| ACF | AutoCorrelation Function | az autokorrelációs függvény: a sor és önmaga k lépéssel eltolva |
| PACF | Partial AutoCorrelation Function | a parciális autokorreláció: a köztes késleltetések hatását kiszűrve |
| AR | AutoRegressive — autoregresszív | a következő érték a sajátmagára visszavezetve: AR(1) egyetlen lépésre emlékezik |
| MA | Moving Average — mozgóátlag | a modellcsaládban a hibatagok mozgóátlaga; simításként az ablakon belüli átlag |
| ARIMA | AutoRegressive Integrated Moving Average | AR- és MA-tagok differenciált soron; a három rend az ACF és a PACF olvasásából indul |
| SARIMA | Seasonal ARIMA | ARIMA szezonális tagokkal; a szezonhossz a modell bemenete, nem a modell tanulja |
| SARIMAX | SARIMA eXogenous változóval | külső magyarázó változóval bővítve — annak a jövőbeli értékét is ismerni kell |
| NDVI | Normalized Difference Vegetation Index | normalizált vegetációs index; a hét tanpéldájának mért mennyisége |
Az idősoros hét rövidítései. A három hibamérőszám közül a MASE a fontos: az a mérce, ami önmagában értelmezhető, mert az alapvonalhoz viszonyít.
Az ábra betöltése…
Négy típus, és mind a négy panel ugyanazt az öt értéket rajzolja. Az oszlop és a vonal különbsége itt a legélesebb: a vonal folytonos átmenetet állít két szomszédos érték közé, az oszlop nem állít semmit köztük. A sáv panelen a középvonal ugyanaz, csak köré került a bizonytalanság — és vedd észre, hogy a sáv szélessége semmit nem mond arról, hogy a középvonal jó helyen van-e.
| diagramtípus | mit olvasol le róla | mire NEM jó |
|---|---|---|
| oszlop | kategóriák nagyságrendje és sorrendje — a hossz maga az érték | időbeli alakulás: a sorrend nem látszik rajta |
| vonal | időbeli alakulás: a meredekség és a fordulópontok | kategóriák összevetése: a vonal sorrendet állít oda is, ahol nincs |
| sáv | a bizonytalanság nagysága a becslés körül | a pontbecslés pontossága: a sáv szélessége nem a modell jósága |
| demóábra | amit a keretrendszer rajza nem tud: log tengely, hőtérkép, kis sokszorosok | saját adatod: ez a demó kimenete, nem szerkeszthető a dián |
Amit ezen a héten használtunk. Idősoron a vonal a természetes választás, mert a meredekség maga az információ; az oszlop viszont akkor jön elő, amikor módszereket hasonlítunk össze, és a sorrendnek nincs jelentése. A sáv a bizonytalanságé — és a 6. hét egyik tanulsága éppen az volt, hogy a sáv szélessége nem a modell jóságát mondja meg.