Documente Academic
Documente Profesional
Documente Cultură
donde Z corresponde a valores provenientes de una disctribuci on normal N(0,1) idd. Lo anterior, se puede expresar de forma matricial, as : X =LZ (2)
Hasta ahora, no se identican los valores que corresponde a la matriz L. Al estar los procesos correlados, la esperanza del producto de los proceso es igual a la matriz de correlaciones: 1 1,2 1,3 E [X X ] = 2,1 1 1,3 3,1 3,2 1 La matrix de correlaciones puede expresarse como el producto de dos matrices al realizar una descomposici on LU (inferior y superior). Es ahora donde empleamos la descomposici on de cholesky de la matrix de correlaciones.
E [X X ] = E [(L Z ) (L Z ) ] operando y sabiedo que la matrix L es constante y la esperanza del producto de Z Z es igual a la matrix identidad, tenemos:
E [X X ] = L L
donde L y L corresponden a la descomposici on de cholesky de la matriz de correlaciones entre el producto de los procesos. Retomando el proceso original (eq 2) y los valores de L (matrix triangular inferior), podemos caracterizar la evoluci on de los procesos1 . Implementaci on en Matlab Sea P la matrix que contiene los precios de los activos en cuesti on denida en el workspace. En el command window de matlab, se procede: 1. Estimar los rendimientos de los precios >> rendimientos = price2ret(P ); 2. Estimar la matriz de correlaciones >> correlaciones = corr(rendimientos); 3. Descomposici on de cholesky >> L = chol(correlaciones, lower ); 4. Simular 1000 N(0,1) por activo en cuestion Al tratarse de 3 activos, tenemos: >> Z = randn(1000, 3); 5. Estimar X (matriz de procesos) >> X = Z L; 6. Calcular drift y difussion del rendimiento Tomando como referencia el proceso de rendimiento geometrico y asumiendo que rf = 0,05 y dt = 1/250, tenemos: >> sigma = std(rendimientos); >> r = 0,05; >> drif t = ones(1000, 1) (r 0,5 sigma. sigma); >> dif ussion = X. (ones(1000, 1) sigma); >> Rsimulado = drif t dt + dif ussion sqrt(dt); Para obtener la serie de precios, realiza un cumsum por columna y multiplica est e resultado por el precio en t = 0: P simulado = S(0) ecumsum(Rsimulado,1) (3) Como se puede identicar, los inputs necesarios para realizar la simulaci on son: los precios de los activos, el tipo libre de riesgo, dt y el numero de simulaciones deseadas. Por lo tanto, recomiendo realizar un script o function en matlab.
1
Todo lo anterior se puede realizar en C ++. Para calcular la descomposici on de cholesky recomiendo acudir a la libreria cientica gsl (http : //www.gnu.org/sof tware/gsl/), es gratuita, facil de implementar e intuitiva. Como segunda alternativa, vease boostublas (http : //www.boost.org/libs/numeric).