Azzera filtri
Azzera filtri

Calculating standard deviation for each year

3 visualizzazioni (ultimi 30 giorni)
Luca
Luca il 11 Apr 2021
Modificato: Luca il 11 Apr 2021
Hi,
I need to calculate for each stock the standard deviation for each year of observation. I created a subset with to stocks which is attached.
I was able to calculate the standard deviation for the two stocks with the splitapply() command.
% Creating volatility for two stocks
stocks.years = year(stocks.dates);
[group,years,ID]= findgroups(stocks.years, stocks.ID);
vola2 = splitapply(@std, stocks.RET, group);
voltb2 = table(ID, years, vola2);
voltb2 = sortrows(voltb2, 'ID');
My problem is that by the way stockreturns are create the first observation is always a NaN. Therefore for the standard deviation for the first year is NaN.
Is there a way to omit the NaN line in the calculation for standard deviation?
Thanks in advance

Risposta accettata

Jan
Jan il 11 Apr 2021
Do you want:
vola2 = splitapply(@(x) std(x, 'omitnan'), stocks.RET, group);

Più risposte (0)

Categorie

Scopri di più su Language Fundamentals in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by