【问题标题】:How to draw the normal distribution for Y|x如何绘制 Y|x 的正态分布
【发布时间】:2019-11-26 14:14:32
【问题描述】:

现在随机变量 X 和 Y 具有以下性质: E(X)=10 Var(X)=4 E(Y|x)=30-x/2 和 Var(Y|x)=x

问题是:通过假设 X 和 Y|x 的正态分布,从该模型中模拟 10000 个实现 (x,y),并在 y 上绘制 x

我只知道像这样使用 rnorm 和 dnorm 函数

x<-rnorm(10,mean=10,sd=2)
curve(dnorm(x),xlim=c(-5,5),ylim=c(0,0.5),col="red")

但是如何处理 dnorm(Y|x) 我不确定这是否正确:

y<-rnorm(10,mean=(30-0.5*x),sd=sqrt(x))

因为当我想要时它会显示一些错误

 curve(dnorm(y),xlim=c(-5,5),ylim=c(0,0.5))

【问题讨论】:

  • 首先生成x,然后使用y的公式生成y并在其中插入x。
  • “它显示了一些错误” 哪个图片?
  • “使用公式生成y”如何?

标签: r


【解决方案1】:

您已经正确计算了 x 和 y,您的问题在于曲线函数。您需要将带有参数的分布传递给曲线函数,而不是所述分布的实现。

在您的情况下,使用直方图更容易绘制分布。

x<-rnorm(1e4,mean=10,sd=2)
y<-rnorm(1e4,mean=(30-0.5*x),sd=sqrt(x))
hist(x)
hist(y)

【讨论】:

  • hist(y) 为您提供 Y 的 边际 分布,而不是条件分布。
  • @HongOoi 我相信这就是练习所要求的。该练习没有给我们任何预先指定的 x 值,它说生成 (x,y) 的 1e4 个值,然后绘制它们。除非我们想要为每个 x 值绘制 1e4 个图,否则我看不到其他方法。
  • 谢谢,我也是这样,但不知道为什么曲线函数不起作用