# Newbie question: Extract mean and variance from a gaussian(mean, variance)

• ### Question

• Goood Morning Infer.NET team and thanks for work on this wonderful library,

As a newbie in Infer.net, working in VB.NET, i am trying to test bayesian inference.

All is ok, i can create a w matrix, calculated with by this way:

Dim y_observed As VariableArray(Of Double) = Variable.Observed(Variation, r).Named("y")
Dim x_observed As VariableArray(Of Vector) = Variable.Observed(x, r).Named("x")

' Bayes Point Machine
Dim noise As Double = 0.1
y_observed(r) = Variable.GaussianFromMeanAndVariance(Variable.InnerProduct(w, x_observed(r)), noise)

I "infer" my wposterior gaussian like that: Dim wPosterior As VectorGaussian = engine.Infer(Of VectorGaussian)(w)

and i use it with a unique  "Out of the Sample" observation  yOTS(0) where:

Dim yOTS As VariableArray(Of Double) = Variable.Array(Of Double)(r2)

yOTS(0) = Variable.GaussianFromMeanAndVariance(Variable.InnerProduct(Variable.Random(wPosterior), xOTS_observed(0)), noise)

Finally i obtain my output, for exemple:

"output=" & engine.Infer(yOTS).ToString => output=[0] Gaussian(0.00123, 0.1196)

My problem is quite frustrating: i can t put mean (here 0.00123) and variance (0.1196) in variables ...

I have tried moyenne = engine.Infer(yOTS).GetMean(), it should be straightforward but ... i have a bug, the error message says:

"The public member 'GetMean' from type 'DistributionStrucArray(Of Gaussain, Double)' is not found' (Rough english translation from french error message).

So, is there a simplier way to get the mean and variance, what have i to do to get these values?

Thanks for help.

Tuesday, June 19, 2012 8:49 AM

• yOTS is a VariableArray, so its marginal comes out as IList<Gaussian>.

```IList<Gaussian> output = engine.Infer<IList<Gaussian>>(yOTS);
Console.WriteLine(output[0].GetMean());```

• Marked as answer by Thursday, June 21, 2012 9:03 AM
Wednesday, June 20, 2012 4:30 PM

### All replies

• yOTS is a VariableArray, so its marginal comes out as IList<Gaussian>.

```IList<Gaussian> output = engine.Infer<IList<Gaussian>>(yOTS);
Console.WriteLine(output[0].GetMean());```

• Marked as answer by Thursday, June 21, 2012 9:03 AM
Wednesday, June 20, 2012 4:30 PM
• Thx a lot Tom, it works.

it was as simple as that ...

Let s go to predict now!

See you later for another newbie question.

Tixu.

Thursday, June 21, 2012 9:04 AM