Singular matrix in DCC fit in package rmgarch | how to bypass base::solve() elegantly

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

Singular matrix in DCC fit in package rmgarch | how to bypass base::solve() elegantly

Peter Ruckdeschel-2
Dear Alexis,  dear colleagues,

a student of mine, Patrick Harren (CC), is currently writing his master thesis with me as advisor.

He is to write on portfolio optimization for many assets by means of dynamic elliptical copulas
using a DCC-GARCH model as implemented in R package rmgarch.

In his code he is stumbling on errors of form

    "error: matrix multiplication: problem with matrix inverse; suggest to use solve() instead"

I am not surprised this happens, as he has a p>n situation, i.e. more assets than observations,
so I would guess this is due to singular matrices which at some point of the code is to be inverted.

Is there any [easy] way to replace the general solver base::solve() by something like MASS::ginv()
for this purpose, or, if appropriate, would you suggest another regularization, say by some sort of
shrinkage?

Any suggestions welcome, thank you already,

best regards, Peter Ruckdeschel

--
%******************************************************************
% Prof. Dr. Peter Ruckdeschel
% Institut fuer Mathematik, Fakultaet V - Mathematik und Naturwissenschaften
% Carl von Ossietzky Universitaet Oldenburg,
% Postfach 25 03,  26111 Oldenburg
% Office: Wechloy W1 02-227 Tel: +49 (0)441 798-3240  Fax: +49 (0)441 798-193240
% [hidden email]
% http://www.uni-oldenburg.de/peter-ruckdeschel
%******************************************************************


--
Diese E-Mail wurde von Avast Antivirus-Software auf Viren geprüft.
https://www.avast.com/antivirus

_______________________________________________
[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: Singular matrix in DCC fit in package rmgarch | how to bypass base::solve() elegantly

alexios
Hi Peter,

I'm not sure whether switching to generalized inverse will be a sensible
or feasible approach in a DCC situation when p>n. The underlying code
makes use of RcppArmadillo and you could try to switch out inv with pinv...

However, perhaps a more reasonable approach would be to:

1. Use a factor model (e.g. GO-GARCH)
2. Regularization/Shrinkage, but these have not been implemented in
rmgarch, and I haven't looked at the literature recently to see what
approaches and models have been proposed


Best,

Alexios

On 4/9/20 6:06 AM, Peter Ruckdeschel wrote:

> Dear Alexis,  dear colleagues,
>
> a student of mine, Patrick Harren (CC), is currently writing his master thesis with me as advisor.
>
> He is to write on portfolio optimization for many assets by means of dynamic elliptical copulas
> using a DCC-GARCH model as implemented in R package rmgarch.
>
> In his code he is stumbling on errors of form
>
>      "error: matrix multiplication: problem with matrix inverse; suggest to use solve() instead"
>
> I am not surprised this happens, as he has a p>n situation, i.e. more assets than observations,
> so I would guess this is due to singular matrices which at some point of the code is to be inverted.
>
> Is there any [easy] way to replace the general solver base::solve() by something like MASS::ginv()
> for this purpose, or, if appropriate, would you suggest another regularization, say by some sort of
> shrinkage?
>
> Any suggestions welcome, thank you already,
>
> best regards, Peter Ruckdeschel
>
> --
> %******************************************************************
> % Prof. Dr. Peter Ruckdeschel
> % Institut fuer Mathematik, Fakultaet V - Mathematik und Naturwissenschaften
> % Carl von Ossietzky Universitaet Oldenburg,
> % Postfach 25 03,  26111 Oldenburg
> % Office: Wechloy W1 02-227 Tel: +49 (0)441 798-3240  Fax: +49 (0)441 798-193240
> % [hidden email]
> % http://www.uni-oldenburg.de/peter-ruckdeschel
> %******************************************************************
>
>
> --
> Diese E-Mail wurde von Avast Antivirus-Software auf Viren geprüft.
> https://www.avast.com/antivirus
>
> _______________________________________________
> [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.
>

_______________________________________________
[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.