Calculating standard deviation for each year

조회 수: 3 (최근 30일)
Luca
Luca 2021년 4월 11일
편집: Luca 2021년 4월 11일
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

채택된 답변

Jan
Jan 2021년 4월 11일
Do you want:
vola2 = splitapply(@(x) std(x, 'omitnan'), stocks.RET, group);
  댓글 수: 1
Luca
Luca 2021년 4월 11일
Hi Jan,
Thank you very much it worked perfectly.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Language Fundamentals에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by