3 votos

Visualización de la estabilidad de la calificación crediticia

Estoy buscando una forma de visualizar los resultados de la estabilidad de la calificación crediticia.

Algunos antecedentes: Por clase de calificación (por ejemplo, AAA, AA+, AA, AA-, A+, ...), miro el porcentaje de deudores que mantienen su calificación de un año a otro. Por ejemplo, si en la clase de calificación BBB, tengo 100 contrapartes en t y, de estos 100, sólo 85 permanecían en la clase de calificación BBB en el momento t+1 el porcentaje de deudores que mantienen su calificación de t a t+1 es del 85%.

Haciendo esto, obtengo una tabla como:

    t to t+1    t+1 to t+2    ...    t+n-1 to t+n
AAA      80%           90%    ...             85%
AA+      75%           92%    ...             85%
...
Caa      60%           55%    ...             67%

Para visualizar esto, intenté hacer gráficos de líneas para cada una de las clases de calificación, pero de esta manera termino con demasiados gráficos; se vuelve muy desordenado. Pensé en agrupar las valoraciones en clases más amplias, pero así pierdo algo de información.

¿Alguien conoce una buena técnica de visualización para este tipo de problemas?

2 votos

Supongo que has considerado las parcelas en 3D. No creo que los gráficos 3D sean una buena opción, especialmente para la impresión. facet_grid puede ser una opción.

0 votos

facet_grid también podría ser una posibilidad. Sin embargo, tengo cierta preferencia por el mapa de calor de @phdstudent.

5voto

RealityGone Puntos 163

Una opción para hacerlo es un mapa de calor. No estoy seguro de qué software estás usando, pero en matlab es extremadamente simple de hacer y poderoso para ajustar.

A continuación un ejemplo. Supongamos que hay 30 períodos $t$ a $t+30$ y 21 valoraciones.

Entonces podrías correr:

rating = {'Aaa'; 'Aa1';'Aa2';'Aa3';'A1';'A2';'A3';'Baa1';'Baa2';'Baa3';'Ba1';'Ba2';'Ba3';'B1';'B2';'B3';'Caa1';'Caa2';'Caa3';'Ca';'C';}
ratingindex = (1:size(rating,1));
t = [1:30]';
prop = rand(size(rating,1),size(t,1));
[X, Y] = meshgrid(t,ratingindex);
[Xq,Yq,Vq] = griddata(t,ratingindex,prop,X,Y);
surf(Xq, Yq, Vq)
view(2);
xlabel('Time')
ylabel('rating')
colorbar
title('Probability of keeping rating')

La salida sería:

enter image description here

Los colores indican las probabilidades. El $x-axis$ tiene el tiempo y la $y-axis$ las calificaciones. Para facilitar las cosas, he clasificado las calificaciones del 1 al 10 en lugar de AAA, AA+, etc. Pero puedes cambiar fácilmente la apariencia del eje.

Siguiendo el comentario de abajo, puedes fácilmente tener menos colores en la trama. Sólo tiene que añadir: colormap(lines(n)) para n colores. Para n=3 el resultado sería el siguiente:

enter image description here

Además, la persistencia en las calificaciones debería ayudar a disciplinar la salida.

1 votos

Upvoted, pero con la observación de que los colores pueden ser difíciles de interpretar.

0 votos

De acuerdo. Creo que dos cosas pueden ayudar: (1) Aquí estoy asignando probabilidades aleatorias de mantener la clasificación; En realidad serán muy estables por lo que la salida real no tendrá este lío de colores; (2) Es fácil cambiar el mapa de colores para tener menos colores (por ejemplo, 3 colores más o menos). He editado la respuesta anterior.

0 votos

Gracias @phdstudent, un mapa de calor es una buena idea sin duda. Yo uso R así que puedo crear uno fácilmente también con ggplot(<code>) + stat_bin_2d() + <code>

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X