The skill score is a statistic similar to the Nash-Sutcliffe in that the closer to one the better the model prediction. This function interprets model predictability using residual error and observed variability in your data. A skill score of 1 means a perfect fit (don't we all wish). A skill score equal to or less than zero means your model error is larger than the variability in your data, and should not be used any further without re-evaluating the model design. There are no required toolboxes to compute this statistic.
This function will take two sets of data indexed (e.g. time is a good one), and match up the two sets using the intersection function within MATLAB. The data sets (i.e. each are N x 2 in dimension) do NOT have to be equal dimensions (courtesy of ?intersect?) or linear in increments.
One important note: this is a parametric test. When using mean and standard deviation statistics, the distributions of the data should be tested. However, I wanted to keep this a stand alone script so no qqplots, Mann-Whitney, etc. are called within this function.
For convenience, I?ve also posted a nashsutcliffe function for people who don?t like my derivation. Both these functions submitted are not much more than a novelty given the simplistic nature of the statistic, but what the heck, I needed to create this so why not post it. And my plug on a highly valuable statistic I submitted a while ago, is a non-parametric trend test, the Mann-Kendall Tau-b (named ktaub.m in the Earth Sciences category). Besides the dire need for such a statistic in MATLAB, the design has some elegance in it.
Jeff Burkey (2023). Estimating a models skill of predictability (https://www.mathworks.com/matlabcentral/fileexchange/14177-estimating-a-models-skill-of-predictability), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!
I updated the Summary. Somehow, when I submitted this script, my browser filled in the Summary with a previous submission ktaub.m. Sorry about any confusion people may have had.