function s = skill(data,model,null_model) % SKILL - Calculate various skill statistics % s = skill(data,model,null_model) % % Input: % data, model, and (optional) null_model must be column vectors of equal % length (no NaNs) % Returns structure s with: % s.willmott Eqn. 5 in Warner et al. (2005) JGR 110, C05001 % based on Willmott, C. J. (1981) On the validation of models. Phys. % Geogr. 2:184-194. % s.brier Based on CRS notes (see also Sutherland, Peet, Soulsby, 2004) s.willmott = 1 - ( sum( (abs( model - data )).^2 ) ./ ... sum( ( abs( model-mean(data) )+ abs( data - mean (data ) )).^2 )); if(exist('null_model')~=1), null_model = ones(length(data),1).*mean(data); end s.brier = 1 - sum( (data-model) .^2 ) ./ sum( (data-null_model).^2 );