-
Notifications
You must be signed in to change notification settings - Fork 40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature request: Skill Scores #49
Comments
You can see how @matteodefelice did it in his notebook (https://colab.research.google.com/drive/1wWHz_SMCHNuos5fxWRUJTcB6wqkTJQCR)
|
Yeah, I think both ways are valid, just a different baseline; maybe his can be used as the default if
|
I think we should somehow come up with a pattern/wrapper that translates every skill into a skill score.
The formula would be from https://www.cawcr.gov.au/projects/verification/ anyone ideas how to do this with few lines of code? |
Is it applicable across all scores though? I am only familiar with brier skill score (first time heard of RMSE skill score) |
I think so. In climpred we have a metrics class with attributes min max perfect. Maybe this would be nice to move to xskillscore |
I think this sort of thing should be at |
I guess with the addition of the sign test, this could still fit here. If you hand |
this is could be a template: https://github.com/bradyrx/climpred/blob/8a3fc954df2043f998987a1964059a9dc0d2e11c/climpred/metrics.py#L128-L140 were we would need the But many we should overdo things. We at least shouldnt change the existing API when implementing this. |
See #284. Leaving open as good discussion here. |
By the way, it seems that the line:
doesn't work any more, I get this error on my Colab:
EDIT: yes, now it requires an xarray object and it doesn't work any more with numbers. |
Thanks for reporting @matteodefelice Can you please open an issue with this? Conversion from number to xr.dataarray can be easily added then |
Has anyone an example on how to calculate the skill score for the RPS or CRPS? I still haven't found the way to do that... |
We have crpss in climpred. |
For crpss look into the proper scoring example |
@matteodefelice I believe rpss is (kind of) in climpred as well https://github.com/pangeo-data/climpred/blob/main/climpred/tests/test_probabilistic.py#L252. |
Thanks @aaronspring but the real difficulty for me is calculating the RPS of the climatology, but I will find a way. Thanks to everyone for sharing. |
generalized for perfect-models and hindcasts. I create a fake 1-member forecast from groupby(dayofyear). |
that's a good idea. I did it, and the results seem reasonable. Given that I am working with seasonal averages (one point per year), this is what I have done:
The RPSS is comparable with the BSS, so I think this should work. |
Just came across this package. Nice work. |
Relationship: climpred imports (nearly?) all xskillscore metrics by wrapping xskillscore. climpred might have some metrics also defined only in climpred, such as skillscores for some metrics, i.e. normalised mse as mse/std or msess = 1 - nmse |
Any objections in including these missing metrics in xskillscore? Seems to me the better place than having two packages with mixed functionalities. All benchmarking related scoring functions should be available in xskillscore IMO (and not climpred). |
No objections to additional metrics here that are missing and in climpred. Just make sure they give the same result |
I think we wanted to keep the api consistent for all metrics: metric(forecast, observation) for skillscore you'd need to pass a reference skill somehow. I'm for that and suggest to have this api discussion first. |
https://confluence.ecmwf.int/display/FUG/12.B+Statistical+Concepts+-+Probabilistic+Data
I think it's just:
where
ref
can be persistence or climatology (where each year of the climatology is a member)The text was updated successfully, but these errors were encountered: