<commit_before>\documentclass[a4paper,12pt, czech]{article}
\usepackage[utf8]{inputenc} %Coding of input file - no problems with glyphs (ěš)
\usepackage[T1]{fontenc} %Coding of output file - no problems with glyphs (ěš)
\usepackage{babel} %Hyphenation and typesetting of loaded langs
\usepackage{datetime}

\usepackage{caption}
\usepackage{graphicx} %Pictures

\usepackage[pdftex,                %%% hyper-references for pdflatex
bookmarks=true,%                   %%% generate bookmarks ...
bookmarksnumbered=true,%           %%% ... with numbers
hypertexnames=false,%              %%% needed for correct links to figures !!!
breaklinks=true,%                  %%% break links if exceeding a single line
%linkbordercolor={0 0 1},
pdfauthor={<NAME>},
pdftitle={Report z domaciho ukolu},
pdfkeywords={casove rady, akcie, obchodovany objem},
pdfsubject={Domaci ukol}]{hyperref}

\usepackage{xcolor} %Setting colors of references
\definecolor{dark-red}{rgb}{.4,.15,.15}
\definecolor{dark-blue}{rgb}{.15,.15,.4}
\definecolor{medium-blue}{rgb}{0,0,.5}
\hypersetup{
	colorlinks, linkcolor={dark-red},
	citecolor={dark-blue}, urlcolor={medium-blue} %url can be magenta 
}


\usepackage{parskip} %No indentation of first line on paragraph and line 
\usepackage{setspace} %Set spacing between lines
\setstretch{1.15}


