我想知道如何绘制R中正态分布的联合分布。例如,如果正常分布f(x)的是由两个功能:在R中编写双峰正态分布函数
f_1(x) ~ Normal(0, 1)
f_2(x) ~ Normal(2, 1)
然后我怎样才能中的R添加的参数来描绘这个?我正在寻找像beta版本中的“shape1”类型的参数,但无法弄清楚如何扩展常规dnorm参数以使其成为联合分布。有什么建议么?
谢谢!
我想知道如何绘制R中正态分布的联合分布。例如,如果正常分布f(x)的是由两个功能:在R中编写双峰正态分布函数
f_1(x) ~ Normal(0, 1)
f_2(x) ~ Normal(2, 1)
然后我怎样才能中的R添加的参数来描绘这个?我正在寻找像beta版本中的“shape1”类型的参数,但无法弄清楚如何扩展常规dnorm参数以使其成为联合分布。有什么建议么?
谢谢!
它看起来像你想创建一个混合2法线的分布。混合物的密度只是组分密度的(加权)总和,因此您可以执行以下操作。
f <- function(x, p1 = 0.5, p2 = 1 - p1, m1, m2)
p1 * dnorm(x, m1) + p2 * dnorm(x, m2)
x <- seq(-2, 4, len=101)
dens <- f(x, p1 = 0.5, m1=0, m2=2)
plot(x, dens, type = "l")
谢谢!你能解释为什么你把x < - seq(-2,4,len = 101)?我没有在\ mu_1 = 0和\ mu_2 = 2中得到我想要的两种方法的结果。也许,为了简单起见,您能否仅使用0.5和0.5的权重来解释它?谢谢! –
这些是示例中的两种方法。 – Dason
这是我的代码:它不太合适,但我会在答案中编辑它,当它是正确的。我仍然没有得到图中两个局部最大值。
f <- function(x, p1=0.5, p2=1-p1, m1, m2)
p1*dnorm(x, m1) + p2*dnorm(x,m2)
x <- seq(-2, 4, len=100)
f(x, m1=0, m2=2)
curve(f(x, m1=0, m2=0))
curve(f(x, m1=1, m2=0,), col="red", add=T)
curve(f(x, m1=2, m2=0,), col="green", add=T)
curve(f(x, m1=3, m2=0,), col="blue", add=T)
curve(f(x, m1=4, m2=0,), col="orange", add=T)
您是否在寻找多元正态分布? –