Multivariate random number generation for skewed distribution of asset class returns

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Multivariate random number generation for skewed distribution of asset class returns

Rmetrics mailing list
Hi R-SIG-Finance mailing list,
I have a query about performing a Monte Carlo random number generation for asset class returns which accounts for the distribution of the asset class (mean, variance, skewness and possibly kurtosis) while also taking into consideration the correlation/covariance matrix of the asset classes. 
I came across the R package, mvtnorm, which is able to take the asset classes' means, covariance matrix for a normal distribution, through the function rmvnorm(n, mean = muvec, sigma = covmat), where n is number of trials, mean is the mean vector and sigma is the covariance matrix. However, this package does not allow for a skewed distribution or excess kurtosis. Historical data for my asset class returns show both positive and negative skewness. Additionally, the Johnson distribution function in R package, SuppDists, does not seem to account for covariances as inputs.
Hence, is there an R package/function that allows me to perform the random number generation for multivariate returns, which accounts for mean, variance, correlation, skewness and even kurtosis as inputs under the Monte Carlo simulation?
Thank you
Best regards,
Sjedi
        [[alternative HTML version deleted]]

_______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-sig-finance
-- Subscriber-posting only. If you want to post, subscribe first.
-- Also note that this is not the r-help list where general R questions should go.
Reply | Threaded
Open this post in threaded view
|

Re: Multivariate random number generation for skewed distribution of asset class returns

Ilya Kipnis
This is a question I was actually asked by the head of AI/ML for a fairly
large company and I'll give the same answer here:

Perform the bootstrapping of your choice. That is, take the empirical
returns, and just sample from them. If you want to preserve
autocorrelations, take chunks of time instead of one observation. If you
want to add some random noise, feel free to create some noise distributions
as well.

Hope this helps.

On Tue, Jan 14, 2020 at 9:32 AM shawn tan via R-SIG-Finance <
[hidden email]> wrote:

> Hi R-SIG-Finance mailing list,
> I have a query about performing a Monte Carlo random number generation for
> asset class returns which accounts for the distribution of the asset class
> (mean, variance, skewness and possibly kurtosis) while also taking into
> consideration the correlation/covariance matrix of the asset classes.
> I came across the R package, mvtnorm, which is able to take the asset
> classes' means, covariance matrix for a normal distribution, through the
> function rmvnorm(n, mean = muvec, sigma = covmat), where n is number of
> trials, mean is the mean vector and sigma is the covariance matrix.
> However, this package does not allow for a skewed distribution or excess
> kurtosis. Historical data for my asset class returns show both positive and
> negative skewness. Additionally, the Johnson distribution function in R
> package, SuppDists, does not seem to account for covariances as inputs.
> Hence, is there an R package/function that allows me to perform the random
> number generation for multivariate returns, which accounts for mean,
> variance, correlation, skewness and even kurtosis as inputs under the Monte
> Carlo simulation?
> Thank you
> Best regards,
> Sjedi
>         [[alternative HTML version deleted]]
>
> _______________________________________________
> [hidden email] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-sig-finance
> -- Subscriber-posting only. If you want to post, subscribe first.
> -- Also note that this is not the r-help list where general R questions
> should go.
>

        [[alternative HTML version deleted]]

_______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-sig-finance
-- Subscriber-posting only. If you want to post, subscribe first.
-- Also note that this is not the r-help list where general R questions should go.
Reply | Threaded
Open this post in threaded view
|

Re: Multivariate random number generation for skewed distribution of asset class returns

Eric Berger
Ilya suggests to "take chunks of time instead of one observation". In the
academic literature this method is referred to as the "block bootstrap".
See, for example, "Bootstraps for Time Series" by Peter Buhlmann, which
discusses model-based bootstraps, sieve bootstraps and block bootstraps.
You might also Google these terms to look for other sources of information.

HTH,
Eric


On Tue, Jan 14, 2020 at 5:12 PM Ilya Kipnis <[hidden email]> wrote:

