En el libro "Numerical Methods and Optimization in Finance" redigo lo siguiente: "La combinación de la cópula gaussiana con el marginal gaussiano da una forma elegante de expresar las normales multivariantes. Sin embargo, la cópula gaussiana también puede combinarse con otros marginales, y los marginales gaussianos pueden vincularse a través de cualquier cópula".
Me gustaría combinar la cópula gaussiana con los marginales gaussianos, para obtener normales multivariantes para mis 7 clases de activos. Además, me gustaría combinar los marginales t con la cópula t, para obtener una distribución t multivariante. ¿Alguien sabe cómo hacer esto en MatLab? Estoy luchando con esto desde hace tiempo.
Así es como abordé el problema para los marginales t y la cópula t:
%% Definir el proceso univariado por la distribución t
para i = 1:nActivos
marginal{i} = fitdist(returns(:,i),'tlocationscale');
fin
%% Calibración de la cópula
para i = 1:nActivos
U(:,i) = marginal{i}.cdf(returns(:,i)); % transforma el margen en uniforme
fin
[rhoT, DoF] = copulafit('t', U, 'Method', 'ApproximateML');
%% Transformación inversa en cada índice
U = copularnd('t', rhoT, DoF, NumObs * NumSim);
para j = 1:nActivos
ExpReturns(:,:,j) = reshape(marginal{j}.icdf(U(:,j), DoF), NumObs, NumSim);
fin
¿Tiene sentido mi enfoque? ¡¡¡Cualquier ayuda es muy apreciada, especialmente en el código MatLab!!!
Saludos cordiales
0 votos
No estoy seguro de lo que quieres hacer exactamente con este código, ¿quieres simular datos de una distribución estimada?
0 votos
Sí, tienes toda la razón. Después de haber equipado la cópula a través de
copulafit
, I simular rendimientos a través decopularnd
y luego invertir la transformación en el último paso, ya que no quiero márgenes uniformes. En primer lugar, no estoy seguro de si eltlocationScale
se ajusta a una distribución t. En segundo lugar, no estoy seguro de si obtengo una distribución t multivariante con mi enfoque. Por último, estoy bastante inseguro de si todo el enfoque tiene sentido ...