## 2 Methodology and Data  
### Support Vector Regression  
The Support Vector Regression (SVR) stems from the research field of machine learning and it is a direct extension of the Support Vector Machine algorithm. The ability of the SVR in better describing nonlinear and nonstationary phenomena than other econometric techniques has gained the interest of many researchers in economics and finance ( for more details see ([PERSON], 2018; [PERSON], 2018; [PERSON], 2018)). The technique was proposed by [PERSON] and [PERSON] in [PERSON] and [PERSON] (2018) and it attempts to describe actual data observations based on a function where the errors terms do not play any role and are not taken into account as long as they do not violate a predefined threshold \(\varepsilon\); only errors higher than \(\varepsilon\) are penalized. The observations that specify the \"error tolerance band\" given \(\varepsilon\) are called Support Vectors (SV) and are located through a minimization procedure. Unlike other machine learning approaches, the SVR is based on a convex minimization problem with a unique global minimum, avoiding local minima. In order to train the model, we use a large part of the available dataset to pinpoint the SVs, while the remaining observations are utilized to test the generalization ability of the model. A typical approach in avoiding overfit of the model is to use cross-validation training techniques. For a training dataset \(D=[(x_{1},y_{1}),(x_{2},y_{2}),\ldots(x_{n},y_{n})],x_{i}\in\mathbb{R}^{m},y_ {i}\in\mathbb{R},i=1,2,\ldots n\), where \(x_{i}\) is a vector of independent variables and \(y_{i}\) is the dependent variable, the linear regression function takes the form of \(y=f(\mathbf{x})=\mathbf{w}^{T}\mathbf{x}+b\) (where \(T\) denotes the transpose). This is achieved by solving:  
\[\min\Biggl{(}\frac{1}{2}\parallel\mathbf{w}\parallel^{2}+C\sum_{i=1}^{n}(\xi_{i }+\xi_{i}^{*})\Biggr{)} \tag{1}\]\[\text{subject to}\left\{ \begin{array}{c}y_{i}-\left(\mathbf{w}^{\intercal}\mathbf{x}_{i}+b \right)\leq\varepsilon+\zeta_{i}\\ \left(\mathbf{w}^{\intercal}\mathbf{x}_{i}+b\right)-y_{i}\leq\varepsilon+\zeta_{i}^{*} \\ \zeta_{i},\,\zeta_{i}^{*}\geq 0\end{array} \right.\]  
where \(\varepsilon\) defines the width of the tolerance band, and \(\zeta_{i},\,\zeta_{i}^{*}\) are slack (penalty) variables controlled through a penalty parameter C (see Figure 1). Points inside the tolerance band are not penalized. System (1) describes a convex quadratic optimization problem with linear constraints, where the first part controls the generalization ability of the regression, through the Euclidean norm \(\mathbf{w}\). The second part of the objective function controls the fit of the regression to the training data. When the parameter C is increased, we apply a \"heavier\" penalty on any point outside the error tolerance band i.e., with \(\zeta_{i}\geq 0\) or \(\zeta_{i}^{*}\geq 0\). The optimum model in the one that finds the balance between the two parts of the objective function. Using the Lagrange multipliers in System (1), the solution is given by:  
\[\mathbf{w}=\sum_{i=1}^{n}(a_{i}-a_{i}^{*})\mathbf{x}_{i} \tag{2}\]  
\[\text{and }y=\sum_{i=1}^{n}(a_{i}-a_{i}^{*})\mathbf{x}_{i}^{T}\mathbf{x} \tag{3}\]  
with the coefficient \(\alpha_{i},\,a_{i}^{*}=0\) for all non-SVs observations. Nevertheless, most real-life phenomena are nonlinear and they cannot be adequately described using linear models. Given that the SVR is a linear model that finds a linear tolerance band, we extend it by coupling it with kernel functions. The notion of a kernel function is to project the initial dataset into a \"richer\" dimensional space, where we can find a linear solution, and then return to the initial dimensional space. The so-called \"kernel trick\" ensures small computational effort, since the projection is achieved using inner products instead of mapping each data point explicitly. The use of a nonlinear kernel function transforms our SVR model into a nonlinear one.