IteratedKalman¶
-
class
probnum.filtsmooth.
IteratedKalman
(kalman, stoppingcriterion=None)[source]¶ Bases:
probnum.filtsmooth.gaussfiltsmooth.kalman.Kalman
Iterated filter/smoother based on posterior linearisation.
In principle, this is the same as a Kalman filter; however, 1. predict() and update() in each filter step may be repeated. 2. approximate Gaussian filtering and smoothing can use posterior linearisation.
There is an additional method:
iterated_filtsmooth()
, which computes things like MAP estimates.Attributes Summary
Convenience function for accessing
self.dynamod
.Convenience function for accessing
self.initdist
.Convenience function for accessing
self.initrv
.Convenience function for accessing
self.measmod
.Methods Summary
condition_state_on_measurement
(randvar, …)Condition the state on the observed data.
filter
(dataset, times, **kwargs)Apply Gaussian filtering (no smoothing!) to a data set.
filter_step
(start, stop, current_rv, data[, …])Filter step of iterated filter.
filtsmooth
(dataset, times, **kwargs)Apply Gaussian filtering and smoothing to a data set.
iterated_filtsmooth
(dataset, times, **kwargs)Repeated filtering and smoothing using posterior linearisation.
measure
(time, randvar, **kwargs)Propagate the state through the measurement model.
predict
(start, stop, randvar[, linearise_at])(Possibly iterated) prediction step.
smooth
(filter_posterior, **kwargs)Apply Gaussian smoothing to the filtering outcome (i.e.
smooth_list
(rv_list, locations, **kwargs)Apply smoothing to a list of RVs with desired final random variable.
smooth_step
(unsmoothed_rv, smoothed_rv, …)A single smoother step.
smoother_step
(**kwargs)Smoother step.
update
(time, randvar, data[, linearise_at])(Possibly iterated) update step.
Attributes Documentation
-
dynamicmodel
¶ Convenience function for accessing
self.dynamod
.
-
initialdistribution
¶ Convenience function for accessing
self.initdist
.
-
initialrandomvariable
¶ Convenience function for accessing
self.initrv
.
-
measurementmodel
¶ Convenience function for accessing
self.measmod
.
Methods Documentation
-
condition_state_on_measurement
(randvar, meas_rv, data, crosscov, **kwargs)¶ Condition the state on the observed data.
- Parameters
randvar (Normal) – Random variable to be updated with the measurement and data.
meas_rv (Normal) – Measured random variable, as returned by the measurement model.
data (np.ndarray) – Data to update on.
crosscov (np.ndarray) – Cross-covariance between the state random variable randvar and the measurement random variable meas_rv.
- Returns
Updated Normal random variable (new filter estimate)
- Return type
-
filter
(dataset, times, **kwargs)¶ Apply Gaussian filtering (no smoothing!) to a data set.
- Parameters
dataset (array_like, shape (N, M)) – Data set that is filtered.
times (array_like, shape (N,)) – Temporal locations of the data points.
- Returns
Posterior distribution of the filtered output
- Return type
-
filter_step
(start, stop, current_rv, data, previous_posterior=None, **kwargs)[source]¶ Filter step of iterated filter.
Different to Kalman.filter in the sense that there may be multiple iterated updates for a single predict, or multiple iterated predicts for a single update, or multiple iterated predicts and updates in general. This retrieves methods such as the iterated extended Kalman filter. By further specifying a previous_posterior (KalmanPosterior), the first of those possibly iterated updates is linearised at the previous posterior estimate. This retrieves methods such as the iterated extended Kalman smoother.
- Parameters
start (float) – Predict FROM this time point.
stop (float) – Predict TO this time point.
current_rv (RandomVariable) – Predict based on this random variable. For instance, this can be the result of a previous call to filter_step.
data (array_like) – Compute the update based on this data.
previous_posterior (KalmanPosterior) – Posterior distribution of a previous smoothing iteration. Optional. If specified, posterior linearisation is applied.
- Returns
RandomVariable – Resulting filter estimate after the single step.
dict – Additional information provided by predict() and update(). Contains keys pred_rv, info_pred, meas_rv, info_upd.
-
filtsmooth
(dataset, times, **kwargs)¶ Apply Gaussian filtering and smoothing to a data set.
- Parameters
dataset (array_like, shape (N, M)) – Data set that is filtered.
times (array_like, shape (N,)) – Temporal locations of the data points.
- Returns
Posterior distribution of the smoothed output
- Return type
-
iterated_filtsmooth
(dataset, times, **kwargs)[source]¶ Repeated filtering and smoothing using posterior linearisation.
-
measure
(time, randvar, **kwargs)¶ Propagate the state through the measurement model.
- Parameters
- Returns
meas_rv (Normal) – Measured random variable, as returned by the measurement model.
info (dict) – Additional info. Contains at leas the key crosscov which is the cross covariance between the input random variable and the measured random variable.
-
predict
(start, stop, randvar, linearise_at=None, **kwargs)[source]¶ (Possibly iterated) prediction step.
-
smooth
(filter_posterior, **kwargs)¶ Apply Gaussian smoothing to the filtering outcome (i.e. a KalmanPosterior).
- Parameters
filter_posterior (KalmanPosterior) – Posterior distribution obtained after filtering
- Returns
Posterior distribution of the smoothed output
- Return type
-
smooth_list
(rv_list, locations, **kwargs)¶ Apply smoothing to a list of RVs with desired final random variable.
Specification of a final RV is useful to compute joint samples from a KalmanPosterior object, because in this case, the final RV is a Dirac (over a sample from the final Normal RV) and not a Normal RV.
- Parameters
rv_list (_RandomVariableList or array_like) – List of random variables to be smoothed.
locations (array_like) – Locations of the random variables in rv_list.
- Returns
List of smoothed random variables.
- Return type
_RandomVariableList
-
smooth_step
(unsmoothed_rv, smoothed_rv, start, stop, **kwargs)¶ A single smoother step.
Consists of predicting from the filtering distribution at time t to time t+1 and then updating based on the discrepancy to the smoothing solution at time t+1.
- Parameters
unsmoothed_rv (RandomVariable) – Filtering distribution at time t.
smoothed_rv (RandomVariable) – Prediction at time t+1 of the filtering distribution at time t.
start (float) – Time-point of the to-be-smoothed RV.
stop (float) – Time-point of the already-smoothed RV.
-
smoother_step
(**kwargs)¶ Smoother step.
-