Sa loob ng maraming taon, hinulaan ng mga tao ang lagay ng panahon, mga kaganapang pang-ekonomiya at pampulitika at mga resulta ng palakasan, kamakailan ang malawak na listahang ito ay napunan ng mga cryptocurrencies. Para sa paghula ng maraming nalalaman na mga kaganapan, maraming paraan upang bumuo ng mga pagtataya. Halimbawa, ang intuwisyon, mga opinyon ng eksperto, ang paggamit ng mga nakaraang resulta upang ihambing sa mga tradisyonal na istatistika, at ang pagtataya ng serye ng oras ay isa lamang sa mga ito, habang ang pinakamoderno at tumpak na uri ng mga pagtataya na may malawak na hanay ng mga aplikasyon.
Pamamaraan ng time series
Ang pamamaraan ng time series (TS) ay isang dataset na nangongolekta ng impormasyon sa loob ng isang yugto ng panahon. May mga espesyal na paraan para sa pagkuha ng ganitong uri:
- linear at non-linear;
- parametric at non-parametric;
- one-dimensional at multidimensional.
Oras ng pagtatayaAng serye ay nagdadala ng isang natatanging hanay ng mga kakayahan upang matugunan ang mga hamon ngayon. Ang pagmomodelo ay umaasa sa pag-aaral upang maitaguyod ang puwersang nagtutulak sa likod ng pagbabago ng data. Ang proseso ay nagmumula sa mga pangmatagalang uso, napapanahong epekto, o hindi regular na pagbabagu-bago na katangian ng TS at hindi nakikita sa iba pang uri ng pagsusuri.
Ang Machine learning ay isang sangay ng computer science kung saan ang mga algorithm ay pinagsama-sama mula sa data at kinabibilangan ng mga artificial neural network, deep learning, association rules, decision tree, reinforcement learning, at Bayesian network. Ang iba't ibang mga algorithm ay nagbibigay ng mga opsyon para sa paglutas ng mga problema, at bawat isa ay may sariling mga kinakailangan at trade-off sa mga tuntunin ng data input, bilis, at katumpakan ng mga resulta. Ang mga ito, kasama ang katumpakan ng mga huling hula, ay titimbangin kapag nagpasya ang user kung aling algorithm ang pinakamahusay na gagana para sa sitwasyong pinag-aaralan.
Ang pagtataya ng serye ng oras ay humihiram mula sa larangan ng mga istatistika, ngunit nagbibigay ng mga bagong diskarte sa pagmomodelo ng problema. Ang pangunahing problema para sa machine learning at time series ay pareho - upang mahulaan ang mga bagong resulta batay sa dating kilalang data.
Ang target ng predictive na modelo
Ang TS ay isang set ng mga data point na kinokolekta sa mga regular na pagitan. Sinusuri ang mga ito upang matukoy ang isang pangmatagalang trend, upang mahulaan ang hinaharap, o upang magsagawa ng iba pang uri ng pagsusuri. May 2 bagay na nagpapaiba sa TS sa isang normal na problema sa regression:
- Nakadepende sila sa oras. Kayaang pangunahing pagpapalagay ng isang linear regression na modelo na ang mga obserbasyon ay independyente ay hindi pinanghahawakan sa kasong ito.
- Kasabay ng pagtaas o pagbaba ng trend, karamihan sa mga TS ay may ilang anyo ng seasonality, ibig sabihin, mga pagbabagong partikular sa isang partikular na yugto ng panahon.
Ang layunin ng isang modelo ng pagtataya ng serye ng oras ay magbigay ng tumpak na hula on demand. Ang time series ay may time (t) bilang independent variable at target dependent variable. Sa karamihan ng mga kaso, ang forecast ay isang tiyak na resulta, halimbawa, ang presyo ng pagbebenta ng isang bahay, ang resulta ng sports ng kumpetisyon, ang mga resulta ng pangangalakal sa stock exchange. Kinakatawan ng hula ang median at mean at may kasamang confidence interval na nagpapahayag ng antas ng kumpiyansa sa hanay na 80-95%. Kapag naitala ang mga ito sa mga regular na pagitan, ang mga proseso ay tinatawag na serye ng oras at ipinapahayag sa dalawang paraan:
- one-dimensional na may time index na lumilikha ng implicit order;
- isang set na may dalawang dimensyon: oras na may independent variable at isa pang dependent variable.
Ang paggawa ng mga feature ay isa sa pinakamahalaga at nakakaubos ng oras na gawain sa inilapat na machine learning. Gayunpaman, ang pagtataya ng serye ng oras ay hindi lumilikha ng mga tampok, hindi bababa sa hindi sa tradisyonal na kahulugan. Ito ay totoo lalo na kapag gusto mong hulaan ang resulta ng ilang hakbang sa unahan, at hindi lamang ang susunod na halaga.
Hindi ito nangangahulugan na ganap na hindi pinagana ang mga feature. Dapat lamang na gamitin ang mga ito nang may pag-iingat para sa mga sumusunod na dahilan:
- Hindi malinaw kung ano ang tunay na hinaharapang mga halaga ay para sa mga feature na ito.
- Kung predictable ang mga bagay at may ilang pattern, maaari kang bumuo ng predictive na modelo para sa bawat isa sa kanila.
Gayunpaman, magkaroon ng kamalayan na ang paggamit ng mga predictive na halaga bilang mga feature ay magpapalaganap ng error sa target na variable at hahantong sa mga error o bias na hula.
Mga bahagi ng serye ng oras
Umiiral ang Trend kapag tumaas, bumaba, o nananatili ang serye sa isang pare-parehong antas sa paglipas ng panahon, kaya ito ay kinuha bilang isang function. Ang seasonality ay tumutukoy sa isang property ng isang time series na nagpapakita ng mga periodic pattern na umuulit sa pare-parehong frequency (m), halimbawa, m=12 ay nangangahulugan na ang pattern ay umuulit tuwing labindalawang buwan.
Dummy variable na katulad ng seasonality ay maaaring idagdag bilang binary function. Maaari mong, halimbawa, isaalang-alang ang mga pista opisyal, mga espesyal na kaganapan, mga kampanya sa marketing, hindi alintana kung ang halaga ay banyaga o hindi. Gayunpaman, kailangan mong tandaan na ang mga variable na ito ay dapat na may ilang mga pattern. Gayunpaman, ang bilang ng mga araw ay madaling kalkulahin kahit para sa mga hinaharap na panahon at makaimpluwensya sa pagtataya ng serye ng oras, lalo na sa larangan ng pananalapi.
Ang mga cycle ay mga season na hindi nangyayari sa isang nakapirming rate. Halimbawa, ang taunang mga katangian ng pagpaparami ng Canada lynx ay nagpapakita ng mga seasonal at cyclical pattern. Hindi umuulit ang mga ito sa mga regular na pagitan at maaaring mangyari kahit na ang dalas ay 1 (m=1).
Lagged na halaga -ang mga lagging value ng isang variable ay maaaring isama bilang predictors. Ang ilang modelo, gaya ng ARIMA, Vector Autoregression (VAR), o Autoregressive Neural Networks (NNAR), ay gumagana sa ganitong paraan.
Napakahalaga ng mga bahagi ng variable ng interes para sa pagsusuri at pagtataya ng serye ng oras, upang maunawaan ang kanilang pag-uugali, mga pattern, at upang mapili ang naaangkop na modelo.
Mga attribute ng data set
Maaaring sanay kang maglagay ng libu-libo, milyon-milyon, at bilyun-bilyong data point sa mga modelo ng machine learning, ngunit hindi ito kinakailangan para sa time series. Sa katunayan, posible na magtrabaho kasama ang maliit at katamtamang TS, depende sa dalas at uri ng variable, at hindi ito isang kawalan ng pamamaraan. Bukod dito, talagang may ilang mga pakinabang sa diskarteng ito:
- Ang ganitong mga hanay ng impormasyon ay tumutugma sa mga kakayahan ng isang computer sa bahay.
- Sa ilang sitwasyon, magsagawa ng time series na pagsusuri at pagtataya gamit ang buong set ng data, hindi lang isang sample.
- Ang haba ng TS ay kapaki-pakinabang para sa paggawa ng mga graph na maaaring masuri. Ito ay isang napakahalagang punto dahil ang mga programmer ay umaasa sa mga graphics sa yugto ng pagsusuri. Hindi ito nangangahulugan na hindi gumagana ang mga ito sa malalaking serye ng panahon, ngunit sa simula ay dapat nilang mahawakan ang mas maliit na TS.
- Anumang dataset na naglalaman ng field na nauugnay sa oras ay maaaring makinabang mula sa pagsusuri at pagtataya ng serye ng oras. Gayunpaman, kung ang programmer ay may mas malaking set ng data, ang DB (TSDB)maaaring mas angkop.
Ang ilan sa mga set na ito ay nagmula sa mga kaganapang naitala gamit ang timestamp, mga log ng system, at data sa pananalapi. Dahil native na gumagana ang TSDB sa time series, isa itong magandang pagkakataon na ilapat ang diskarteng ito sa malalaking dataset.
Pag-aaral ng makina
Ang Machine learning (ML) ay maaaring mas mahusay kaysa sa tradisyonal na mga pamamaraan ng pagtataya ng serye ng oras. Mayroong isang tonelada ng mga pag-aaral doon na naghahambing ng mga pamamaraan ng pag-aaral ng makina sa higit pang mga klasikal na pamamaraan ng istatistika sa data ng TS. Ang mga neural network ay isa sa mga teknolohiya na malawakang sinaliksik at inilapat ang mga diskarte sa TS. Ang mga pamamaraan ng machine learning ay nangunguna sa mga ranking para sa pangongolekta ng data batay sa time series. Ang mga set na ito ay napatunayang mabisa, higit na mahusay ang performance ng mga pure TS set laban sa M3 o Kaggle.
Ang MO ay may sariling mga partikular na problema. Ang pagbuo ng mga feature o pagbuo ng mga bagong predictor mula sa isang dataset ay isang mahalagang hakbang para dito at maaaring magkaroon ng malaking epekto sa performance at maging isang kinakailangang paraan upang matugunan ang mga isyu sa trend at seasonality ng TS data. Gayundin, may mga problema ang ilang modelo sa kung gaano kahusay ang mga ito sa data, at kung hindi, maaaring makaligtaan nila ang pangunahing trend.
Ang serye ng oras at mga diskarte sa machine learning ay hindi dapat umiral nang hiwalay sa isa't isa. Maaari silang pagsamahin upang maibigay ang mga benepisyo ng bawat diskarte. Ang mga pamamaraan ng pagtataya at pagsusuri ng time series ay mahusay sa pag-decompose ng data sa trend at seasonal na data.mga elemento. Ang pagsusuring ito ay maaaring gamitin bilang input sa isang modelo ng ML na mayroong trending at seasonality na impormasyon sa algorithm nito, na nagbibigay ng pinakamahusay sa parehong mundo.
Pag-unawa sa pahayag ng problema
Para sa isang halimbawa, isaalang-alang ang TS na nauugnay sa pagtataya ng bilang ng mga pasahero sa isang bagong serbisyo ng high-speed na tren. Halimbawa, mayroon kang 2 taon ng data (Agosto 2016 - Setyembre 2018) at sa data na ito kailangan mong hulaan ang bilang ng mga pasahero para sa susunod na 7 buwan, na mayroong 2 taon ng data (2016-2018) sa oras-oras na antas na may bilang ng mga pasaherong bumibiyahe, at kinakailangang tantiyahin ang bilang ng mga ito sa hinaharap.
Subset ng dataset para sa pagtataya na may serye ng oras:
- Paggawa ng tren at test file para sa simulation.
- Ang unang 14 na buwan (Ago 2016 - Okt 2017) ay ginagamit bilang data ng pagsasanay, at ang susunod na 2 buwan (Nob 2017 - Dis 2017) ay data ng pagsubok.
- Pagsama-samahin ang dataset araw-araw.
Magsagawa ng visualization ng data upang makita kung paano ito nagbabago sa isang yugto ng panahon.
Naive Approach na paraan ng pagbuo
Ang library na ginamit sa kasong ito para sa TS prediction ay statsmodels. Dapat itong mai-install bago mailapat ang alinman sa mga pamamaraang ito. Marahil ay naka-install na ang statsmodels sa kapaligiran ng Python, ngunit hindi nito sinusuportahan ang mga pamamaraanhula, kaya kakailanganin mong i-clone ito mula sa repository at i-install ito mula sa pinagmulan.
Para sa halimbawang ito, nangangahulugan ito na ang mga presyo ng coin travel ay stable mula pa sa simula at sa buong yugto ng panahon. Ipinapalagay ng pamamaraang ito na ang susunod na inaasahang punto ay katumbas ng huling naobserbahang punto at tinatawag itong Naive Approach.
Ngayon kalkulahin ang standard deviation upang subukan ang katumpakan ng modelo sa test dataset. Mula sa halaga ng RMSE at sa graph sa itaas, maaari nating tapusin na ang Naive ay hindi angkop para sa mataas na volatility na mga opsyon, ngunit ginagamit para sa mga stable.
Simple medium na istilo
Upang ipakita ang paraan, gumuhit ng tsart, kung ipagpalagay na ang Y-axis ay kumakatawan sa presyo at ang X-axis ay kumakatawan sa oras (mga araw).
Mula dito maaari nating tapusin na ang presyo ay tumataas at bumaba nang random na may maliit na margin, upang ang average na halaga ay mananatiling pare-pareho. Sa kasong ito, maaari mong hulaan ang presyo ng susunod na panahon, katulad ng average para sa lahat ng mga nakaraang araw.
Ang pamamaraang ito ng pagtataya na may inaasahang average ng naunang naobserbahang mga punto ay tinatawag na simpleng average na paraan.
Sa kasong ito, kinukuha ang mga dating kilalang halaga, kinakalkula ang average at kinukuha bilang susunod na halaga. Siyempre, hindi ito magiging eksakto, ngunit medyo malapit ito, at may mga sitwasyon kung saan pinakamahusay na gumagana ang pamamaraang ito.
Batay sa mga resultang ipinapakita sa graph, pinakamahusay na gumagana ang pamamaraang ito kapag nananatiling pare-pareho ang average na halaga sa bawat yugto ng panahon. Kahit na ang walang muwang na pamamaraan ay mas mahusay kaysa sa karaniwan, ngunit hindi para sa lahat ng mga dataset. Inirerekomenda na subukan ang bawat modelo nang hakbang-hakbang at tingnan kung nagpapabuti ito sa resulta o hindi.
Moving Average na Modelo
Batay sa chart na ito, maaari nating tapusin na ang mga presyo ay tumaas nang ilang beses sa nakaraan sa pamamagitan ng malawak na margin, ngunit ngayon ay stable na. Upang magamit ang nakaraang paraan ng pag-average, kailangan mong kunin ang average ng lahat ng nakaraang data. Ang mga presyo ng unang panahon ay malakas na makakaimpluwensya sa pagtataya ng susunod na panahon. Samakatuwid, bilang pagpapabuti sa simpleng average, kunin ang average ng mga presyo para lang sa huling ilang yugto ng panahon.
Ang pamamaraan ng pagtataya na ito ay tinatawag na moving average technique, minsan ay tinutukoy bilang isang "n" size na "moving window". Gamit ang isang simpleng modelo, ang susunod na halaga sa TS ay hinuhulaan na susuriin ang katumpakan ng pamamaraan. Malinaw na nahihigitan ng Naive ang parehong Average at Moving Average para sa set ng data na ito.
May variant ng forecast sa paraan ng simpleng exponential smoothing. Sa moving average na paraan, ang mga nakaraang "n" na obserbasyon ay pantay na natimbang. Sa kasong ito, maaari kang makatagpo ng mga sitwasyon kung saan ang bawat isa sa nakaraang 'n' ay nakakaapekto sa hula sa sarili nitong paraan. Ang pagkakaiba-iba na ito, na nagtitimbang sa mga nakaraang obserbasyon nang iba, ay tinatawag na pamamaraanweighted moving average.
Extrapolation ng mga pattern
Ang isa sa mga pinakamahalagang katangian na kailangan upang isaalang-alang ang mga time series na forecasting algorithm ay ang kakayahang mag-extrapolate ng mga pattern sa labas ng domain ng data ng pagsasanay. Maraming ML algorithm ang walang ganitong kakayahan dahil malamang na limitado ang mga ito sa isang rehiyon na tinukoy ng data ng pagsasanay. Samakatuwid, hindi angkop ang mga ito para sa TS, na ang layunin nito ay maipakita ang resulta sa hinaharap.
Ang isa pang mahalagang katangian ng TS algorithm ay ang posibilidad na makakuha ng mga agwat ng kumpiyansa. Bagama't ito ang default na property para sa mga modelong TS, karamihan sa mga modelo ng ML ay walang ganitong kakayahan dahil hindi lahat ay nakabatay sa mga distribusyon ng istatistika.
Huwag isipin na ang mga simpleng pamamaraan ng istatistika lamang ang ginagamit upang mahulaan ang TS. Hindi naman ganoon. Mayroong maraming mga kumplikadong diskarte na maaaring maging lubhang kapaki-pakinabang sa mga espesyal na kaso. Ang Generalized Autoregressive Conditional Heteroscedasticity (GARCH), Bayesian at VAR ay ilan lamang sa mga ito.
Mayroon ding mga modelo ng neural network na maaaring ilapat sa mga serye ng oras na gumagamit ng mga lagging predictor at kayang humawak ng mga feature gaya ng neural network autoregression (NNAR). Mayroong kahit na mga time series na modelo na hiniram mula sa kumplikadong pag-aaral, lalo na sa paulit-ulit na pamilya ng neural network, gaya ng LSTM at GRU network.
Mga Sukatan sa Pagtatantya at Natirang Diagnostics
Ang pinakakaraniwang sukatan ng hula ayibig sabihin ng rms, na ginagamit ng maraming tao kapag nilulutas ang mga problema sa regression:
- MAPE dahil ito ay independyente sa sukat at kumakatawan sa ratio ng error sa mga aktwal na halaga bilang porsyento;
- MASE, na nagpapakita kung gaano kahusay ang performance ng hula kumpara sa naive average na hula.
Kapag na-adapt na ang isang paraan ng pagtataya, mahalagang suriin kung gaano kahusay nitong makuha ang mga modelo. Bagama't nakakatulong ang mga sukatan ng pagsusuri na matukoy kung gaano kalapit ang mga halaga sa aktwal na mga halaga, hindi nila sinusuri kung akma ang modelo sa TS. Ang mga natira ay isang magandang paraan upang suriin ito. Dahil sinusubukan ng programmer na maglapat ng mga TS pattern, maaari niyang asahan na ang mga error ay kumikilos tulad ng "white noise" dahil kinakatawan ng mga ito ang isang bagay na hindi ma-capture ng modelo.
Ang "White noise" ay dapat may mga sumusunod na katangian:
- Mga natitirang hindi nauugnay (Acf=0)
- Ang mga nalalabi ay sumusunod sa isang normal na distribusyon na may zero mean (walang pinapanigan) at pare-pareho ang pagkakaiba.
- Kung nawawala ang alinman sa dalawang property, may puwang para sa pagpapabuti sa modelo.
- Ang zero mean property ay madaling masuri gamit ang T-test.
- Ang mga katangian ng normality at constant variance ay biswal na kinokontrol gamit ang histogram ng mga residual o isang naaangkop na univariate normality test.
ARIMA Model
ARIMA - AutoRegressive Integrated Moving-Average na modelo, ay isa sa mga pinakasikat na paraan na ginagamit sa TS forecasting, pangunahinsa pamamagitan ng autocorrelation ng data upang lumikha ng mga de-kalidad na modelo.
Kapag sinusuri ang mga ARIMA coefficients, ang pangunahing pagpapalagay ay ang data ay nakatigil. Nangangahulugan ito na ang trend at seasonality ay hindi makakaapekto sa pagkakaiba. Maaaring masuri ang kalidad ng modelo sa pamamagitan ng paghahambing ng plot ng oras ng aktwal na mga halaga sa mga hinulaang halaga. Kung ang parehong mga kurba ay malapit, pagkatapos ay maaaring ipagpalagay na ang modelo ay umaangkop sa nasuri na kaso. Dapat nitong ibunyag ang anumang trend at seasonality, kung mayroon man.
Ang pagsusuri ng mga nalalabi ay dapat na magpakita kung ang modelo ay akma: ang mga random na nalalabi ay nangangahulugan na ito ay tumpak. Ang paglalagay ng ARIMA na may mga parameter (0, 1, 1) ay magbibigay ng parehong mga resulta gaya ng exponential smoothing, at ang paggamit ng mga parameter (0, 2, 2) ay magbibigay ng double exponential smoothing na mga resulta.
Maaari mong i-access ang mga setting ng ARIMA sa Excel:
- Simulan ang Excel.
- Hanapin ang XL MINER sa toolbar.
- Sa ribbon, piliin ang ARIMA mula sa drop-down na menu.
Buod ng ARIMA Model Capabilities:
- ARIMA - Autoregressive Integrated Moving Average.
- Forecasting model na ginamit sa time series analysis.
- ARIMA parameter syntax: ARIMA (p, d, q) kung saan p=bilang ng mga autoregressive na termino, d=bilang ng mga seasonal na pagkakaiba, at q=bilang ng mga moving average na termino.
Algorithm sa SQL Server
Ang pagsasagawa ng cross prediction ay isa sa mga mahalagamga tampok ng serye ng oras sa pagtataya ng mga gawaing pinansyal. Kung dalawang magkakaugnay na serye ang gagamitin, ang resultang modelo ay magagamit upang mahulaan ang mga resulta ng isang serye batay sa gawi ng iba.
Ang SQL Server 2008 ay may makapangyarihang mga bagong feature ng time series upang matutunan at gamitin. Ang tool ay may madaling ma-access na TS data, isang madaling gamitin na interface para sa pagtulad at paggawa ng mga function ng algorithm, at isang window ng paliwanag na may link sa mga query sa server-side na DMX upang maunawaan mo kung ano ang nangyayari sa loob.
Ang Market time series ay isang malawak na lugar kung saan maaaring ilapat ang mga modelo at algorithm ng malalim na pag-aaral. Ang mga bangko, broker at pondo ay nag-eeksperimento na ngayon sa kanilang deployment ng pagsusuri at pagtataya para sa mga indeks, halaga ng palitan, futures, presyo ng cryptocurrency, stock ng gobyerno at higit pa.
Sa time series forecasting, ang neural network ay nakakahanap ng mga predictable pattern sa pamamagitan ng pag-aaral ng mga istruktura at trend ng mga market at nagbibigay ng payo sa mga trader. Makakatulong din ang mga network na ito na makakita ng mga anomalya gaya ng mga hindi inaasahang peak, falls, pagbabago ng trend at level shift. Maraming modelo ng artificial intelligence ang ginagamit para sa mga pagtataya sa pananalapi.