Toto je statické zobrazenie, ak chcete Notebook spustiť, prihláste sa do prostredia Data Lab.
Úlohy k prednáške 6 – Časové rady (Time Series)¶
V tomto notebooku si precvičíme rôzne techniky analýzy časových radov pomocou datasetu Denné minimálne teploty (daily-min-temperatures
). Tento dataset obsahuje denné záznamy o minimálnych teplotách v meste Melbourne, Austrália, v období 1981–1990.
Import a príprava prostredia¶
Úloha 0:
- Importujte potrebné knižnice:
pandas
akopd
numpy
akonp
matplotlib.pyplot
akoplt
seaborn
akosns
seasonal_decompose
zstatsmodels.tsa.seasonal
plot_acf
,plot_pacf
zstatsmodels.graphics.tsaplots
- Nastavte základný štýl pre grafy pomocou
seaborn
. - Aktivujte inline vykresľovanie grafov v Jupyter Notebooku.
In [2]:
# YOUR CODE
1. Načítanie dát a základný prieskum¶
Úloha 1:
- Načítajte dataset
daily-min-temperatures
z URLhttps://raw.githubusercontent.com/jbrownlee/Datasets/master/daily-min-temperatures.csv
pomocoupandas
. - Vytvorte objekt typu DataFrame s názvom
df_temps
. - Vypíšte:
- Rozmery datasetu (počet riadkov, počet stĺpcov)
- Hlavné informácie o DataFrame – typy stĺpcov, koľko je neprázdnych hodnôt
- Základné štatistiky o číselných stĺpcoch
- Pozrite si prvých 5 riadkov.
In [1]:
# YOUR CODE
2. Úprava dátového indexu na čas¶
Úloha 2:
- Prekonvertujte stĺpec
Date
na formátdatetime
. - Nastavte tento stĺpec
Date
ako index DataFramedf_temps
a vytvorte nový DataFramedf_ts
. - Overte, že index je typu
DatetimeIndex
. - Vypíšte prvých 5 riadkov pre nový DataFrame
df_ts
.
In [3]:
# YOUR CODE
3. Základná analýza a vizualizácia¶
Úloha 3:
- Vykonajte základnú štatistickú analýzu časového radu
df_ts
. - Vytvorte lineárny graf dennej minimálnej teploty pomocou
matplotlib
. - Vyberte dáta za konkrétny rok (napr. 1985) a vykreslite teploty pre tento rok.
In [4]:
# TODO
4. Vyhladzovanie a rolovanie¶
Úloha 4:
- Vytvorte nový stĺpec
ma_30
, ktorý bude obsahovať 30-dňový kĺzavý priemer dennej minimálnej teploty. - Vykreslite pôvodné dáta spolu s kĺzavým priemerom.
- Diskutujte, ako kĺzavý priemer ovplyvňuje zobrazenie trendu v dátach.
In [5]:
# YOUR CODE
5. Exponenciálne vyhladzovanie¶
Úloha 5:
- Vytvorte nový stĺpec
ewm_alpha_0.1
, ktorý bude obsahovať Exponentially Weighted Moving Average (EWMA) s alpha=0.1. - Vykreslite pôvodné dáta spolu s EWMA.
- Porovnajte EWMA s kĺzavým priemerom a diskutujte rozdiely.
In [6]:
# YOUR CODE
6. Differencing a shifting¶
Úloha 6:
- Pridajte stĺpce
diff_1
ashift_1
do DataFramedf_ts
:diff_1
– prvý rozdiel (hodnota v čase t minus hodnota v čase t–1).shift_1
– posun hodnôt o 1 obdobie dozadu.
- Vysvetlite, čo tieto stĺpce reprezentujú a aký majú význam pri analýze časových radov.
In [7]:
# YOUR CODE
7. Dekompozícia časového radu¶
Úloha 7:
- Vykonajte dekompozíciu časového radu pomocou funkcie
seasonal_decompose
s modelomadditive
a periodou 365 dní. - Vykreslite výsledky dekompozície (Observed, Trend, Seasonal, Residual).
- Diskutujte o výsledkoch – identifikujte trend a sezónnosť v dátach.
In [8]:
# YOUR CODE
8. Resampling a agregácia¶
Úloha 8:
- Resampleujte denné dáta na mesačné priemery teplôt pomocou
resample('M').mean()
a vytvorte nový DataFramedf_monthly
. - Vykreslite mesačné priemery dennej minimálnej teploty.
- Diskutujte, ako resampling ovplyvňuje analýzu dát.
In [9]:
# YOUR CODE
9. Autokorelácia a čiastočná autokorelácia¶
Úloha 9:
- Vykreslite Autokoreláciu (ACF) a Čiastočnú autokoreláciu (PACF) pre denné minimálne teploty pomocou
plot_acf
aplot_pacf
zstatsmodels
. - Interpretujte grafy – identifikujte, či existuje silná autokorelácia a na ktorých lagoch.
In [10]:
# YOUR CODE