KSNUMKS tehnike koje morate znati za savladavanje analize vremenskih serija

Uvod

Podaci o vremenskim serijama su svuda - cene akcija, vremenski podaci, web sajt saobraćaj i vaš dnevni broj koraka. Ipak, smisao ovih tačaka podataka tokom vremena i predviđanje budućih trendova može biti izazov. Ovladavanje analizom vremenskih serija je od ključnog značaja za naučnike podataka, poslovne analitičare i istraživače koji žele da naprave tačne prognoze i steknu značajne uvide.

U ovom postu ćemo istražiti pet osnovnih tehnika koje će vam pomoći da steknete solidno razumevanje analize vremenskih serija. Do kraja, znaćete kako da razbijete i analizirate svoje podatke kao profesionalac i izgradite bolje prediktivne modele koristeći Pithon.

Razumevanje osnova analize vremenskih serija

Šta je vremenska serija?

Vremenska serija je niz tačaka podataka prikupljenih ili zabeleženih u uzastopnim vremenskim tačkama. Za razliku od drugih tipova podataka, vremenske serije imaju prirodno vremensko uređenje koje treba uzeti u obzir tokom analize. Na primer, dnevne cene zatvaranja akcija su klasičan primer podataka vremenskih serija.

Zašto je analiza vremenskih serija važna?

Analiza vremenskih serija pomaže u otkrivanju skrivenih obrazaca i predviđanju budućih trendova. Aplikacije se kreću od:

  • Predviđanje cena akcija ili finansijskih trendova.
  • Predviđanje vremenskih obrazaca ili sezonskih pojava.
  • Procena potražnje za proizvodima u e-trgovini ili maloprodaji.

Da bismo savladali analizu vremenskih serija, ispitajmo pet ključnih tehnika za efikasnu analizu podataka.

Tehnika 1: Dekompozicija vremenskih serija

Dekompozicija vremenskih serija se odnosi na razbijanje vremenskih serija na tri glavne komponente:

  • Trend: Opšti pravac u kojem se podaci kreću tokom vremena.
  • Sezonalnost: Ponavljanje kratkoročnih ciklusa u podacima (npr. Nedeljno ili mesečno).
  • Rezidualni (buka): Preostala varijacija koja se ne može pripisati trendu ili sezonalnosti.

Aditiv vs. Multiplikativna dekompozicija

  • aditiv: i (t) = trend (t) + sezonalnost (t) + ostatak (t)
  • Multiplikativno: Y(t) = Trend(t) * Sezonalnost(t) * Rezidual(t)

Izbor zavisi od prirode vaših podataka. Koristite aditiv kada je sezonska varijacija konstantna tokom vremena; Koristite multiplikativ kada se varijacija menja proporcionalno trendu.

Primer u Pithon

Uvoz pande kao PD
Uvoz matplotlib.pyplot kao plt
Od statsmodels.tsa.sezonski uvoz seasonal_decompose

# Učitajte skup podataka vremenskih serija
data = pd.read_csv('sales_data.csv', index_col='Datum', parse_dates=Istina)

# Razgradi vremensku seriju
rezultat = seasonal_decompose(podaci ['Prodaja'], model = 'aditiv', period = KSNUMKS)

# Plot dekomponovane komponente
Rezultat.plot()
plt.show()

Tehnika 2: Izglađivanje i filtriranje

Izglađivanje pomaže da se ukloni buka iz vremenske serije, čineći trendove i druge komponente vidljivijim. Neke popularne metode uključuju:

  • Jednostavna pokretni prosek (SMA): Prosečne podatke preko fiksnog prozora za izglađivanje kratkoročnih fluktuacija.
  • Eksponencijalni pokretni prosek (EMA): Slično SMA, ali daje veću težinu nedavnim zapažanjima.
  • Eksponencijalno izglađivanje (Holt-Vinters): Računi za trend i sezonalnost.

Primer u Pithonu: Jednostavan pokretni prosek

# Izračunajte pokretni prosek (prozor = 12 meseci)
data['SMA'] = data['Prodaja'].rolling(vindov=12).mean()

# Zemljište original vs. izglađena serija
data[['Prodaja', 'SMA']].plot()
plt.show()

Ovaj kod izračunava 12-mesečni prosjek za izglađivanje originalnih podataka o prodaji. Ovo vam može pomoći da lakše uočite dugoročne trendove.

Tehnika 3: Autoregresivni integrisani modeli pokretnog proseka (ARIMA)

ARIMA model je jedan od najčešće korišćenih modela za predviđanje vremenskih serija. Tri parametra ga definišu:

  • AR (Autoregresivno): Odnos između posmatranja i njegovih prethodnih zapažanja.
  • Ja (Integrisani): Razlikovanje podataka da bi bilo stacionarno.
  • MA (Moving Average): Uključivanje zavisnosti između posmatranja i njegovih preostalih grešaka.

