Copulas have become a popular multivariate modeling tool in many fields where multivariate dependence is of interest and the usual multivariate normality is in question.

A copula is a multivariate distribution whose marginals are all uniform over (0, 1).

For a p-dimensional random vector \(U\) on the unit cube, a copula \(C\) is \[ C(u_1,...,u_p)=Pr(U_1 \leq u_1,...,U_p \leq u_p). \]

Combined with the fact that any continuous random variable can be transformed to be uniform over (0, 1) by its probability integral transformation, copulas can be used to provide multivariate dependence structure separately from the marginal distributions

Let \(F\) be a \(p\)-dimensional distribution function with margins \(F_1,..., F_p\).

Sklar(1959) first showed that there exists a p-dimensional copula \(C\) such that for all \(x\) in the domain of \(F\), \[ F(x_1, ... , x_p) = C\{F_1(x_1), ... , F_p(x_p)\}. \]

Different kinds of Copula: Elliptical Copula : (i) Multivariate Gaussian Copula, (ii) Multivariate t-Copula

Clayton (1978), Frank (1979), Gumbel (1960) are three cases of Archimedean Copulas

*Ref*: Jun Yan, (2007) Enjoy the Joy of Copulas: With a Package`copula`

,*Journal of Statistical Software*

`library(PortRisk)`

`## Loading required package: MCMCpack`

`## Loading required package: coda`

`## Loading required package: MASS`

```
## ##
## ## Markov Chain Monte Carlo Package (MCMCpack)
```

`## ## Copyright (C) 2003-2016 Andrew D. Martin, Kevin M. Quinn, and Jong Hee Park`

```
## ##
## ## Support provided by the U.S. National Science Foundation
```

```
## ## (Grants SES-0350646 and SES-0350613)
## ##
```

`## Loading required package: zoo`

```
##
## Attaching package: 'zoo'
```

```
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
```

`## Loading required package: copula`

`## Loading required package: tseries`

```
# load the data 'SnP500Returns'
data(SnP500Returns)
# consider the portfolio containing the stocks of the companies
# Apple, IBM, Intel, Microsoft
pf <- c("AAPL","IBM","INTC","MSFT")
# suppose the amount of investments in the above stocks are
# $10,000, $40,000, $20,000 & $30,000 respectively
wt <- c(10000,40000,20000,30000) # weights
# risk attribution for the portfolio 'pf' with weights 'wt'
# for the time period January 1, 2013 - January 31, 2013
fit<-risk.attrib.Copula(tickers = pf
, weights = wt
, data = SnP500Returns
, start = "2013-01-01"
, end = "2013-01-31"
, sim.size = 1000
, df=15)
fit$Volatility
```

```
## weight vol mctr cctr
## AAPL 10000 0.03505336 2.0614388 0.2061439
## IBM 40000 0.01169305 0.9297546 0.3719018
## INTC 20000 0.01948613 1.2062182 0.2412436
## MSFT 30000 0.01194353 0.9228293 0.2768488
```

`fit$`Portfolio Volatility``

`## [1] 1.096138`

`fit$`Portfilio VaR``

```
## 1% 5%
## -2267.739 -1220.453
```

`fit$`Total Portfolio Value``

`## [1] 1e+05`