En ocasiones necesitamos testar la estabilidad de cierta estimación analizando la evolución de una serie histórica de betas del modelo de regresión lineal. El método de ventanas móviles permite realizar este tipo de ejercicio. En el siguiente ejemplo se muestra como se puede obtener una serie histórica de betas del CAPM y el Alpha de Jensen. Como usualmente se dispondrá de la rentabilidad del mercado y la de un sin numero de activos, lo que hemos llamado x e y(i) respectivamente, donde i i representa cada una de las columnas de la matriz de activos.
%
-------------------------------------------------------------
%la idea es:
% tienes una matriz de
variables (Yi), donde i representa cada columna
% y tienes una variable X,
que representa tu rendimiento de mercado en el CAPM
% necesitas hacer series
temporales de betas: esto lo harás por ventanas móviles, % por tanto
% necesitas un bucle o usar
operaciones vectorizadas, opta por un bucle
% necesitas recorrer tu
matriz (yi), esto lo harás con otro bucle, como este ya es un segundo bucle, sera un bucle anidados,
el primero te sirve para recorrer de columna en columna y el segundo para especificar las
observaciones que tendrán una amplitud determinada por tu venta.
% genero variables
hipoteticas que simulan rentabilidades
x = random('Normal',0,1,100,1); % rentabilidad del mercado
y_i = random('Normal',0,1,100,5); % rentabilidad de activos
% Se supone que tienes una
base de datos de esta forma. ahora debes hacer el bucle anidado
% no tengo intenrnet, pero
hay infinidad de ejemplos de ejemplos en internet de como hacer
% un bucle para recorrer
una matriz.
ventana=90; % esta ventada determina la
amplitud de la ventana
[f, c]=size(y_i); % te permite obtener las
dimensiones para tu bucle
for i=1:c % este
bucle te recorre las columna de la matriz
for obs=1:f-ventana % este te recorre las
observaciones de cada columnas
% Regresión del CAPM (recuerda que
el CAPM usa exceso de rent respecto al ALR)
% Ten
pendiente que el vector de 1, matricialmente te permite obtener constante en
regresión
behat = regress(x(obs:obs+ventana-1),
[ones(ventana,1) ... y_i(obs:obs+ventana-1,i)]) ;
% Aqui usas las dimensiones, para
obtener matrices que almacenan tus betas.
beta_capm(obs,i)=behat(2);
alpha_jemsem(obs,i)=behat(1);
% Analisis de estabilidad
de cada beta, opcional. Haces un gráfico para ver la evolución histórica
% De cada uno los betas de tus activos.
figure(i)
plot(beta_capm(:,i))
end
end
% Matriz de resultados
beta_capm
Espero os sirva,
Nerys