Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
strategy:
matrix:
os: [macos-latest, ubuntu-latest]
python-version: ["3.11", "3.12", "3.13"]
python-version: ["3.12", "3.13", "3.14"]
backend: [numpy, numba, jax, torch]

steps:
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
[![pypi](https://img.shields.io/pypi/v/scoringrules.svg?colorB=<brightgreen>)](https://pypi.python.org/pypi/scoringrules/)

`scoringrules` is a python library that provides scoring rules to evaluate probabilistic forecasts.
It's original goal was to reproduce the functionality of the R package
Its original goal was to reproduce the functionality of the R package
[`scoringRules`](https://cran.r-project.org/web/packages/scoringRules/index.html) in python,
thereby allowing forecasting practitioners working in python to enjoy the same tools as those
working in R. The methods implemented in `scoringrules` are therefore based around those
Expand All @@ -37,7 +37,7 @@ The scoring rules available in `scoringrules` include, but are not limited to, t
- **Didactic approach** to probabilistic forecast evaluation through clear code and documentation

## Installation
Requires python `>=3.11`!
Requires python `>=3.12`.

```
pip install scoringrules
Expand Down
11 changes: 5 additions & 6 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ name = "scoringrules"
version = "0.10.0"
description = "Scoring rules for probabilistic forecast evaluation."
readme = "README.md"
requires-python = ">=3.11"
requires-python = ">=3.12"
dependencies = [
"numpy>=1.25.0",
"scipy>=1.10.0",
"numpy>=2.0.0",
"scipy>=1.14.0",
]
authors = [
{name = "Francesco Zanetta", email = "zanetta.francesco@gmail.com"},
Expand All @@ -18,12 +18,11 @@ classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: MIT License",
"License :: OSI Approved :: Apache Software License",
"Topic :: Scientific/Engineering :: Mathematics",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
]

[project.urls]
Expand Down
11 changes: 1 addition & 10 deletions scoringrules/visualization/reliability.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
except ImportError:
IR_AVAILABLE = False

from scipy.interpolate import interp1d
from scipy.stats import bernoulli


Expand Down Expand Up @@ -126,15 +125,7 @@ def _uncertainty_band(x, cep, n_bootstrap=100, bandtype="consistency", alpha=0.0
elif bandtype == "confidence":
_y = bernoulli.rvs(cep[_idx_resample])
_x, _y, _cep = corp_reliability(_y, _x)
res.append(
interp1d(
_x,
_cep,
fill_value="nan",
bounds_error=False,
assume_sorted=True,
)(x)
)
res.append(np.interp(x, _x, _cep, left=np.nan, right=np.nan))
res = np.array(res)
ql = np.nanpercentile(res, alpha * 100, axis=0)
qu = np.nanpercentile(res, (1 - alpha) * 100, axis=0)
Expand Down
Loading
Loading