%% Analisi dei rendimenti nella serie storica del FTSEMib % % Importare i dati presenti nel file FTSEMib.xlsx in una table inserendo le % date come rownames % Convertire le date dal formato Italiano al formato Americano % Creare la timetable del prezzo di chiusura con i rowtime nel formato % Americano. % 1) Calcolare la serie storica dei rendimenti logaritmici % 2) Calcolare i qqplot e i boxplot di rt (inserire i due grafici in due % pannelli della stessa finestra grafica) % 3) Confrontare i quantili osservati con quelli della distribuzione T di % Student con 3 gradi di libertà. Utilizzare come media della % distribuzione T il valore 0 e come sigma il valore empirico della % standard deviation osservata. Commentare il qqplot che si ottiene. % 4) Calcolare gli indici di curtosi, asimmetria ed il test di Jarque e % Bera. Commentare i valori ottenuti ed il p-value del test % 5) Calcolare il correlogramma dei rendimenti e dei rendimenti al % quadrato, utilizzando 50 Lags. % 6) Calcolare il p-value del test di Ljung e Box prima utilizzando 20 lags % e poi 50 %% Caricamento dati Y = readtable("FTSEMib.xlsx","Range","C1:H1050","ReadRowNames",true); times=Y.Properties.RowNames; % Il formato delle date Italiano è convertito nel formato Americano tim=datetime(times,'Locale','system'); % Creazione della timetable Yt=table2timetable(Y(:,"Chiusura"),"RowTimes",tim); Yt=Yt(:,2); [rt] = tick2ret(Yt,'Method','Continuous'); rt.Properties.VariableNames={'rt'}; stackedplot(rt) rtarray=rt{:,1}; %% qqplot e boxplot % 2) Calcolare i qqplot e i boxplot di rt (inserire i due grafici in due % pannelli della stessa finestra grafica) subplot(1,2,1) % Confronto dei quantili osservati con quelli della distribuzione normale % Se i dati sono distribuiti in maniera normale i punti si dispongono lungo % una retta qqplot(rtarray) subplot(1,2,2) boxplot(rtarray) %% qqplot contro la distribuzione T di Student con 3 gradi di libertà % 3) Confrontare i quantili osservati con quelli della distribuzione T di % Student con 3 gradi di libertà. Utilizzare come media della % distribuzione T il valore 0 e come sigma il valore empirico della % standard deviation osservata. Commentare il qqplot che si ottiene. figure sigma=std(rtarray); pd = makedist('tLocationScale',0,sigma,3); qqplot(rtarray,pd) % I quantili osservati si avviciano abbastanza a quelli di una T di Student % con 3 gradi di libertà. Si noti però che nella serie osservata sono % presenti alcuni rendimenti sicuramente anomali %% Calcolo degli indici di skewness e kurtosis e JB test % 4) Calcolare gli indici di curtosi, asimmetria ed il test di Jarque e % Bera. Commentare i valori ottenuti ed il p-value del test sk=skewness(rtarray); % sk è negativo ==> asimmetria negativa ku=kurtosis(rtarray); [h,pval]=jbtest(rtarray); % Il p-value del test è inferiore di 0.001 ==> i rendimenti non sono % distribuiti in maniera normale %% Analisi del correlogramma % 5) Calcolare il correlogramma dei rendimenti e dei rendimenti al % quadrato, utilizzando 50 Lags. figure autocorr(rtarray,'NumLags',50) title('Autocorrelazione sui rendimenti') %% Autocorrelazione sui rendimenti al quadrato figure autocorr(rtarray.^2,'NumLags',50) title('Autocorrelazione sui rendimenti al quadrato') %% Test di Ljung e Box % 6) Calcolare il p-value del test di Ljung e Box prima utilizzando 20 lags % e poi 50 [~,pvalYB20] = lbqtest(rtarray,'Lags',20); [~,pvalYB50] = lbqtest(rtarray,'Lags',50); % In entrambi i casi il p-value è molto basso. % Rifiuto l'ipotesi nulla di assenza di autocorrelazione % Bozza per esercizio futuro % Creo una table con due colonne che contiene % Prima colonna: anno di rilevazione % Seconda colonna: rendimenti logaritmici % Rend=[array2table(year(Yt.Time(2:end))) timetable2table(rt,"ConvertRowTimes",false)]; % Calcolo % grpstats()