A trendszámítás fontos eszköz az adattudományban, ezért érdemes a matematikai alapokat is ismerni, nem csak azt, hogyan valósítsd meg a számítást egy adatelemző szoftverben. Ebben a blogbejegyzésben lépésről lépésre levezetem az eljárást.
Matematikai alapok
A trendszámítás során a cél, hogy találjunk egy olyan függvényt, amely a lehető legjobban illeszkedik az adatpontjainkra. Az adatpontokat tudjuk ábrázolni egy koordináta-rendszerben, ahol az x tengelyen az idő múlása, az y tengelyen pedig a mérni kívánt értékek szerepelnek. Ezek a mérni kívánt értékek lehetnek mondjuk egy vállalkozás adott időpontokban vett bevételei.
A kapcsolat az idő múlása és a bevételek között általában véve nem függvényszerű, tehát nem tudunk pontos értékkel szolgálni a t-edik időpontban arra vonatkozóan, hogy a vállalat bevétele miként alakul. A kapcsolat a két változó között sztochasztikus, ami a gyakorlatban azt jelenti, hogy az adatpontok alakulását véletlen hatások is befolyásolják.
A lenti példában egy lineáris függvénnyel fogunk közelíteni az adatpontokhoz. Az (epszilon) a véletlen hibakomponens, amely azt fejezi ki, hogy az i-edik megfigyelés mennyivel tér el az elméleti függvény által meghatározott értéktől.
SSE és MSE
Az SSE (Sum of Squared Errors), valamint az MSE (Mean Squared Error) számítások mindketten arra szolgálnak (legalábbis jelen számítás során), hogy mérjék a különbséget az illesztett egyenes és a tényleges értékek között. Ha kiszámolom adatpontonként a tényleges érték és az illesztett egyenes szerinti érték különbségeinek négyzeteit, majd ezeket összeadom, az az SSE. Ha ezt leosztom az adatpontok számával, az az MSE. Fontos megjegyezni, hogy valójában nem konkrét adatpontokra való illesztés a célunk hanem az, hogy az SSE felhasználásával olyan általános megoldást adjunk, ami bármilyen adott adatsorra kiszámíthatóvá teszi az optimális b0 és b1 paramétereket.
A képletekben szereplő jelölések jelentése:
- yi: az i. adatpont tényleges (megfigyelt) értéke
- ŷi: az i. adatponthoz tartozó, az illesztett egyenes szerinti (becsült) érték
- n: az adatpontok száma
- i: az adatpontok indexe (1-től n-ig)
- ti: az i. időpont (1, 2, 3, 4, stb.)
- b0: az egyenes y tengelymetszete
- b1: az egyenes meredeksége
A deriválás szerepe
Szeretnénk minimalizálni az adatpontokon vett MSE-t vagy SSE-t. Igazából mindegy is, hogy melyiket, tekintettel arra, hogy n jelen esetben konstans, így az 1/n szorzó kiesik, amikor a deriváltat nullával tesszük egyenlővé. (Egy pozitív konstanssal való szorzás nem változtatja meg, hogy hol van a függvény minimuma.) Ahol a derivált értéke nulla, ott úgynevezett stacionárius pontot találunk. Ez lehet lokális vagy globális minimum, illetve maximumpont, de nem feltétlenül szélsőérték: az x3 függvény deriváltja az origóban nulla, mégsem szélsőérték, hanem inflexiós pont. Többváltozós függvényeknél nyeregpont is előfordulhat.
Ami miatt ebben a konkrét esetben biztosan globális minimumpontot találunk, az a függvény alakja. Az SSE az egyenes paramétereinek (b0 és b1) másodfokú, felfelé nyíló (konvex) függvénye, ami a parabolához hasonlóan egyetlen minimumponttal rendelkezik.
A csavar az, hogy valójában egy kétváltozós függvényről beszélünk, emiatt parciális deriváltat alkalmazunk. Ilyenkor persze a parabola alak nem teljesen pontos kifejezés, mivel nem kettő, hanem három dimenzióban gondolkodunk: két tengelyen a b0 és b1, a harmadikon pedig az SSE értéke szerepel. Az SSE grafikonja egy úgynevezett konvex elliptikus paraboloid, de ezt nem szükséges tudni a számítás megértéséhez. A lenti ábra egy ilyen konvex paraboloid képét jeleníti meg.
Írjuk fel részletesen az SSE-t, hogy jobban lássuk, milyen problémával nézünk szembe! Az ŷi valójában egy függvény, amely rendelkezik b0 tengelymetszettel, valamint b1 meredekséggel, ami a ti-edik x-tengelybeli értékkel van szorozva minden adatponton.
Mivel a szummák tagonként deriválhatók, elég egyetlen tagot megvizsgálni, és a szummát utána visszahelyezni. Vegyük el tehát egy percre a szumma jelet, hogy jobban lássuk a képletet! Az alábbi kifejezés parciális deriváltja szükséges b0 és b1 szerint. Ha parciálisan deriválunk, akkor minden változót konstansnak tekintünk, kivéve azt, amelyik szerint a deriválás végbemegy.
Geometriailag ez azt jelenti, hogy a felületet elmetsszük egy olyan síkkal, amelyben a többi változó értéke rögzített, és az így kapott görbe meredekségét vizsgáljuk az adott irányban. Úgy lehet elképzelni, mintha b0 szerinti deriváláskor b1 értékét befagyasztanánk, és egy golyót gurítanánk végig a felületen a b0 irányában. A derivált azt mutatja meg, hogy a golyó az adott pontban mennyire meredeken halad felfelé vagy lefelé. Ahol a golyó vízszintesen halad, ott a derivált (azaz a meredekség) nulla.
b0 szerinti derivált
Itt yi és b1 · ti konstansnak számítanak, ezért a belső függvény deriváláskor eltűnnek. A b0 sorsa az lesz, hogy egy lesz belőle, pontosabban −1. A külső függvény deriváltja szimplán csak az eredeti kifejezés négyzet alatti része, szorozva kettővel. Láncszabállyal az egy tagra vonatkozó derivált:
Most helyezzük vissza a szummát. A teljes SSE deriváltja az egyes tagok deriváltjainak összege, és ezt az összeget tesszük nullával egyenlővé. A fura fordított hatos jel a parciális d, a parciális derivált jelzése. Itt például az SSE-t deriváljuk b0 szerint:
Leosztva mínusz kettővel az alábbi kifejezés keletkezik:
A szummát tagonként felbontva:
Mivel a konstans b0-t n-szer adjuk össze, azért a b0 szummája valójában n · b0. Rendezve megkapjuk az I. normálegyenletet:
b1 szerinti derivált
Itt yi és b0 számít konstansnak, a belső függvény deriváltja pedig −ti. Az egy tagra vonatkozó derivált:
A szummát visszahelyezve, és az összeget nullával egyenlővé téve:
Mínusz kettővel leosztva, majd a zárójelet felbontva:
A szummát tagonként felbontva és rendezve megkapjuk a II. normálegyenletet:
Nemlineáris trendek
Ha nem lineáris görbét szeretnénk illeszteni, sok esetben nem kell új módszert tanulnunk. A modellt átalakítjuk úgy, hogy lineárissá váljon, elvégezzük a fenti számítást, majd az eredményt visszaalakítjuk. A trükk az, hogy a lineáris modell nem feltétlenül az eredeti y és t értékekre vonatkozik, hanem azok átalakított változataira. Ha az átalakított változókat Y-nal és X-szel jelöljük, akkor mindig ugyanazt az egyenest illesztjük:
Az egyenes paramétereit itt c0 és c1 jelöli, hogy ne keveredjenek az eredeti modell b0 és b1 paramétereivel. A normálegyenletekben ilyenkor egyszerűen az yi helyére az Yi, a ti helyére az Xi, a b0 és b1 helyére pedig a c0 és c1 kerül. A módszer három lépésből áll:
- Kiszámoljuk az átalakított Yi és Xi értékeket.
- Az Yi és Xi értékekre a fenti módon illesztünk egyenest, így megkapjuk a c0 és c1 paramétereket.
- A c0 és c1 paraméterekből visszaalakítjuk az eredeti modell paramétereit.
Exponenciális modell
Az exponenciális trend alakja:
Itt b0 a kezdőérték, b1 pedig a növekedési tényező: minden időszakban b1-szeresére változik az érték. Ha például b1 = 1,05, akkor időszakonként 5%-os a növekedés.
Vegyük mindkét oldal természetes logaritmusát:
A szorzat logaritmusa a tényezők logaritmusának összege, ezért:
A hatvány logaritmusánál a kitevő szorzóként kihozható a logaritmus elé:
Ez pontosan egy egyenes egyenlete, ahol Y = ln y és X = t, a tengelymetszet c0 = ln b0, a meredekség pedig c1 = ln b1. Vagyis a ti értékek maradnak, az yi értékek helyett pedig az ln yi értékekre illesztünk egyenest.
A visszaalakításhoz a logaritmus fordított műveletét, a hatványozást használjuk (az ln inverze az e alapú hatványozás):
Az e szám itt csak azért jelenik meg, mert természetes logaritmust használtunk. Bármilyen más alapú logaritmussal is működik az eljárás, például tízes alapúval a visszaalakítás b0 = 10c0 és b1 = 10c1, a végeredmény ugyanaz lesz.
Az eljárás csak pozitív y értékekre működik, mert nem pozitív számnak nincs valós logaritmusa.
Hatványkitevős modell
A hatványfüggvény alakja:
Az exponenciális modellnél a változó a kitevőben volt, itt viszont az alapban, a kitevő pedig a b1 paraméter. Vegyük mindkét oldal természetes logaritmusát, és használjuk ugyanazokat a logaritmus-azonosságokat:
Itt mind az y-t, mind a t-t logaritmizáljuk, tehát Y = ln y és X = ln t. A tengelymetszet c0 = ln b0, a meredekség pedig közvetlenül a kitevő: c1 = b1. A visszaalakítás:
Ennél a modellnél az y és a t értékeknek is pozitívnak kell lenniük. Mivel az időpontokat 1-től számozzuk, a t-vel általában nincs gond.
Logaritmikus modell
A logaritmikus trend alakja:
Ez az egyetlen a három nemlineáris modell közül, ahol az y értékeket nem kell átalakítani, csak a t-t: Y = y és X = ln t. Az egyenes paraméterei közvetlenül az eredeti modell paraméterei, nincs mit visszaalakítani:
Itt t > 0 kell, hogy teljesüljön.
Összefoglalás
| Modell | Eredeti alak | Y | X | Visszaalakítás |
|---|---|---|---|---|
| Lineáris | ŷ = b0 + b1 · t | y | t | nem szükséges |
| Exponenciális | ŷ = b0 · b1t | ln y | t | b0 = ec0, b1 = ec1 |
| Hatványkitevős | ŷ = b0 · tb1 | ln y | ln t | b0 = ec0, b1 = c1 |
| Logaritmikus | ŷ = b0 + b1 · ln t | y | ln t | b0 = c0, b1 = c1 |
Mire figyeljünk?
Ha az y értékeket logaritmizáljuk (exponenciális és hatványkitevős modell), akkor a négyzetes hibát a logaritmizált értékeken minimalizáljuk, nem az eredeti skálán. Ezért az eredmény általában kicsit eltér attól, amit az eredeti skálán végzett közvetlen illesztés adna. A logaritmikus modellnél ez a probléma nem jelentkezik, mert ott az y értékek változatlanok maradnak, így az SSE az eredeti skálán minimalizálódik.




Top comments (0)