2 Idősoros adatok bemutatása Dekompozíció Előrejelzés Simító eljárások Távolságmetrikák 2
3 Az idősor egy l elemű számsorozat x = (x 0, x 1,, x l 1 ) Az értékek időpontokhoz vannak rendelve Időben egymás után következő megfigyelések sorozata Az idősor matematikailag nem sor, hanem sorozat 29 28 27 26 25 24 A világsajtóban megjelent cikkek egy 4000-es véletlen mintáját megvizsgálva az ábrák több mint 75%-a idősorokat ábrázolt. (Tufte, 1983) 23 0 50 100 150 200 250 300 350 400 450 500 3
4 Időjárási adatok 4
5 Pénzügyi adatok 5
6 Energetika 6
7 Sport 7
8 Egészségügyi adatok 8
9 Egészségügyi adatok 9
10 Az idősorok komplex mintázatai különböző komponesek együttes hatásának eredményei Bármely idősor felbontható: trendhatásra Ciklikus hatásra Szezonalitásra Maradványra (zaj) Egymásra is hatással vannak 10
11 11
12 Hosszútávú trendmozgások (trend görbe): az idősor alakulsát leginkább meghatározó irányvonal vagy görbe Ciklikus mozgások és szórások: szintén hosszútávú ingadozások a trendvonal körül Pl. üzleti időszakok, jellemzően periodikus Szezonális mozgások és szórások Időben visszatérő, azonos hatású jelenségek, pl. Karácsony Zaj okozta szabálytalanság és véletlen mozgások Az idősor elemzés során e négy komponens együttes hatását vizsgáljuk Additív kapcsolat: TS = T + C + S + I Multiplikatív kapcsolat: TS = T C S I April 2, 2015
13 Felosztás Egyváltozós Többváltozós Főbb tulajdonságok Az idősorok egymás utáni értékei erősen korrelálnak (autokorreláció) Hagyományos elemzési módszerek esetén magas dimenziószám Erősen zajos A mintavételezés időköze eltérhet A sorozatok hossza eltérhet 13
14 14 Korrelációszámítás idősorokon A szokásos összefüggések továbbra is érvényesülnek n i n i i i n i i i xy x x y y x x y y r 1 1 2 2 1 ) ( ) ( ) )( ( r xy = r yx, r [ 1; +1 ]
15 15 Egy idősor jelenlegi és későbbi értékei közötti kapcsolat mértékét fejezi ki. A k lépéses autokorreláció az idősor és a k lépéssel eltolt idősor közötti korreláció. k. rendű autokorreláció számítása autocorr k = corr x t, x t + k t re 2 2 2 E E E E z k t t k t t k t t k z z z z z z autocorr
16 Egy idősor jelenlegi és későbbi értékei közötti kapcsolat mértékét fejezi ki. A k lépéses autokorreláció az idősor és a k lépéssel eltolt idősor közötti korreláció. k. rendű autokorreláció számítása autocorr i = corr x t, x t i t re 16
ARMA(p,q): autoregresszív és mozgóátlag modell Két komponens: AR és MA Az autoregresszív (AR) modell, az idősor jelenlegi értékét, saját előző értékeinek függvényében fejezi ki k a yk 1 a yk p AR p) a y... p ( 0 1 A mozgóátlag (MA) modell az idősor jelenlegi értékét, a jelenlegi és a múltbeli véletlen változók függvényében fejezi ki q c ek c ek 1... c ek q MA q 0 1 Variáció: ARIMA(p,q,d)
Az ARMA modell trendhatás nélküli idősort vár Trendhatás megállapítása a mozgóátlag módszerrel
19 Trend görbe számítás N-ed rangú mozgóátlag csúszóablakkal Simító hatással van az idősor egészére Kiszűri a ciklikusság, a szezonalitás és a zaj hatását Az idősor elején és végén adatvesztés Érzékeny a kiugró értékekre April 2, 2015
20 Mozgóátlag módszer Exponenciális simítás Idősor simítása: kiszűri a rövidtávú ingadozások hatását, eltünteti a szezonalitást Determinisztikus működés, nem veszi figyelembe az idősorral reprezentált folyamat véletlenszerűségét 20
21 Egyszerű átlag - gyors, olcsó, csak stacionárius esetben Mozgóátlag módszer - az utolsó n érték figyelmbevételével dolgozik, ebből számolja a következő becslést. Feltételezi a folyamat időbeli stabilitását Az ablak mérete meghatározó, befolyásolja a közeli értékek súlyozását, simítás mértékét (utolsó n érték) Moving Average = --------------------------- n 21
24 Egyszeres exponenciális simítás A közeli értékeket felülsúlyozza, idővel exponenciálisan csökkenő súlyokkal számol Trend és szezonális hatás nélküli sorokon A t = αy t-1 + (1 α) A t-1 Új érték= α (előző megfigyelés) + (1- α) előző érték Kétszeres exponenciális simítás Kezeli a trend hatást 24
25 Egyszeres exponenciális simítás A közeli értékeket felülsúlyozza, idővel exponenciálisan csökkenő súlyokkal számol Trend és szezonális hatás nélküli sorokon 25
Véletlenszerű (normális eloszlású független sorozat) Tipikus autokorreláció függvények 2 1.5 1 0.5 0-0.5 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31-1 -1.5-2 1 0.8 0.6 0.4 0.2 0-0.2 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30-0.4-0.6-0.8-1 Autokorrelált (véletlen sorozat mozgóátlaga) 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0-0.1 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31-0.2-0.3 1 0.8 0.6 0.4 0.2 0-0.2 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30-0.4-0.6-0.8-1 Periodikus (szinusz függvény, zajmentes) 1.5 1 0.5 0 1 3-0.5 5 7 9 11 13 15 17 19 21 23 25 27 29 31-1 -1.5 1 0.8 0.6 0.4 0.2 0-0.2 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30-0.4-0.6-0.8-1
ARMA modell alkalmazása 18.5 Stacionárius idősor 18 17.5 17 16.5 16 15.5 15 1 21 41 61 81 101 121 141 161 181 1 0.8 0.6 0.4 0.2 0-0.2-0.4-0.6-0.8-1 acf 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 1 0.8 0.6 0.4 0.2 0-0.2-0.4-0.6-0.8-1 pacf 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 Javasolt modell : AR(2)
ARMA modell alkalmazása Az eredeti adatsor és az egy lépésre tett előrejelzések 18.5 18.0 Idősor 17.5 17.0 16.5 16.0 Előrejelzés 15.5 15.0
29 Miért fontos ez? time Az összehasonlíthatóság kérdése X = x 1, x 2,, x n and Y = y 1, y 2,, y n Hogyan számítsuk: Sim(X, Y) =? Hasonlóan alakul-e X és Y árfolyama? 29
Elvárások a távolságfüggvényekkel szemben D(A,B) = D(B,A) szimmetria D(A,A) = 0 ön-távolság D(A,B) >= 0 pozitivitás D(A,B) D(A,C) + D(B,C) háromszög egyenlőtlenség
Euklideszi távolság: Minden sorozat egy pont az n dimenziós térben X és Y sorozatok hasonlósága L p ( n i1 x i y i p 1/ ) p p=1 Manhattan távolság p=2 Euklidészi távolság
Sim(X,Y) = LCS /n Gap skipped
Karakterláncokon értelmezett Két karakterlánc esetén a szerkesztési műveletek számát adja meg, amely az egyik karakterláncot a másikba viszi Szerkesztési műveletek: beszúrás, törlés, helyettesítés Egyezőség helyett legfeljebb ε távolságot várunk el Dinamikus programozással kalkulálható O(mn) ed(i,j) = ed(i-1, j-1) min (ed(i-1,j) +1, ed(i, j-1) +1, ed(i-1, j-1)+1) if x i = y j if x i y j
i i i i i+2 time time Bármely távolságmetrika (Euklideszi, Manhattan, ) mely az egyik idősor i. elemét a másik i. elemével veti össze gyenge eredményt hoz. Egy nemlineáris, rugalmas megfeleltetés jobban közelíti a valóságot, segítségével összerendelhetők a hasonló alakzatok, akkor is ha időben eltolva jelennek meg.
Time Series A m 1 i s n p k A és B idősor közötti legjobb összerendelést a mátrixon keresztül vezető útvonal adja meg P = p 1,, p s,, p k j s p s p s = (i s, j s ) ahol P jelenti a legkisebb költségű útvonalat. Time Series B 1 p 1 P összerendelést hívjuk vetemítő függvénynek.
Time Series A 1 m i s n p k Idővel normált távolság A és B között: k d( ps ) ws s1 D(A, B ) = k ws s1 d(p s ): i s és j s távolsága w s > 0: súlytényező. j s p s Legjobb útvonal A és B között : Time Series B 1 p 1 P 0 = arg min (D(A, B )). P
Time Series A m 1 i s n A lehetséges vetemítő útvonalak a mátrixban az idősorok hosszával hatványozottan növekszik Keresési tér csökkentése A vetemítő fgv megkötései: monoton Time Series B j s 1 folytonos korlátozó feltételek ablakozás meredekségi kikötések
Egyszerű megoldás O(n 2 ) n jelöli az idősorok hosszát minden (i, j) párra el kell végezni a számítást Ablakozási megkötéssel O(nw) [Ratanamahatana, Keogh, 2004] Csak azokra az (i, j) párokra, ahol i j <= w
42 A távolság és sűrűség alapú klaszterezők adaptálhatóak a DTW használatával K-means K-medoids Hierarchikus klaszterezők DBSCAN 42
43 DTW segítségével alkalmazhatóak a távolságfüggvényes megoldások, pl. KNN A DTW-n alapuló KNN idősor osztályozó versenyképes a komplexebb megoldásokkal (Ding, 2008) Az általános KNN esetén megismert gyorsítási megoldások itt is alkalmazhatóak A reprezentatív idősorok kiválasztása azonban ekvivalens a halmaz-fedési problémával, így NP-teljes 43
44 Regressziós technikákkal történhet Visszavezetés a hagyományos adatbányászati problémákra (lásd esettanulmány) Fa alapú megoldások SVM Együttes osztályozók 44
45 Megválasztjuk az előrejelző módszert - megkötések Két részre bontjuk az adathalmazt egy tanító és egy teszt részre A választott modell paramétereit a tanító halmaz alapján választjuk meg A választott modell és annak paraméterezése alapján előrejelzéseket adunk a teszt halmaz értékeire Kiértékeljük a modell pontosságát (MAD, MPE, MSD, MAPE) Ha szükséges finomítunk a modellen és paraméterezésén 45
46 Tanított modell pontosságának fő mértékei: MAPE, MAD and MSD Hiba mértékek, így minimalizáljuk őket. Megteremtik a különböző megoldások összehasonlíthatóságát. MAPE (Mean Absolute Percentage Error) az átlagos eltérést százalékos alakban adja meg (y t -y t )/y t MAPE = -------------- 100 (y t 0) n 46
47 MAD (Mean Absolute Deviation) a pontosságot az abszolút eltérés átlagaként adja meg Az összes hiba nagyságáról ad képet y t -y t MAD = ---------- n 47
MSD(Mean Squared Deviation) a kiugróan nagy eltéréseket a négyzetes taggal bünteti. (y t -y t ) 2 MSD = ---------- n 48
50 Valós probléma megoldása Historikus adatok: 1986-2014 Előrejelzési időszak: 2015. január 13-tól 2015. február 11-ig Kiértékelés valós időben Célfüggvény: RMSE, legalább 25%-os pontosság (MAPE) A megrendelő számára fontos a magyarázó változók, főbb vezérlő tényezők behatárolása is 50
51 51
52 52
53 Growth in Asian economies in particular, which account for 50 percent of all copper use, is another important factor. Building, for example, accounts for approximately half of all copper use, with engineering accounting for nearly 25 percent, and electrical applications accounting for approximately 17 percent. Industry body International Copper Study Group has forecast a global deficit of 200,000 tonnes this year. Next year, it expects another deficit as production grows by 3.4% while demand rises 3.6%. the world refined copper production On the demand side, the US dollar is set to get stronger always a headwind for commodity prices, Mr Morgan said while Chinese demand has been a little weak lately. Used in China as collateral for bank loans 53
54 Morgan Stanley expects copper prices to rise to $7,397 per ton in 2015 CLSA tips copper to reach $US3.13 per pound at the end of the year, $US3.30 at the end of 2015 and $US3.60 at the end of 2016. JPMorgan's forecast is $US3.20 for the end of 2014, $US3.22 for the end of 2015 and $US3.40 for the end of 2016. Codelco Glencore Xstrata XTA:LN -> GLEN:LN Rio Tinto RIO:LN BHP Billiton BLT:LN Vale XNYS:VALE Minmetals 230:HK Jiangxi Copper Co 358:HK Chinalco Mining Corp. International 3668:HK 54
55 Open positions Official interest rate China, India GDP Growth Rate China, India U.S. Dollar Index Helyettesítő termék: steel billet price Historical stock prices Bhp Billiton Ltd, Rio Tinto Ltd (RIO.AX)., Freeport-McMoRan Copper & Gold,, GLENCORE XSTRATA PLC, GRUPO MEXICO SA B SH, MINMETALS LAND, JIANGXI COPPER, AAL: ANGLO AMERICAN, SCCO: Southern Copper Corporation Com Naptár alapú változók Month Day of year Day of month Day of week Week of year 55
56 56
57 57
58 Error measure GBR RF ENS MDE 377.4343 397.1229 386.0171 MAPE 0.056216 0.059086 0.057476 nrmse 0.068107 0.071073 0.069278 RMSE 451.8042 472.2506 459.7993 58
59 Important factors include Trade Weighted U.S. Dollar Index Steel billet prices tickers for major mining companies Anglo American, BHP Billiton, Southern Copper Company. Attribute Mean importance YAHOO/L_AAL.6_Adjusted_Close 0.340718084 DTWEXM_DTWEXM 0.061889971 OFDP/STEELBILLET_46.3_Mid 0.044732783 YAHOO/ASX_BHP_AX.6_Adjusted_Close 0.037231912 YAHOO/SCCO.6_Adjusted_Close 0.035910178 Date of year 0.035462749 Open Interest 0.027192694 YAHOO/GLCNF.6_Adjusted_Close 0.027093326 YAHOO/HK_0358.6_Adjusted_Close 0.026668353 YAHOO/ASX_RIO_AX.6_Adjusted_Close 0.025708914 YAHOO/SCCO.5_Volume 0.023513478 YAHOO/GMBXF.6_Adjusted_Close 0.022829927 YAHOO/L_AAL.5_Volume 0.021597184 YAHOO/FCX.5_Volume 0.021502684 59
60 60
61 61
62 62
63 63
64 64
65 65
Task: We have a training dataset where we know the attributes We need to separate the cases into groups so that similar cases go to the same group. different cases go to different groups 67 Clustering Creating groups Questions: Which grouping is better? Input attributes How are the groups created? Age Income House size Number of children 42 280 000 82 3 1 88 90 000 44 0 0 Number of cars
Task: We have a training dataset where we know the attributes We need to separate the cases into groups so that similar cases go to the same group. different cases go to different groups 68 Clustering Creating groups
Task: We have a training dataset where we know the attributes We need to separate the cases into groups so that similar cases go to the same group. different cases go to different groups 70 Clustering Hierarchical clustering
Task: We have a training dataset where we know the attributes We need to separate the cases into groups so that similar cases go to the same group. different cases go to different groups 71 Clustering Hierarchical clustering
Questions How to measure similarity? How to recode categorical variables? How to standardize or normalize numerical variables? How many clusters we expect to uncover?
Error (SSE) Task: We have a training dataset where we know the attributes We need to separate the cases into groups so that similar cases go to the same group. different cases go to different groups 73 Clustering Hierarchical clustering # Clusters
Task: We have a training dataset where we know the attributes We need to separate the cases into groups so that similar cases go to the same group. different cases go to different groups 74 Clustering Density-based clustering
Selecting appropriate variables is important Select variables that are: Meaningful to the analysis Relatively independent Limited in number Numeric (for certain types of clustering algorithms) Low kurtosis and skewness Transformation of variables is important to have compatible measurement scales
Clustering a dataset by income and age Use Euclidean distance d(x,y) = sqrt((income 1 -income 2 )^2+(age 1 +age 2 )) Income mean: 35305 Age mean: 30.28 Income will dominate the distance Standardize/normalize the dataset: Range normalization (transform values to 0-1) Z-transform income = (income-mean(income))/std(income) age= (age - mean(age))/std(age) Means will become 0 scales are compatible
CLUSTER PROFILING Profiling can be defined as the generation of cluster descriptions (class labels) from the input variables. At least two forms of cluster profiling exist: Comparing the clusters means (centroids) Building a decision tree model with cluster labels as target variable and using rules of tree as cluster descriptions
Churn dataset: https://ede.tmit.bme.hu/~bartagergo/telco.zip Live demos: http://www.db-net.aueb.gr/kmeans/ http://home.deib.polimi.it/matteucc/clustering/tutorial_html/appletkm.html