KalmanPosterior¶
-
class
probnum.filtsmooth.
KalmanPosterior
(locations, states, transition)[source]¶ Bases:
probnum.filtsmooth.timeseriesposterior.TimeSeriesPosterior
,abc.ABC
Posterior distribution after approximate Gaussian filtering and smoothing.
- Parameters
locations (
ndarray
) – Locations / Times of the discrete-time estimates.states (
_RandomVariableList
) – Estimated states (in the state-space model view) of the discrete-time estimates.transition (
Union
[DiscreteLinearGaussian
,DiscreteEKFComponent
,DiscreteUKFComponent
,LinearSDE
,ContinuousEKFComponent
,ContinuousUKFComponent
]) – Dynamics model used as a prior for the filter.
Methods Summary
__call__
(t)Evaluate the time-continuous posterior at location t
interpolate
(t)Evaluate the posterior at a measurement-free point.
sample
([t, size, random_state])Draw samples from the filtering/smoothing posterior.
Transform samples from a base measure to samples from the KalmanPosterior.
Methods Documentation
-
__call__
(t)¶ Evaluate the time-continuous posterior at location t
Algorithm: 1. Find closest t_prev and t_next, with t_prev < t < t_next 2. Predict from t_prev to t 3. (if self._with_smoothing=True) Predict from t to t_next 4. (if self._with_smoothing=True) Smooth from t_next to t 5. Return random variable for time t
- Parameters
t (
Union
[Real
,ndarray
]) – Location, or time, at which to evaluate the posterior.- Returns
Estimate of the states at time
t
.- Return type
randvars.RandomVariable or _randomvariablelist._RandomVariableList
-
abstract
interpolate
(t)[source]¶ Evaluate the posterior at a measurement-free point.
- Parameters
t (
Real
) – Location to evaluate at.- Returns
Dense evaluation.
- Return type
randvars.RandomVariable or _randomvariablelist._RandomVariableList
-
sample
(t=None, size=(), random_state=None)[source]¶ Draw samples from the filtering/smoothing posterior.
If nothing is specified, a single sample is drawn (supported on self.locations). If locations are specified, a single sample is drawn on those locations. If size is specified, more than a single sample is drawn.
Internally, samples from a base measure are drawn and transformed via self.transform_base_measure_realizations.
- Parameters
t (
Union
[Real
,ndarray
,None
]) – Locations on which the samples are wanted. Default is none, which implies that self.location is used.size (
Union
[Integral
,Iterable
[Integral
],None
]) – Indicates how many samples are drawn. Default is an empty tuple, in which case a single sample is returned.random_state (
Union
[None
,int
,RandomState
,Generator
]) – Random state (seed, generator) to be used for sampling base measure realizations.
- Returns
Drawn samples. If size has shape (A1, …, Z1), locations have shape (L,), and the state space model has shape (A2, …, Z2), the output has shape (A1, …, Z1, L, A2, …, Z2). For example: size=4, len(locations)=4, dim=3 gives shape (4, 4, 3).
- Return type
np.ndarray
-
abstract
transform_base_measure_realizations
(base_measure_realizations, t=None)[source]¶ Transform samples from a base measure to samples from the KalmanPosterior.
Here, the base measure is a multivariate standard Normal distribution.
- Parameters
base_measure_realizations (
ndarray
) – Shape (*size, N, d). Samples from a multivariate standard Normal distribution. N is either the len(self.locations) (if t == None), or len(t) + 1 (if t != None). The reason for the +1 in the latter is that samples at arbitrary locations need to be conditioned on a sample at the final time point.t (
Union
[Real
,ndarray
,None
]) – Times. Optional. If None, samples are drawn at self.locations.
- Returns
Shape (*size, N, d) Transformed base measure realizations. If the inputs are samples from a multivariate standard Normal distribution, the results are size samples from the Kalman posterior at prescribed locations.
- Return type
np.ndarray