Re: MultinormalDistribution Question
- To: mathgroup at smc.vnet.net
- Subject: [mg120216] Re: MultinormalDistribution Question
- From: FranD <seacrofter001 at yahoo.com>
- Date: Wed, 13 Jul 2011 03:12:28 -0400 (EDT)
The output from the code below (with minor further simplification) shows that the distribution of y given x is Normal with mean: meany + rho (sy/sx) (x - meanx)
and variance: (1 - rho^2) sy^2.
ClearAll["Global`*"];
distx = NormalDistribution[meanx, sx];
pdfx = PDF[distx, {x}];
distxy = MultinormalDistribution[{meanx,
meany}, {{sx^2, rho*sx*sy}, {rho*sx*sy, sy^2}}];
pdfxy = PDF[distxy, {x, y}];
PDFofYgivenX = (pdfxy/pdfx) // FullSimplify
Out = {(
E^((meany sx + rho sy (-meanx + x) - sx y)^2/(
2 (-1 + rho^2) sx^2 sy^2)) sx)/(
Sqrt[2 \[Pi]] Sqrt[-(-1 + rho^2) sx^2 sy^2])}
FranD
---- FranD wrote:
ClearAll["Global`*"]
dist = MultinormalDistribution[{meanx, meany}, {{sx^2, rho*sx*sy}, {rho*sx*sy, sy^2}}];
pdf = PDF[dist, {x, y}];
i = Integrate[pdf, {y, -Infinity, Infinity}];
iy = Integrate[y pdf, {y, -Infinity, Infinity}];
MeanOfyGivenx = m = (iy/i)
m = meany + rho (sy/sx) (x - meanx); (* Out[1] below *)
iyy = Integrate[(y - m)^2 pdf, {y, -Infinity, Infinity}];
VarianceOfyGivenx = v = (iyy/i)
v = (1 - rho^2) sy^2; (* Out[2] below *)
Out[1] = ConditionalExpression
[(meany sx + rho sy (-meanx + x))/sx,
Re[1/((-1 + rho^2) sy^2)] < 0]
Out[2] = ConditionalExpression
[-(-1 + rho^2) sy^2,
Re[1/((-1 + rho^2) sy^2)] < 0]
CAVEAT: Six minutes elapsed time to evaluate on my PC
FranD
---- Ray Koopman wrote:
The conditional mean of y given x is (x - mx)*r*sy/sx + my,and the conditional standard deviation is
sy*Sqrt[1 - r^2],where mx & my are the marginal means,
sx & sy are the marginal standard deviations,and r is the correlation.
---- Bob Hanlon wrote:
Clear[x, y];
mean1 = 58/10;
sigma1 = 2/10;
mean2 = 53/10;
sigma2 = 2/10;
rho = 6/10;
dist = MultinormalDistribution[{mean1, mean2},
{{sigma1^2, rho*sigma1*sigma2},
{rho*sigma1*sigma2, sigma2^2}}];
plot1 = Plot3D[PDF[dist, {x, y}],
{x, mean1 - 3 sigma1, mean1 + 3 sigma1},
{y, mean2 - 3 sigma2, mean2 + 3 sigma2},
PlotRange -> All]
m = Integrate[y*PDF[dist, {63/10, y}],
{y, -Infinity, Infinity}]
(14*Sqrt[2/Pi])/E^(25/8)
m // N
0.490792
Alternatively,
m == Expectation[y*DiracDelta[x - 63/10],
Distributed[{x, y}, dist]]
True
s = Sqrt[Integrate[(y - m)^2*PDF[dist, {63/10, y}],
{y, -Infinity, Infinity}]];
s // N
1.51329
Alternatively,
s == N[Sqrt[Expectation[(y - m)^2*DiracDelta[x - 63/10],
Distributed[{x, y}, dist]]]]
True
Bob Hanlon
---- Steve <s123 at epix.net> wrote:
Hello,
Can someone help me with this ?
I have 2 normal distributions; dist1 describes x and dist2 describes y. Each are fully defined and are correlated to one another by the correlation coefficient. How can I detemine the mean and standard deviation of the expected normal distribution that is associated with a given x value from dist1 ?
An example:
mean1 = 5.8
sigma1 =0 .2
mean2 = 5.3
sigma2 = 0.2
Correlation Coefficient, rho = 0.6
Given an x value of 6.3 (from dist1) what is the corresponding mean and standard deviation of y ?
I can view the combined density function from the following:
Mu = {mean1, mean2}
CapSigma = {{sigma1^2, rho*sigma1*sigma2} , {rho, rho*sigma1*sigma2}
dist = MultinormalDistribution[Mu,CapSigma]
pdf = PDF[dist,{x,y}]
plot1 = Plot3D[pdf, {x,4,7},{y,4,7}, PlotRange->All]
but can't see how to determine the mean and the standard deviation of y for a given value of x, like 6.3
Any help would be appreciated.
Thanks,
--Steve