From 2ee4d62570ced018a310ebf6cffc2167ab129e70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Adjemian=20=28Charybdis=29?= Date: Fri, 23 May 2014 18:10:59 +0200 Subject: [PATCH] Added routine to compute centered marginal moments of order n (possibly with missing observations). --- matlab/utilities/dataset/nanmoments.m | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 matlab/utilities/dataset/nanmoments.m diff --git a/matlab/utilities/dataset/nanmoments.m b/matlab/utilities/dataset/nanmoments.m new file mode 100644 index 000000000..78e95e9b0 --- /dev/null +++ b/matlab/utilities/dataset/nanmoments.m @@ -0,0 +1,25 @@ +function m = nanmoments(data, n) +% Compute centered marginal moments of order n (possibly with missing observations). + +% Copyright (C) 2014 Dynare Team +% +% This file is part of Dynare. +% +% Dynare is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% Dynare is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with Dynare. If not, see . + +if isanynan(data) + m = transpose(nanmean(bsxfun(@power,nandemean(data),n))); +else + m = transpose(mean(bsxfun(@power,demean(data),n))); +end \ No newline at end of file