Vijesti o Tehnologiji, Recenzije i Savjeti!

Vodič za PyFlux – Python biblioteka za analizu vremenskih nizova i predviđanje

Napomena: Sljedeći članak će vam pomoći: Vodič za PyFlux – Python biblioteka za analizu vremenskih nizova i predviđanje

Podaci vremenske serije vrsta su podataka koji se mijenjaju tijekom vremenskog razdoblja. Podaci o prodaji poduzeća nisu isti za svaku godinu, nekada su veći od prethodne, a nekada niži. Slično tome, vidimo da se cijene dionica uvijek mijenjaju.

Iako nije lako predvidjeti podatke vremenske serije zbog različitih čimbenika o kojima ovisi, ipak Python ima različite modele strojnog učenja koji se mogu koristiti za analizu i predviđanje podataka vremenske serije.

PyFlux je biblioteka za analizu vremenskih serija i predviđanje. Možemo birati između fleksibilnog raspona opcija modeliranja i zaključivanja i koristiti izlaz za predviđanje. PyFlux ima većinu modela predviđanja vremenskih serija kao što su ARIMA, Garch, itd. unaprijed definiranih samo trebamo pozvati model koji trebamo analizirati.

U ovom ćemo članku istražiti PyFlux i značajke koje su prisutne u PyFluxu za analizu vremenskih serija i predviđanje.

Provedba

Počet ćemo instaliranjem PyFluxa od strane pip instalirajte PyFlux.

    Uvoz potrebnih biblioteka

Ako istražujemo PyFlux, mi ćemo analizirati podatke o dionicama, preuzet ćemo podatke o dionicama s ‘Yahooa’ pomoću Pandas DataReadera i ticker za odgovarajuću dionicu. Uvezimo potrebne biblioteke.

iz pandas_datareader.data import DataReader

import matplotlib.pyplot kao plt

import PyFlux kao pf

    Preuzimanje podataka

Koristit ćemo Microsoftove podatke o dionicama za ovaj članak, možemo ih preuzeti koristeći Pandas DataReader i Yahoo. Simbol dionice za Microsoft je MSFT.

msft = DataReader(‘MSFT’, ‘yahoo’, datetime(2000,6,1), datum i vrijeme (2020,6,1))

msft.head()

    Izračunavanje povrata dionica

Moramo izračunati povrat udjela i pohraniti ga u podatkovni okvir pod nazivom povrati. Ovaj podatkovni okvir sadržavat će samo stupac povrata i datuma.

# Pronalaženje povrata

vraća = pd.DataFrame(np.diff(np.log(msft[‘Adj Close’].vrijednosti)))

#Postavljanje stupca datuma kao indeksa

returns.index = msft.index.values[1:msft.index.values.shape[0]]

vraća.kolone = [“Returns”]

vraća.head()

    Vizualizacija podataka

Analizirat ćemo povrate pomoću biblioteke za vizualizaciju Matplotlib.

plt.figure(figsize=(15, 5))

plt.ylabel(“Vraća”)

plt.plot(vraća)

plt.show()

Povratna vizualizacija

Slično, koristit ćemo PyFlux za vizualizaciju ACR (automatske korelacije) dijagrama.

pf.acf_plot(vraća.vrijednosti.T[0])

ACF zaplet
    Analiza povrata korištenjem različitih modela

Sada ćemo izraditi i analizirati različite modele i u skladu s tim predvidjeti povrate. PyFlux podržava različite modele, ali mi ćemo se uglavnom fokusirati na GARCH i ARIMA.

    Model GARCH

Generalizirana autoregresivna uvjetna heteroskedastičnost (GARCH) je model koji se koristi za analizu različitih vrsta financijskih podataka. Koristi se za procjenu volatilnosti povrata dionica itd.

Počet ćemo kreiranjem GARCH modela koji je unaprijed definiran u PyFluxu.

gar_model = pf.GARCH(p=1q=1podaci=vraća)

Gornja izjava definira naš model s ‘p’ = broj autoregresijskih kašnjenja i ‘q’ = broj ARCH članova.

Sada ćemo prilagoditi model i koristiti funkciju sažetka za prikaz sažetka modela.

gar = gar_model.fit()

gar.summary()

Sažetak modela

Sljedeći korak je vizualizacija uklapanja preko grafikona.

gar_model.plot_fit(figsize=(15,5))

PyFlux

Ovdje možemo jasno vizualizirati procijenjene podatke sa stvarnim podacima i način na koji otkrivaju volatilnost podataka.

Sljedeći korak je vizualizacija predviđanja po modelu. Ovdje ćemo proslijediti parametar ‘h’ koji definira broj koraka koje treba predvidjeti unaprijed.

gar_model.plot_predict(h=20, figsize=(15,5))

Predviđanje povrata, PyFlux

Ovdje možemo analizirati predviđanje koje daje GARCH model.

    Model ARIMA

ARIMA je kratica za AutoRegressive Integrated Moving Average. To je klasa modela koja radi na predviđanju podataka vremenske serije na temelju prethodno danih podataka. To je unaprijed definirano u PyFluxu samo ga trebamo pozvati.

Kreirajmo ARIMA model definiranjem autoregresijskih kašnjenja i kašnjenja pokretnog prosjeka. Obitelj je distribucija vremenske serije koju ćemo koristiti kao pf.normal. Pokušavamo predvidjeti ‘Povrate’ tako da je naša ciljna vrijednost ‘Povrat’.

arm_model = pf.ARIMA(podaci=vraća, ar=4ma=4target=”Povrati”, obitelj = pf.Normal())

Slično modelu GARCH, ovaj ćemo model uklopiti s našim podacima i analizirati sažetak pomoću funkcije sažetka. Atribut latent_variable koji ćemo ovdje koristiti može biti ‘M-H’ ili ‘MLE’, mi ćemo koristiti ‘MLE’

ruka = ​​model.fit(“MLE”)

arm.summary()

PyFlux

Sada ćemo, slično koracima koji slijede za GARCH model, vizualizirati prikladni dijagram i dijagram predviđenih vrijednosti.

arm_model.plot_fit(figsize=(15,8))

PyFlux

Predviđat ćemo buduće vrijednosti s ‘prošlim vrijednostima = 200’ i 20 koraka unaprijed za predviđanje, tj. vrijednošću h=20.

arm_model.plot_predict(h=20,past_values=50,figsize=(15,5))

PyFlux

Ovdje možemo jasno analizirati predviđanje prinosa na Microsoft Stock koristeći ARIMA model definiran u PyFluxu.

Zaključak:

U ovom smo članku naučili o PyFluxu, python biblioteci otvorenog koda koja se koristi za predviđanje vremenskih serija. Vidjeli smo kako nam PyFlux olakšava odabir različitih modela i analizu rezultata koje ti modeli daju. Ovdje smo raspravljali o GARCH i ARIMA modelu, PyFlux sadrži niz drugih modela koje također možemo koristiti za analizu vremenskih serija i predviđanje.