> This is a question I was actually asked by the head of AI/ML for a fairly
> large company and I'll give the same answer here:
>
> Perform the bootstrapping of your choice. That is, take the empirical
> returns, and just sample from them. If you want to preserve
> autocorrelations, take chunks of time instead of one observation. If you
> want to add some random noise, feel free to create some noise distributions
> as well.
>
> Hope this helps.
>
> On Tue, Jan 14, 2020 at 9:32 AM shawn tan via R-SIG-Finance <
> [hidden email]> wrote:
>
> > Hi R-SIG-Finance mailing list,
> > I have a query about performing a Monte Carlo random number generation
> for
> > asset class returns which accounts for the distribution of the asset
> class
> > (mean, variance, skewness and possibly kurtosis) while also taking into
> > consideration the correlation/covariance matrix of the asset classes.
> > I came across the R package, mvtnorm, which is able to take the asset
> > classes' means, covariance matrix for a normal distribution, through the
> > function rmvnorm(n, mean = muvec, sigma = covmat), where n is number of
> > trials, mean is the mean vector and sigma is the covariance matrix.
> > However, this package does not allow for a skewed distribution or excess
> > kurtosis. Historical data for my asset class returns show both positive
> and
> > negative skewness. Additionally, the Johnson distribution function in R
> > package, SuppDists, does not seem to account for covariances as inputs.
> > Hence, is there an R package/function that allows me to perform the
> random
> > number generation for multivariate returns, which accounts for mean,
> > variance, correlation, skewness and even kurtosis as inputs under the
> Monte
> > Carlo simulation?
> > Thank you
> > Best regards,
> > Sjedi
> >         [[alternative HTML version deleted]]
> >
> > _______________________________________________
> > [hidden email] mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-sig-finance
> > -- Subscriber-posting only. If you want to post, subscribe first.
> > -- Also note that this is not the r-help list where general R questions
> > should go.
> >
>
>         [[alternative HTML version deleted]]
>
> _______________________________________________
> [hidden email] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-sig-finance
> -- Subscriber-posting only. If you want to post, subscribe first.
> -- Also note that this is not the r-help list where general R questions
> should go.
>

        [[alternative HTML version deleted]]

_______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-sig-finance
-- Subscriber-posting only. If you want to post, subscribe first.
-- Also note that this is not the r-help list where general R questions should go.
Reply | Threaded
Open this post in threaded view
|

Re: Multivariate random number generation for skewed distribution of asset class returns

Jasen Mackie
You may find the "boot" package in R useful -
https://cran.r-project.org/web/packages/boot/boot.pdf

On Tue, 14 Jan 2020 at 10:57, Eric Berger <[hidden email]> wrote:

> Ilya suggests to "take chunks of time instead of one observation". In the
> academic literature this method is referred to as the "block bootstrap".
> See, for example, "Bootstraps for Time Series" by Peter Buhlmann, which
> discusses model-based bootstraps, sieve bootstraps and block bootstraps.
> You might also Google these terms to look for other sources of information.
>
> HTH,
> Eric
>
>
> On Tue, Jan 14, 2020 at 5:12 PM Ilya Kipnis <[hidden email]> wrote:
>
> > This is a question I was actually asked by the head of AI/ML for a fairly
> > large company and I'll give the same answer here:
> >
> > Perform the bootstrapping of your choice. That is, take the empirical
> > returns, and just sample from them. If you want to preserve
> > autocorrelations, take chunks of time instead of one observation. If you
> > want to add some random noise, feel free to create some noise
> distributions
> > as well.
> >
> > Hope this helps.
> >
> > On Tue, Jan 14, 2020 at 9:32 AM shawn tan via R-SIG-Finance <
> > [hidden email]> wrote:
> >
> > > Hi R-SIG-Finance mailing list,
> > > I have a query about performing a Monte Carlo random number generation
> > for
> > > asset class returns which accounts for the distribution of the asset
> > class
> > > (mean, variance, skewness and possibly kurtosis) while also taking into
> > > consideration the correlation/covariance matrix of the asset classes.
> > > I came across the R package, mvtnorm, which is able to take the asset
> > > classes' means, covariance matrix for a normal distribution, through
> the
> > > function rmvnorm(n, mean = muvec, sigma = covmat), where n is number of
> > > trials, mean is the mean vector and sigma is the covariance matrix.
> > > However, this package does not allow for a skewed distribution or
> excess
> > > kurtosis. Historical data for my asset class returns show both positive
> > and
> > > negative skewness. Additionally, the Johnson distribution function in R
> > > package, SuppDists, does not seem to account for covariances as inputs.
> > > Hence, is there an R package/function that allows me to perform the
> > random
> > > number generation for multivariate returns, which accounts for mean,
> > > variance, correlation, skewness and even kurtosis as inputs under the
> > Monte
> > > Carlo simulation?
> > > Thank you
> > > Best regards,
> > > Sjedi
> > >         [[alternative HTML version deleted]]
> > >
> > > _______________________________________________
> > > [hidden email] mailing list
> > > https://stat.ethz.ch/mailman/listinfo/r-sig-finance
> > > -- Subscriber-posting only. If you want to post, subscribe first.
> > > -- Also note that this is not the r-help list where general R questions
> > > should go.
> > >
> >
> >         [[alternative HTML version deleted]]
> >
> > _______________________________________________
> > [hidden email] mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-sig-finance
> > -- Subscriber-posting only. If you want to post, subscribe first.
> > -- Also note that this is not the r-help list where general R questions
> > should go.
> >
>
>         [[alternative HTML version deleted]]
>
> _______________________________________________
> [hidden email] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-sig-finance
> -- Subscriber-posting only. If you want to post, subscribe first.
> -- Also note that this is not the r-help list where general R questions
> should go.
>

        [[alternative HTML version deleted]]

_______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-sig-finance
-- Subscriber-posting only. If you want to post, subscribe first.
-- Also note that this is not the r-help list where general R questions should go.