Skip to content

zakrzewow/remodels

Repository files navigation

remodels

PyPI Status Python Version License

Documentation Status Tests Codecov

pre-commit Black

ReModels is a Python package for probabilistic energy price forecasting using Quantile Regression Averaging (QRA) methods.

Installation

You can install remodels via pip from PyPI:

$ pip install remodels

Alternatively, you can install from source:

$ git clone https://github.com/zakrzewow/remodels.git
$ cd remodels
$ pip install .

Features

  • Dataset Download: access commonly used public datasets for transparent data acquisition.
  • Data Preprocessing: apply variance stabilizing transformation for improved data quality.
  • Forecast Generation: produce point and probabilistic forecasts with reference implementations of QRA variants.
  • Result Evaluation: compare predictions using dedicated metrics for fair and consistent evaluation.

ReModels provides a robust framework for researchers to compare different QRA methods and other forecasting techniques. It supports the development of new forecasting methods, extending beyond energy price forecasting.

ReModels simplifies and enhances energy price forecasting research with comprehensive tools and transparent methodologies.

The main functionality of the ReModels package are Variance Stabilizing Transformations and Quantile Regression Averaging variants.

Implemented VSTs:

  • clipping,
  • clipping with the logarithm function
  • logistic transform
  • inverse hyperbolic sine transform
  • BoxCox transform
  • polynomial transform
  • mirror-log transformation
  • probability integral transform

Implemented QRA variants:

  • QRA
  • QRM
  • FQRA
  • FQRM
  • sFQRA
  • sFQRM
  • LQRA
  • SQRA
  • SQRM

Usage

VST basic usage example:

import numpy as np
from remodels.transformers.VSTransformers import ArcsinhScaler, BoxCoxScaler, ClippingScaler, LogClippingScaler, LogisticScaler, MLogScaler, PITScaler, PolyScaler

X = np.random.normal(0, 1, size=(100, 10))
ArcsinhScaler().fit_transform(X)

QRA basic usage example:

import numpy as np
from remodels.qra import QRA, QRM, FQRA, FQRM, sFQRA, sFQRM, LQRA, SQRA, SQRM

X = np.random.normal(0, 1, size=(100, 10))
y = X.sum(axis=1)

qra = QRA(quantile=0.5, fit_intercept=True)
qra.fit(X, y).predict(X)

For more advanced examples of high-level functionalities, please see the Usage or Reference.

License

Distributed under the terms of the MIT license, remodels is free and open source software.

Credits

This project was generated from @cjolowicz's Hypermodern Python Cookiecutter template.