Skip to main content

covariance

Function covariance 

Source
pub fn covariance(
    vars: &[&RandomVariable],
    g: &Ex,
    h: &Ex,
) -> Result<Ex, SymplexError>
Expand description

Cov[g, h] = E[gh] − E[g]E[h] for expressions in independent variables. SymPy: covariance(X, 2*X) (= 2 for a standard normal X).

§Errors

As expectation.

§Examples

use symplex::prelude::*;
use symplex::stats::{self, Distribution, RandomVariable};

let ctx = Context::new();
let x = RandomVariable::new(&ctx, "X", Distribution::normal(ctx.int(0), ctx.int(1)));
let y = RandomVariable::new(&ctx, "Y", Distribution::normal(ctx.int(0), ctx.int(1)));
let (xs, ys) = (x.symbol(), y.symbol());

assert_eq!(stats::covariance(&[&x], xs, &(2 * xs))?, ctx.int(2));
// Independent variables are uncorrelated.
assert_eq!(stats::covariance(&[&x, &y], xs, ys)?, ctx.int(0));