{"id":344,"date":"2021-03-02T19:00:30","date_gmt":"2021-03-02T19:00:30","guid":{"rendered":"http:\/\/www.lancaster.ac.uk\/stor-i-student-sites\/lidia-andre\/?p=344"},"modified":"2022-01-24T13:34:16","modified_gmt":"2022-01-24T13:34:16","slug":"scenario-generation-ft-copulas","status":"publish","type":"post","link":"https:\/\/www.lancaster.ac.uk\/stor-i-student-sites\/lidia-andre\/2021\/03\/02\/scenario-generation-ft-copulas\/","title":{"rendered":"Scenario Generation ft. Copulas"},"content":{"rendered":"\n

In February, we started the Masterclasses in the STOR-i programme and the second we had, called “Modelling with Stochastic Programming”, was given by Dr. Stein Wallace from the Norwegian School of Economics. He covered a range of topics within Stochastic Programming and one of them was how to generate scenarios using copula-based methodologies. As I’ve never thought of copulas as a tool to generate scenarios, I decided to talk about it, briefly, in this blog post. <\/p>\n\n\n\n

Stochastic Programming<\/h4>\n\n\n\n

Let me start by explaining what is Stochastic Programming. In recent years, Stochastic Programming has become a useful tool to analyse and model decision problems when there is uncertainty. These models are usually based on multivariate probability distributions that express this uncertainty in the input data. Moreover, most applications deal with discrete probability distributions which in turn are described by a list of scenarios (i.e.,<\/em> realisations) and their related probabilities. As in most of the cases the multivariate distributions don’t have a suitable form for an optimisation model, a process to transform the distribution to scenarios is needed. Such process is called Scenario Generation. <\/p>\n\n\n\n

Usually, scenario-generation methods that describe the marginal distributions and the multivariate structure, respectively, using the first 4 moments and the correlation matrix (usually the Pearson’s correlation is applied here) are adopted. However, the correlation is limited as it often describes linear relationships. Thus, non-linear dependencies aren’t captured, as well as no information about the shape of the distribution is given. For elliptical shape distributions, such as the normal and student t distributions, there might not be a problem but, for more complex ones, these methods may prove to be inadequate. That is why we use copulas.<\/p>\n\n\n\n

But what are copulas?<\/h4>\n\n\n\n

A copula is a function that allows us to separate the multivariate structure from its marginal distributions. Mathematically, we have <\/p>\n\n\nF\\left(x_{1},\\ldots,x_{n}\\right) = C\\left(F_{1}(x_{1}), \\ldots, F_{n}(x_{n})\\right),<\/span>\n\n\n\n

where F <\/span> is the n-<\/span> dimensional cumulative distribution function (cdf) with marginal distributions F_{1},\\ldots, F_{n} <\/span> and C: [0,1]^n \\rightarrow [0,1] <\/span> is the copula. In addition, if F_{i}, \\; i=1, \\ldots, n <\/span> are continue, C <\/span> is unique. One important feature of copulas is that, if we change the margins, the copula won’t change. Additionally, if the copula has a certain statistical property, a transformation of the margins won’t affect it.<\/p>\n\n\n\n

For scenario generation problems, we are interested in the empirical copula, which is given by<\/p>\n\n\nC\\left(\\frac{k_{1}}{n_{S}},\\ldots,\\frac{k_{n}}{n_{S}}\\right)=\\frac{\\mid A\\mid}{n_{S}}, <\/span>\n\n\n\n

where \\mid A \\mid <\/span> is the cardinality of the set A= \\left\\{s: \\text{rank}(x_{is})\\leq k_{i}, \\; \\forall i \\in \\{1,\\ldots,n\\}\\right\\} <\/span> and n_{S} <\/span> is the number of scenarios.<\/p>\n\n\n\n

Enough of maths. What are the advantages of copulas in scenario generation? Well, copulas allow us to disconnect, say, the margins from the multivariate structure and thus model these two independently from each other. So, we’re able to generate the margins using standard sampling methods, for example, for univariate distributions rather for multivariate ones. This dissociation allows for new possible scenario generation, such as<\/p>\n\n\n\n