交点2正常曲线

Wav*_*ave 7 r normal-distribution

虽然我认为这是一个基本问题,但我似乎无法找到如何在R中计算:

交叉点(我需要x值)的2个或更多正态分布(拟合在直方图上),例如具有以下参数:

d=data.frame(mod=c(1,2),mean=c(14,16),sd=c(0.9,0.6),prop=c(0.6,0.4))
Run Code Online (Sandbox Code Playgroud)

使用我的2条曲线的均值和标准差,并支持每个mod对分布的贡献比例.

Hon*_*Ooi 12

你可以使用uniroot:

f <- function(x) dnorm(x, m=14, sd=0.9) * .6 - dnorm(x, m=16, sd=0.6) * .4

uniroot(f, interval=c(12, 16))

$root
[1] 15.19999

$f.root
[1] 2.557858e-06

$iter
[1] 5

$estim.prec
[1] 6.103516e-05
Run Code Online (Sandbox Code Playgroud)


ETA的一些说明:

uniroot是一个单变量的根查找器,即给定f一个变量的函数x,它找到x解决方程的值f(x) = 0.

要使用它,您需要提供函数f,以及假定解决方案值所在的时间间隔.在这种情况下,f只是两个密度之间的差异; 它们相交的点将f是零.在这个例子中,我得到了一个区间(12,16),通过绘制一个图并看到它们在x = 15附近交叉.