CDFt: CDFt method (Cumulative Distribution Function transfer)

CDFtR Documentation

CDFt method (Cumulative Distribution Function transfer)

Description

Perform an univariate bias correction of X with respect to Y.

Details

Correction is applied margins by margins.

Public fields

n_features

[integer] Number of features

tol

[double] Floatting point tolerance

distY0

[ROOPSD distribution or a list of them] Describe the law of each margins. A list permit to use different laws for each margins. Default is ROOPSD::rv_histogram.

distY1

[ROOPSD distribution or a list of them] Describe the law of each margins. A list permit to use different laws for each margins. Default is ROOPSD::rv_histogram.

distX0

[ROOPSD distribution or a list of them] Describe the law of each margins. A list permit to use different laws for each margins. Default is ROOPSD::rv_histogram.

distX1

[ROOPSD distribution or a list of them] Describe the law of each margins. A list permit to use different laws for each margins. Default is ROOPSD::rv_histogram.

Methods

Public methods


Method new()

Create a new CDFt object.

Usage
CDFt$new(...)
Arguments
...

Optional arguments are: - distX0, distX1, models in calibration and projection period, see ROOPSD - distY0, distY1, observations in calibration and projection period, see ROOPSD - kwargsX0, kwargsX1, list of arguments for each respective distribution - kwargsY0, kwargsY1, list of arguments for each respective distribution - scale_left_tail [float] Scale applied on the left support (min to median) between calibration and projection period. If NULL (default), it is determined during the fit. If == 1, equivalent to the original algorithm of CDFt. - scale_right_tail [float] Scale applied on the right support (median to max) between calibration and projection period. If NULL (default), it is determined during the fit. If == 1, equivalent to the original algorithm of CDFt. - normalize_cdf [bool or vector of bool] If a normalization is applied to the data to maximize the overlap of the support. Can be a bool (True or False, applied for all colums), or a list of bool of size 'n_features' to distinguished each columns.

Returns

A new 'CDFt' object.


Method fit()

Fit the bias correction method

Usage
CDFt$fit(Y0, X0, X1)
Arguments
Y0

[matrix: n_samples * n_features] Observations in calibration

X0

[matrix: n_samples * n_features] Model in calibration

X1

[matrix: n_samples * n_features] Model in projection

Returns

NULL


Method predict()

Predict the correction

Usage
CDFt$predict(X1, X0 = NULL)
Arguments
X1

[matrix: n_samples * n_features] Model in projection

X0

[matrix: n_samples * n_features or NULL] Model in calibration

Returns

[matrix or list] Return the matrix of correction of X1 if X0 is NULL, else return a list containing Z1 and Z0, the corrections of X1 and X0


Method clone()

The objects of this class are cloneable with this method.

Usage
CDFt$clone(deep = FALSE)
Arguments
deep

Whether to make a deep clone.

References

Michelangeli, P.-A., Vrac, M., and Loukos, H.: Probabilistic downscaling approaches: Application to wind cumulative distribution functions, Geophys. Res. Lett., 36, L11708, https://doi.org/10.1029/2009GL038401, 2009.

Examples

## Three bivariate random variables (rnorm and rexp are inverted between ref and bias)
XY = SBCK::dataset_gaussian_exp_2d(2000)
X0 = XY$X0 ## Biased in calibration period
Y0 = XY$Y0 ## Reference in calibration period
X1 = XY$X1 ## Biased in projection period

## Bias correction
## Step 1 : construction of the class CDFt 
cdft = SBCK::CDFt$new() 
## Step 2 : Fit the bias correction model
cdft$fit( Y0 , X0 , X1 )
## Step 3 : perform the bias correction, Z is a list containing
## corrections
Z = cdft$predict(X1,X0) 
Z$Z0 ## Correction in calibration period
Z$Z1 ## Correction in projection period

SBCK documentation built on Sept. 11, 2023, 5:10 p.m.

Related to CDFt in SBCK...