******************* Reference Forecasts ******************* To quantify the quality of an initialized forecast, it is useful to judge it against some simple reference forecast. ``climpred`` currently supports a several reference forecasts, and we are open to adding other reference forecasts. Consider opening a `Pull Request `_ for additional references. **Persistence Forecast**: Whatever is observed at the time of initialization is forecasted to persist into the forecast period :cite:p:`Jolliffe2011`. You can compute this by passing ``reference="persistence"`` into :py:meth:`.HindcastEnsemble.verify`, :py:meth:`.HindcastEnsemble.bootstrap`, :py:meth:`.PerfectModelEnsemble.verify` and :py:meth:`.PerfectModelEnsemble.bootstrap`. **Damped Persistence Forecast**: (*Not Implemented*) The amplitudes of the anomalies reduce in time exponentially at a time scale of the local autocorrelation :cite:p:`Yuan2016`. .. math:: v_{dp}(t) = v(0)e^{-\alpha t} **Climatology**: The average values at the temporal forecast resolution (e.g., annual, monthly, daily) over some long period, which is usually 30 years :cite:p:`Jolliffe2011`. You can compute this by passing ``reference="climatology"`` into :py:meth:`.HindcastEnsemble.verify`, :py:meth:`.HindcastEnsemble.bootstrap`, :py:meth:`.PerfectModelEnsemble.verify` and :py:meth:`.PerfectModelEnsemble.bootstrap`. **Uninitialized**: Uninitialized ensembles are generated by perturbing initial conditions only at one point in the historical run. These are generated via micro (round-off error perturbations) or macro (starting from completely different restart files) methods. Uninitialized ensembles are used to approximate the magnitude of internal climate variability and to confidently extract the forced response (ensemble mean) in the climate system. In ``climpred``, we use uninitialized ensembles as a baseline for how important (reoccurring) initializations are for lending predictability to the system. You can compute this by passing ``reference="uninitialized"`` into :py:meth:`.HindcastEnsemble.verify`, :py:meth:`.HindcastEnsemble.bootstrap`, :py:meth:`.PerfectModelEnsemble.verify` and :py:meth:`.PerfectModelEnsemble.bootstrap`. Some modeling centers (such as NCAR) provide a dynamical uninitialized ensemble (the CESM Large Ensemble) along with their initialized prediction system (the CESM Decadal Prediction Large Ensemble). Use :py:meth:`.HindcastEnsemble.add_uninitialized` or :py:meth:`.PerfectModelEnsemble.add_uninitialized`. This could be, for example, output from an ``uninitialized`` Large Ensemble. If ``uninitialzed`` isn't available, one can run :py:meth:`.HindcastEnsemble.generate_uninitialized` or :py:meth:`.PerfectModelEnsemble.generate_uninitialized`, which resamples the ``initialized`` from :py:class:`.HindcastEnsemble` or ``control`` from :py:class:`.PerfectModelEnsemble` to an ``uninitialized`` forecast. **Random Mechanism**: (*Not Implemented*) A probability distribution is assigned to the possible range of the variable being forecasted, and a sequence of forecasts is produced by taking a sequence of independent values from that distribution :cite:p:`Jolliffe2011`. This would be similar to computing an ``uninitialized`` forecast. References ########## .. bibliography:: :filter: docname in docnames