2 votos

Cómo tomar una muestra de una cópula en el laboratorio de matemáticas

Tengo dos variables aleatorias (digamos, X e Y). Cada una de estas variables está definida por sus CDF (CDF_X y CDF_Y). Estas CDF se obtuvieron empíricamente, por lo que son un gráfico de "escalera". También tengo una cópula C que representa la relación entre X e Y. Esta cópula se obtuvo a través de un estimador de núcleo.

Quiero tomar una muestra (digamos 10 puntos (X,Y)) de la distribución bivariada de X e Y (es decir, respetando la relación de dependencia impuesta por C).

¿Cómo puedo hacer esa implementación en Matlab o en R? Prefiero Matlab.

0 votos

Necesita derivar una cópula condicional, que puede encontrar tomando la derivada de su cópula a una de las variables. Esto te permitirá muestrear primero un valor aleatorio uniforme, y luego, condicionado a éste, un segundo valor uniforme de la cópula condicional. Luego los transformas con la CDF inversa para que tengan las distribuciones marginales adecuadas.

3voto

Joe Shaw Puntos 6386

Suponga que tiene la cópula $C(u_1,u_2)$ entonces se podría calcular la cópula condicional

$$c_{u_1}(u_2)=\frac{\partial C(u_1,u_2)}{\partial u_1} \; .$$

Ahora, puedes generar un par de valores aleatorios independientes uniformemente distribuidos $(U,V)$ . Digamos que un realismo particular es $(u,v)$ . Entonces la pareja

$$(u,c_u^{-1}(v))$$

se distribuirá según la cópula. Sólo hay que aplicar la FCD inversa para que se distribuyan como $(X,Y)$ . Diga $X\sim F_X$ y $Y\sim F_Y$ entonces

$$(F_X^{-1}(u),F_Y^{-1}(c_u^{-1}(v)))$$

es lo que hay que hacer al final.

Un ejemplo en Matlab para una cópula de Clayton

%% Simulations of Clayton copulas using conditional cdf

%Example for theta=4
n=3000;
theta=5;
u=rand(1,n);
y=rand(1,n);
v=((y.^(1/(1+theta)).*u).^(-theta)+1-u.^(-theta)).^(-1/theta);

x1=norminv(u);
x2=norminv(v);

plot(x1,x2,'.')

0 votos

muchas gracias. Esto seguramente ayudará. Pero idealmente necesito una implementación en matlab...

0 votos

Tal vez deberías dar el formato de tus datos entonces. ¿Puedes actualizar tu pregunta y añadir el código de Matlab que ya tienes, así como la estructura de tus datos? He añadido un ejemplo para una cópula de Clayton y cdfs marginales normales.

0 votos

Si su cópula resulta de un estimador de núcleo, entonces presumiblemente el núcleo es alguna función suave conocida y el cálculo de las derivadas parciales no debería ser difícil. Entonces la cópula condicional será simplemente una combinación lineal que incluye las derivadas parciales del núcleo.

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