高斯比分布:包含


28

我正在使用两个独立的正态分布和,均值和以及方差和。XÿμXμÿσX2σÿ2

我对它们的比率的分布感兴趣。和的均值都不为零,因此不作为柯西分布。ž=X/ÿXÿž

我需要找到的CDF ,然后对,,和取CDF的导数。žμXμÿσX2σÿ2

有人知道已经在哪里计算过的论文吗?还是我自己怎么做?

我在1969年的一篇论文中找到了CDF的公式,但是采用这些导数无疑将是一个巨大的痛苦。也许有人已经做到了,或者知道如何轻松做到这一点?我主要需要了解这些衍生物的迹象。

如果主要为正,则本文还包含解析上更简单的近似值。我不能有那个限制。但是,即使在参数范围之外,近似值也可能具有与真实导数相同的符号?ÿ


4
我为您添加了。您写了“ sigma”,但提到这些是方差,因此我将它们设为sigma平方。确保它仍然说出您想问的内容。ŤËX
gung-恢复莫妮卡


2
与上述论文中的PDF相同。我正在尝试将CDF的衍生内容应用于基本的mus和sigma。
美国广播公司

2
David Hinkley发现的pdf公式完全是封闭形式。因此,您可以一次采取这些衍生产品。我实际上对进行这种推导的过程感到好奇,因为没有任何理由使符号在实数上保持一致……
西安

2
@ABC您可以在本文的公式1中找到的密度。我前一段时间进行了研究,它与欣克利(Hinkley)的结果和马尔萨格里亚(Marsaglia)的结果一致。可以用蛮力推论得出,就像道格拉斯·扎尔(Douglas Zare)所建议的那样(我做到了,只有在确实需要的时候才建议这样做)。X/ÿ

Answers:


1

5
欢迎来到该网站@Quantum。您介意对这些论文做一个简短的总结,以便读者无需打开并阅读每篇论文就能判断它们是否在寻找他们想要的东西吗?
gung-恢复莫妮卡

@gung是的,我介意...开个玩笑。这些是有关该主题的最新论文,据我所知,其中包含密度的表达式。主题不是那么热门,所以除非您在2527ž=X/ÿ
Quantum

4
量子-这不能解决@gung的担忧。仅链接的答案通常是不可接受的。Gung询问您是否可以“提供这些论文的简短摘要”(意思是“在您的答案中”)。您在评论中的集体描述还不够。请简要说明每个链接(如果可能,单独地,而不是集体地),以说明您为什么添加它/为什么有意义。就目前而言,您可能有用的答案可能会转换为评论,就像以前对此问题的仅链接响应所发生的那样。
Glen_b-恢复莫妮卡2014年

我不明白为什么不存在该比率的期望。如果Y的正态分布均值不为零,则Z = X的均值Xÿ由下式给出Xž=Xÿ,我想念什么?XÿpXÿdXdÿ
罗伊2015年

您所缺少的是,的密度是连续的且为零的正数,因此会产生沉重的尾巴……ÿ
kjetil b halvorsen

0

如果您有许可证,请考虑使用像Mathematica这样的符号数学包,否则请考虑使用Sage。

如果您只是做数值工作,那么您可能也只考虑数值微分。

虽然很乏味,但看起来确实很简单。也就是说,所有涉及的函数都易于计算导数。完成后,您可以使用数值微分来测试结果,以确保您拥有正确的公式。


0

μX

pratio <- function(z, mu_x=1.0, mu_y=1.0,var_x=0.2, var_y=0.2) {
    sd_x <- sqrt(var_x)
    sd_y <- sqrt(var_y)

    a <- function(z) {
        sqrt(z*z/var_x+1/var_y)
    }

    b <- function(z) {
        mu_x*z/var_x + mu_y/var_y
    }

    c <- mu_x^2/var_x + mu_y^2/var_y

    d <- function(z) {
        exp((b(z)^2 - c*a(z)^2)/(2*a(z)^2))
    }


    t1 <- (b(z)*d(z)/a(z)^3)
    t2 <- 1.0/(sqrt(2*pi)*sd_x*sd_y)
    t3 <- pnorm(b(z)/a(z)) - pnorm(-b(z)/a(z))
    t4 <- 1.0/(a(z)^2*pi*sd_x*sd_y)
    t5 <- exp(-c/2.0)
    return(t1*t2*t3 + t4*t5)
}

# Integrates to 1, so probably no typos.
print(integrate(pratio, lower=-Inf, upper=Inf))

cdf_ratio <- function(x, mu_x=1.0, mu_y=1.0,var_x=0.2, var_y=0.2) {
    integrate(function(x) {pratio(x, mu_x, mu_y, var_x, var_y)}, 
        lower=-Inf, upper=x, abs.tol=.Machine$double.eps)$value
} 

# Numerical differentiation here is very easy:
derv_mu_x <- function(x, mu_x=1.0, mu_y=1.0,var_x=0.2, var_y=0.2) {
    eps <- sqrt(.Machine$double.eps)
    left <- cdf_ratio(x, mu_x+eps, mu_y, var_x, var_y)
    right <- cdf_ratio(x, mu_x-eps, mu_y, var_x, var_y)
    return((left - right)/(2*eps))
} 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.