\newcommand{\code}[1]{\texttt{#1}}

%opening
\title{Report z domácího úkolu}
\author{<NAME>}

\begin{document}

\maketitle

\clearpage

\section{Zadání}

\begin{enumerate}
	\item Z Yahoo Finance stáhněte denní data akciového indexu S\&P 500 za období \formatdate{1}{1}{2010} -- \formatdate{31}{7}{2014}.
	
	\item  Navrhněte a nakalibrujte několik různých modelů $E\left[v_{d+1}|F_d\right]$, kde $v_{d+1}$ je objem obchodů (volume) v den $d+1$ a $F_d$ je veškerá informace do dne $d$ (včetně).
	Odhadněte přesnost modelů (jako kritérium použijte $SSE$, resp. $R^2$) na testovacích (out of sample) datech a porovnejte tuto přesnost s referenčním modelem $\hat{E}\left[v_{d+1}\right] = v_d$.
	
\end{enumerate}

\section{Použité programy}

Kód pro analýzu časové řady byl vytvořen v programovacím jazyku \code{Python 3.6.1}.

Pro samotné zpracování a zobrazení dat byly navíc použity balíčky \code{numpy (1.13.0)}, \code{pandas (0.20.2)}, \code{matplotlib (2.0.2)} a \code{statsmodels (0.8.0)}.

\section{Vstupní data}

Vstupní byla ručně stažena z webu \href{https://finance.yahoo.com/quote/\%5EGSPC/history?period1=1262300400\&period2=1497045600\&interval=1d\&filter=history\&frequency=1d}{Yahoo Finance}.
Byly zkoušeny i další metody získávání dat z tohoto webu (balíčky Pythonu \code{yahoo-finance} a \code{pandas-datareader} či API Yahoo Finance), nicméně bez úspěchu.

Vstupní data jsou tedy staticky uložena v adresáři \code{./data/} v souboru nazvaném \code{\^{}GSPC.csv}.

\subsection{Zpracování dat}

Tabulková data byla načtena z \code{csv} souboru jako \code{pandas.DataFrame}.
Předzpracování proběhlo v následujících krocích:

\begin{enumerate}
	\item nastavení frekvence dat na pracovní dny,
	\item doplnění chybějících dat interpolací,
	\item rozdělení dat na testovací (out of sample) a kalibrační část (pro kalibraci použito 80\% dat),
	\item škálování dat do řádu $10^0$ (viz obr. \ref{fig:preprocess}), a
	\item variantně vytvoření první diference dat (viz obr. \ref{fig:preprocess}).
\end{enumerate}

\begin{figure}[htbp]
	\centering
	\includegraphics[width=0.85\linewidth]{../plots/preprocessing}
	\caption{Předzpracování použitých dat pomocí škálování (modrá řada) a následně první diference (oranžová řada)}
	\label{fig:preprocess}
\end{figure}

Dále byla provedena dekompozice sezónních vlivů pomocí funkce z \code{seasonal\_} \code{decompose} z balíčku \code{statsmodels} s přibližně čtvrtletní frekvencí (90 dní).
Výsledek je vidět na obrázku \ref{fig:seasonal_anl}.
Plyne z něj, že celkový trend objemu obchodů se ve sledovaném období lehce snižoval.
Dále je vidět, že nějaké sezónní vlivy se v časové řadě vyskytují nicméně jejich vliv je menší než vliv neznámých činitelů (v obrázku řada Residual).
Závěrem lze říci, že na sezónní vlivy bude muset při modelování být brán zřetel, protože se nejedná o stacionární řadu.

\begin{figure}[htbp]
	\centering
	\includegraphics[width=0.85\linewidth]{../plots/seasonal_anl}
	\caption{Dekompozice sezónních vlivů na objem obchodů}
	\label{fig:seasonal_anl}
\end{figure}


\section{Modely}



\subsection{Referenční model}

\subsection{SARIMAX}

\subsection{VARMAX}

\clearpage

\section{Závěr}

\end{document}<commit_msg>add models, ref model, glossary<commit_after>\documentclass[a4paper,12pt, czech]{article}
\usepackage[utf8]{inputenc} %Coding of input file - no problems with glyphs (ěš)
\usepackage[T1]{fontenc} %Coding of output file - no problems with glyphs (ěš)
\usepackage{babel} %Hyphenation and typesetting of loaded langs
\usepackage{datetime}

\usepackage{todonotes} %Adding todo notes
\usepackage{siunitx} %typography of units
\sisetup{separate-uncertainty=true,
	range-units = single}

\usepackage{caption}
\usepackage{graphicx} %Pictures

\usepackage[pdftex,                %%% hyper-references for pdflatex
bookmarks=true,%                   %%% generate bookmarks ...
bookmarksnumbered=true,%           %%% ... with numbers
hypertexnames=false,%              %%% needed for correct links to figures !!!
breaklinks=true,%                  %%% break links if exceeding a single line
%linkbordercolor={0 0 1},
pdfauthor={<NAME>},
pdftitle={Report z domaciho ukolu},
pdfkeywords={casove rady, akcie, obchodovany objem},
pdfsubject={Domaci ukol}]{hyperref}

\usepackage{xcolor} %Setting colors of references
\definecolor{dark-red}{rgb}{.4,.15,.15}
\definecolor{dark-blue}{rgb}{.15,.15,.4}
\definecolor{medium-blue}{rgb}{0,0,.5}
\hypersetup{
	colorlinks, linkcolor={dark-red},
	citecolor={dark-blue}, urlcolor={medium-blue} %url can be magenta 
}


\usepackage{parskip} %No indentation of first line on paragraph and line 
\usepackage{setspace} %Set spacing between lines
\setstretch{1.15}


\newcommand{\code}[1]{\texttt{#1}}


%===========Glossary================
\usepackage[acronym,toc,nopostdot, nonumberlist,nomain,shortcuts]{glossaries}%nogroupskip
%\usepackage{glossaries-extra}
\renewcommand{\glsgroupskip}{}% make nothing happen between groups 

%\newacronym{acr}{}{\vspace*{-7.65mm}}

\setacronymstyle{long-short}

\newacronym[description=napsat cesky \todo{dodelat}]{sarimax}{SARIMAX}{Seasonal ... anglicky}
\newacronym[description=napsat cesky \todo{dodelat}]{varmax}{VARMAX}{Vector Auto Regressive ... anglicky}

\makenoidxglossaries



%opening
\title{Report z domácího úkolu}
\author{<NAME>}

\begin{document}

\maketitle

\clearpage

\section{Zadání} \label{sec:zadani}

\begin{enumerate}
	\item Z Yahoo Finance stáhněte denní data akciového indexu S\&P 500 za období \formatdate{1}{1}{2010} -- \formatdate{31}{7}{2014}. \label{list:zadani_data}
	
	\item  Navrhněte a nakalibrujte několik různých modelů $E\left[v_{d+1}|F_d\right]$, kde $v_{d+1}$ je objem obchodů (volume) v den $d+1$ a $F_d$ je veškerá informace do dne $d$ (včetně). \label{list:zadani_modely}
	Odhadněte přesnost modelů (jako kritérium použijte $SSE$, resp. $R^2$) na testovacích (out of sample) datech a porovnejte tuto přesnost s referenčním modelem $\hat{E}\left[v_{d+1}\right] = v_d$.
	
\end{enumerate}

\section{Použité programy}

Kód pro analýzu časové řady byl vytvořen v programovacím jazyku \code{Python 3.6.1}.

Pro samotné zpracování a zobrazení dat byly navíc použity balíčky \code{numpy (1.13.0)}, \code{pandas (0.20.2)}, \code{matplotlib (2.0.2)} a \code{statsmodels (0.8.0)}.

\section{Vstupní data}

Vstupní byla ručně stažena z webu \href{https://finance.yahoo.com/quote/\%5EGSPC/history?period1=1262300400\&period2=1497045600\&interval=1d\&filter=history\&frequency=1d}{Yahoo Finance}.
Byly zkoušeny i další metody získávání dat z tohoto webu (balíčky Pythonu \code{yahoo-finance} a \code{pandas-datareader} či API Yahoo Finance), nicméně bez úspěchu.

Vstupní data jsou tedy staticky uložena v adresáři \code{./data/} v souboru nazvaném \code{\^{}GSPC.csv}.

\subsection{Zpracování dat}

Tabulková data byla načtena z \code{csv} souboru jako \code{pandas.DataFrame}.
Předzpracování proběhlo v následujících krocích:

\begin{enumerate}
	\item nastavení frekvence dat na pracovní dny,
	\item doplnění chybějících dat interpolací,
	\item rozdělení dat na testovací (out of sample) a kalibrační část (pro kalibraci použito 80\% dat),
	\item škálování dat do řádu $10^0$ (viz obr. \ref{fig:preprocess}), a
	\item variantně vytvoření první diference dat (viz obr. \ref{fig:preprocess}).
\end{enumerate}

\begin{figure}[htbp]
	\centering
	\includegraphics[width=0.85\linewidth]{../plots/preprocessing}
	\caption{Předzpracování použitých dat pomocí škálování (modrá řada) a následně první diference (oranžová řada)}
	\label{fig:preprocess}
\end{figure}

Dále byla provedena dekompozice sezónních vlivů pomocí funkce z \code{seasonal\_} \code{decompose} z balíčku \code{statsmodels} s přibližně čtvrtletní frekvencí (90 dní).
Výsledek je vidět na obrázku \ref{fig:seasonal_anl}.
Plyne z něj, že celkový trend objemu obchodů se ve sledovaném období lehce snižoval.
Dále je vidět, že nějaké sezónní vlivy se v časové řadě vyskytují nicméně jejich vliv je menší než vliv neznámých činitelů (v obrázku řada Residual).
Závěrem lze říci, že na sezónní vlivy bude muset při modelování být brán zřetel, protože se nejedná o stacionární řadu.

\begin{figure}[htbp]
	\centering
	\includegraphics[width=0.85\linewidth]{../plots/seasonal_anl}
	\caption{Dekompozice sezónních vlivů na objem obchodů}
	\label{fig:seasonal_anl}
\end{figure}


\section{Modely}

Pro modelování časových řad byly použity statespace modely \todo{přeložit a rozepsat} \gls{sarimax} a \gls{varmax} z balíčku \code{statsmodels}.
První z modelů byl vybrán proto, že umožňuje popsat sezónní vlivy interně v modelu.
Druhý model byl vybrán proto, že dle bodu \ref{list:zadani_modely} v \nameref{sec:zadani} bylo nutno do modelu zahrnout veškerá dostupná data, tedy nejen předchozí data o objemech obchodů.

\subsection{Referenční model}

Referenční model byl sestaven podle bodu \ref{list:zadani_modely} v \nameref{sec:zadani}, tedy

\begin{equation}\label{eq:reference}
\hat{E}\left[v_{d+1}\right] = v_d.
\end{equation}

Konečná implementace vypadala tedy tak, že pro objem obchodů předpovídaných pro následující den byl dosazen objem obchodů ze dne současného, tedy $v_{d+1} = v_d$.
Pro škálovaná out of sample data vychází $R^2=\num{-.0297}$ a pro první diferenci škálovaných dat $R^2=\num{-1.7081}$.
V prvním případě je tedy předpověď tohoto modelu o něco málo horší než, kdybychom brali pouze průměr z těchto dat.
V případě druhém je výrazně horší.
V každém případě nám to poskytuje dobré porovnání pro méně naivní modely.

\subsection{\glsentryshort{sarimax}}

\subsection{\glsentryshort{varmax}}

\clearpage

\section{Závěr}

%{'reference; first_diff': Results(SSE=182.96, SST= 67.56, R^2=-1.7081),
%	'reference; scaled': Results(SSE= 67.56, SST= 65.61, R^2=-0.0297),
%	'sarimax; first_diff': Results(SSE= 68.15, SST= 67.56, R^2=-0.0087),
%	'sarimax; scaled': Results(SSE= 52.01, SST= 65.61, R^2=0.2074),
%	'varmax; first_diff': Results(SSE= 54.37, SST= 67.56, R^2=0.1953),
%	'varmax; scaled': Results(SSE= 59.15, SST= 65.61, R^2=0.0985)}


\clearpage
\singlespacing
\printnoidxglossary[type=acronym,title=Seznam zkratek,sort=word]


\end{document}
{'fraction_non_alphanumeric': 0.12607474995613266, 'fraction_numerical': 0.026759080540445693, 'mean_word_length': 5.076226012793177, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1308654', 'n_tokens_mistral': 4819, 'n_tokens_neox': 4718, 'n_words': 1130}