レッツと 2 iidrvのこと。分布を知りたい。X 2ログ(X 1)、ログ(X 2)〜N (μ 、σ )X 1 - X 2
私ができる最善の方法は、両方のテイラー級数を取り、差が残りの項間の差の残りに加えて、2つの通常のrvと2つのカイ二乗rvの差の合計であることを取得することです。2つのiid対数正規rvの差の分布を取得するより簡単な方法はありますか?
レッツと 2 iidrvのこと。分布を知りたい。X 2ログ(X 1)、ログ(X 2)〜N (μ 、σ )X 1 - X 2
私ができる最善の方法は、両方のテイラー級数を取り、差が残りの項間の差の残りに加えて、2つの通常のrvと2つのカイ二乗rvの差の合計であることを取得することです。2つのiid対数正規rvの差の分布を取得するより簡単な方法はありますか?
回答:
これは難しい問題です。最初に、対数正規分布のモーメント生成関数(の近似値)の使用について考えました。私が説明するように、それはうまくいきません。しかし、最初にいくつかの表記法:
ましょう標準正規密度とすることΦ対応する累積分布関数。我々は、ケースの対数正規分布を分析し、L N N (0 、1 )密度関数であり、 F (X )= 1 および累積分布関数 F(x)=Φ(lnx)XとYが上記の対数正規分布の独立したランダム変数で あると仮定します。D=X−Yの分布に興味があります。これは平均ゼロの対称分布です。ましょM(tは)=EETXの積率母関数であるX。tに対してのみ定義されます
この式は、数値積分に使用したり、シミュレーションの基礎として使用したりできます。最初のテスト:
integrate(function(y) plnorm(y)*dlnorm(y), lower=0, upper=+Inf)
0.5 with absolute error < 2.3e-06
これは明らかに正しいです。これを関数内にまとめましょう。
pDIFF <- function(t) {
d <- t
for (tt in seq(along=t)) {
if (t[tt] >= 0.0) d[tt] <- integrate(function(y) plnorm(y+t[tt])*dlnorm(y),
lower=0.0, upper=+Inf)$value else
d[tt] <- 1-integrate(function(y) plnorm(y+abs(t[tt]))*dlnorm(y),
lower=0.0, upper=+Inf)$value
}
return(d)
}
> plot(pDIFF, from=-5, to=5)
与えるもの:
次に、積分記号の下で微分することにより密度関数を見つけ、
dDIFF <- function(t) {
d <- t; t<- abs(t)
for (tt in seq(along=t)) {
d[tt] <- integrate(function(y) dlnorm(y+t[tt])*dlnorm(y),
lower=0.0, upper=+Inf)$value
}
return(d)
}
テストできます:
> integrate(dDIFF, lower=-Inf, upper=+Inf)
0.9999999 with absolute error < 1.3e-05
そして、得られた密度をプロットする:
plot(dDIFF, from=-5, to=5)
また、分析的な近似値を取得しようとしましたが、これまでのところ成功しませんでした。簡単な問題ではありません。ただし、Rでプログラムされた上記の数値積分は、最新のハードウェアでは非常に高速であるため、おそらくより多く使用されるべき優れた代替手段です。
アプリケーションによっては、これでニーズが満たされる場合があります。