Różnica między dwiema zmiennymi losowymi logarytmicznymi


23

Niech i będą 2 iidrv, gdzie \ log (X_1), \ log (X_2) \ sim N (\ mu, \ sigma) . Chciałbym poznać rozkład dla X_1 - X_2 .X 2 log ( X 1 ) , log ( X 2 ) N ( μ , σ ) X 1 - X 2X1X2log(X1),log(X2)N(μ,σ)X1X2

Najlepsze, co mogę zrobić, to wziąć serię Taylora obu i przekonać się, że różnica jest sumą różnicy między dwoma normalnymi wartościami RV i dwoma wartościami kwadratowymi chi w uzupełnieniu do reszty różnicy między resztą wyrażeń. Czy istnieje prostszy sposób na uzyskanie rozkładu różnicy między 2 iid log-normal rv?


Oto odpowiedni artykuł. Więcej artykułów znajdziesz w google! papers.ssrn.com/sol3/papers.cfm?abstract_id=2064829
kjetil b halvorsen

1
Rzuciłem pobieżne spojrzenie na ten artykuł i wydaje się, że nie odpowiada on na moje pytanie w zadowalający sposób. Wydaje się, że zajmują się one liczbowymi przybliżeniami trudniejszego problemu znalezienia rozkładu sumy / różnicy między skorelowanymi lognormalnymi wartościami RV. Miałem nadzieję, że odpowiedź na niezależną sprawę będzie prostsza.
frayedchef

2
W niezależnym przypadku może to być prostsza odpowiedź, ale nie prosta! Przypadek logarytmiczny jest znanym przypadkiem twardym --- funkcja generująca moment rozkładu logarytmicznego nie istnieje --- to znaczy nie zbiega się w otwartym przedziale zawierającym zero. Tak więc nie znajdziesz łatwego rozwiązania.
kjetil b halvorsen

Rozumiem ... Czy podejście, które przedstawiłem powyżej, byłoby rozsądne? (tzn. jeśli Yi=log(Xi) , X1X2(Y1Y2)+(Y12Y22)/2+... Czy wiemy coś o warunkach wyższego rzędu, lub jak je związać?
frayedchef

1
Aby zilustrować trudność --- logarytmiczny mgf jest zdefiniowany tylko na (,0] . Aby oszacować rozkład różnic metodami saddlepoint, potrzebujemy (K = skumulowane gf) K(s)+K(s) , i ta suma jest zdefiniowana tylko w jednym punkcie, zero. Więc nie wydaje się działać. Suma lub średnia byłaby prostsza!
kjetil b halvorsen

Odpowiedzi:


15

To trudny problem. Najpierw pomyślałem o użyciu (jakieś przybliżenie) funkcji generowania momentu w rozkładzie logarytmicznym. To nie działa, jak wyjaśnię. Ale najpierw trochę notacji:

Niech będzie standardową gęstością normalną, a odpowiednią funkcją rozkładu skumulowanego. Przeanalizujemy tylko rozkład logarytmiczny przypadku , który ma funkcję gęstości oraz funkcja skumulowanego rozkładu Załóżmy, że i są niezależnymi zmiennymi losowymi o powyższym rozkładzie logarytmicznym. Interesuje nas rozkład , który jest rozkładem symetrycznym ze średnią zero. Niech będzie funkcją generującą momentΦ l n N ( 0 , 1 ) f ( x ) = 1ϕΦlnN.(0,1)F(x)=Φ(lnx)XYD=X-YM(t)=EetXXt(-,0]DMD(t)=Eet(X-Y)=EetX

fa(x)=12)πxmi-12)(lnx)2)
fa(x)=Φ(lnx)
XYre=X-YM.(t)=mimitXX. Jest on zdefiniowany tylko dla , więc nie jest zdefiniowany w przedziale otwartym zawierającym zero. Funkcja generowania momentu dla to . Zatem funkcja generowania momentu dla jest zdefiniowana tylko dla , więc nie jest bardzo przydatna.t(-,0]reM.re(t)=mimit(X-Y)=mimitXmimi-tY=M.(t)M.(-t)ret=0

Oznacza to, że będziemy potrzebować trochę bardziej bezpośrednie podejście do znajdowania przybliżeń dla podziału . Załóżmy, że , oblicz (a przypadek rozwiązany jest symetrycznie, otrzymujemy ). ret0

P.(ret)=P.(X-Yt)=0P.(X-yt|Y=y)fa(y)rey=0P.(Xt+y)fa(y)rey=0fa(t+y)fa(y)rey
t<0P.(ret)=1-P.(re|t|)

To wyrażenie może być użyte do integracji numerycznej lub jako podstawa symulacji. Najpierw test:

 integrate(function(y) plnorm(y)*dlnorm(y), lower=0,  upper=+Inf)
  0.5 with absolute error < 2.3e-06

co jest wyraźnie poprawne. Podsumujmy to w funkcji:

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)

co daje:

funkcja rozkładu skumulowanego znaleziona przez całkowanie numeryczne

Następnie możemy znaleźć funkcję gęstości, różnicując pod znakiem całki, uzyskując

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)
}

który możemy przetestować:

> integrate(dDIFF,  lower=-Inf,  upper=+Inf)
0.9999999 with absolute error < 1.3e-05

I wykreślając gęstość otrzymujemy:

plot(dDIFF,  from=-5,  to=5)

funkcja gęstości znaleziona przez całkowanie numeryczne

Próbowałem też uzyskać jakieś przybliżenie analityczne, ale jak dotąd nie udało się, nie jest to łatwy problem. Ale integracja numeryczna, jak wyżej, zaprogramowana w R jest bardzo szybka na nowoczesnym sprzęcie, więc jest dobrą alternatywą, która prawdopodobnie powinna być używana znacznie więcej.


1

To nie odpowiada ściśle na twoje pytanie, ale czy nie byłoby łatwiej spojrzeć na stosunek i ? Następnie po prostu docierasz doXY

Pr(XYt)=Pr(log(XY)log(t))=Pr(log(X)-log(Y)log(t))N.(0,2)σ2))

W zależności od zastosowania może to służyć Twoim potrzebom.


3
Ale czy nie patrzymy na XY zamiast log (X) - log (Y)?
Sextus Empiricus

Tak oczywiście. Dzieje się tak na wypadek, gdyby ktoś był zainteresowany dowiedzieć się, jak dwie logarytmiczne zmienne różnią się od siebie, niekoniecznie musi to być różnica. Dlatego też mówię, że to nie odpowiada na pytanie.
Vincent Traag
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.