Calculating standard deviation for each year

5 Ansichten (letzte 30 Tage)
Luca
Luca am 11 Apr. 2021
Bearbeitet: Luca am 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

Akzeptierte Antwort

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

Weitere Antworten (0)

Kategorien

Mehr zu Language Fundamentals finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by