Ključ je u odabiru prave kombinacije parametara (p, d, k) za tačno predviđanje budućih tačaka u seriji.

Primer u Pithonu: Izgradnja ARIMA modela

od statsmodels.tsa.arima.model uvoz ARIMA
# Uklopite ARIMA model (p = 1, d = 1, k = 1 kao primer)
model = ARIMA (podaci ['Prodaja'], order = (1, 1, 1))
model_fit = model.fit()

# Rezime  modela
print(model_fit.summary())

# Predviđanje narednih 12 perioda
prognoza = model_fit.forecast (koraci = 12)
štampa(prognoza)

Ovaj primer odgovara ARIMA modelu podacima o prodaji i predviđa narednih 12 perioda. Fino podešavanje parametara p, d i k je od ključnog značaja za bolje rezultate.

Tehnika 4: Stacionarnost i razlikovanje

Šta je Stacionarnost?

Stacionarna vremenska serija ima konstantnu sredinu, varijansu i autokovarijancu tokom vremena. Stacionarnost je ključna za mnoge modele vremenskih serija kao što je ARIMA.

Testiranje stacionarnosti

Dva standardna testa su:

  • Augmented Dickei-Fuller (ADF) test: Testira da li je prisutan koren jedinice, što ukazuje na nestacionarnost.
  • Kwiatkovski-Phillips-Schmidt-Shin (KPSS) Test: Testira nultu hipotezu stacionarnosti.

Razlikovanje za postizanje stacionarnosti

Diferencijacija pomaže stabilizaciji srednje vrednosti vremenske serije oduzimanjem prethodnog zapažanja od trenutnog.

Primer u Pithonu: Differencing i ADF test

from statsmodels.tsa.stattools import adfuller

# Perform first-order differencing
data['Differenced'] = data['Sales'].diff()

# ADF Test
result = adfuller(data['Differenced'].dropna())
print(f'ADF Statistic: {result[0]}')
print(f'p-value: {result[1]}')

# Plot the differenced series
data['Differenced'].plot()
plt.show()

Podaci o prodaji se razlikuju u ovom primeru, a ADF test se koristi za proveru stacionarnosti.

Tehnika 5: Sezonska razgradnja i sezonska ARIMA (SARIMA)

STL razlaganje

STL (Sezonska i trendovska dekompozicija koristeći Les) je moćan alat za razdvajanje sezonskih, trendovskih i rezidualnih komponenti.

SARIMA Model

Kada vaši podaci pokazuju jasnu sezonalnost, proširenje ARIMA - SARIMA - je prikladnije. Ima dodatne sezonske parametre za rukovanje ponavljajućim obrascima.

Primer u Pithonu: SARIMA model

from statsmodels.tsa.statespace.sarimax import SARIMAX
# Fit model SARIMA (sezonski red naveden kao (KSNUMKS, KSNUMKS, KSNUMKS))
model = SARIMAX(data['Prodaja'], order =(1, 1, 1), seasonal_order=(1, 1, 1, 12))
model_fit = model.fit()

# Rezime  modela
print(model_fit.summary())

# Predviđanje narednih 12 perioda
prognoza = model_fit.forecast (koraci = KSNUMKS)
štampa(prognoza)

Ovaj primer odgovara SARIMA model podacima, navodeći sezonski obrazac od 12 meseci.

Praktični savet

Iterativno poboljšajte svoje modele i potvrdite prognoze sa novim podacima za optimalnu tačnost.

Alati i softver za analizu vremenskih serija

  • Pithon biblioteke:
    • Pande za manipulaciju podacima.
    • statsmodels i Prophet za modeliranje.
    • Scikit-Learn za aplikacije za mašinsko učenje.
  • R paketi:
    • prognoza i tseries.
  • Ostali alati:
    • Ekcel za jednostavnu analizu.
    • Tableau za vizuelizaciju podataka.

Zakljuиak

Razumevanjem i primenom ovih pet tehnika - dekompozicija, izglađivanje, ARIMA modeliranje, stacionarnost i sezonska dekompozicija - bićete na dobrom putu da savladate analizu vremenskih serija.

Želite da saznate više o Tableau?

Obratite se našem stručnjaku za Tableau da istražite kako vam možemo pomoći da iskoristite podatke za bolji uvid.

Potrebni su nam vaši kontakt podaci za obradu vašeg zahteva, pružanje informacija koje ste tražili ili vas kontaktirati o našim uslugama. Možete se odjaviti sa ove usluge u bilo kom trenutku. Sve informacije o obradi vaših podataka možete pronaći u našoj politici privatnosti.

Hvala! Vaš podnesak je primljen!
Ups! Nešto je pošlo po zlu prilikom podnošenja obrasca.

Želite da saznate više o Tableau?

Obratite se našem stručnjaku za Tableau da istražite kako vam možemo pomoći da iskoristite podatke za bolji uvid.