pub struct OrnsteinUhlenbeck {
pub theta: f64,
pub mu: f64,
pub sigma: f64,
pub x0: f64,
/* private fields */
}Expand description
Ornstein-Uhlenbeck mean-reverting process.
SDE: dX = theta*(mu - X)dt + sigmadW
Uses exact discretisation: X(t+dt) = X(t)exp(-thetadt) + mu*(1-exp(-thetadt)) + sigmasqrt((1-exp(-2thetadt))/(2*theta)) * N(0,1)
Fields§
§theta: f64Mean reversion speed (theta > 0).
mu: f64Long-run mean (mu).
sigma: f64Volatility (sigma).
x0: f64Initial value X(0).
Implementations§
Source§impl OrnsteinUhlenbeck
impl OrnsteinUhlenbeck
Sourcepub fn new(theta: f64, mu: f64, sigma: f64, x0: f64, seed: u64) -> Self
pub fn new(theta: f64, mu: f64, sigma: f64, x0: f64, seed: u64) -> Self
Creates a new OU process.
Sourcepub fn path(&self, t_end: f64, n_steps: usize) -> Vec<f64>
pub fn path(&self, t_end: f64, n_steps: usize) -> Vec<f64>
Exact simulation path using the conditional Gaussian formula.
Sourcepub fn stationary_variance(&self) -> f64
pub fn stationary_variance(&self) -> f64
Stationary variance: sigma^2 / (2*theta).
Sourcepub fn autocorrelation(&self, tau: f64) -> f64
pub fn autocorrelation(&self, tau: f64) -> f64
Autocorrelation at lag tau: exp(-theta * tau).
Auto Trait Implementations§
impl Freeze for OrnsteinUhlenbeck
impl RefUnwindSafe for OrnsteinUhlenbeck
impl Send for OrnsteinUhlenbeck
impl Sync for OrnsteinUhlenbeck
impl Unpin for OrnsteinUhlenbeck
impl UnsafeUnpin for OrnsteinUhlenbeck
impl UnwindSafe for OrnsteinUhlenbeck
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.