Đây là một vấn đề khó khăn. Trước tiên tôi nghĩ về việc sử dụng (một số xấp xỉ) hàm tạo thời điểm của phân phối logic. Điều đó không hiệu quả, như tôi sẽ giải thích. Nhưng trước tiên một số ký hiệu:
Hãy là mật độ bình thường tiêu chuẩn và Φ tương ứng hàm phân phối tích lũy. Chúng tôi sẽ chỉ phân tích trường hợp phân phối lognatural l n N ( 0 , 1 ) , có hàm mật độ
f ( x ) = 1φΦl n N( 0 , 1 )
và hàm phân phối tích lũy
F(x)=Φ(lnx)
Giả sửXvàYlà các biến ngẫu nhiên độc lập với phân phối logic bất thường ở trên. Chúng tôi quan tâm đến việc phân phốiD=X-Y, đây là phân phối đối xứng với giá trị trung bình bằng không. HãyM(t)=EđtXcó chức năng tạo ra khoảnh khắc củaX. Nó chỉ được định nghĩa chot
f( x ) = 12 π--√xe- 12( lnx )2
F( x ) = Φ ( lnx )
XYD = X- YM( t ) = Eet XX , vì vậy không được xác định trong một khoảng thời gian mở có chứa zero Chức năng tạo lúc cho.
D là
M D ( t ) = E đ t ( X - Y ) = E đ t X E e - t Y = M ( t ) M ( - t ) . Vì vậy, hàm tạo mô men cho
D chỉ được xác định cho
t = 0t ∈ ( - ∞ , 0 ]DMD( t ) = Eet ( X- Y)= Eet XEe- t Y= M( t ) M( - t )Dt = 0, vì vậy không hữu ích lắm.
Điều đó có nghĩa chúng tôi sẽ cần một số cách tiếp cận trực tiếp hơn cho việc tìm kiếm ước tính cho việc phân phối các . Giả sử t ≥ 0 , tính toán
P ( D ≤ t )Dt ≥ 0 (và trường hợpt<0được giải bằng đối xứng, ta đượcP(D≤t)=1-P(D≤|t|)).
P( D ≤ t )= P( X- Y≤ t )= ∫∞0P( X- y≤ t | Y= y) f( y)dy= ∫∞0P( X≤ t + y) f( y)dy= ∫∞0F( t + y) f( y)dy
t < 0P( D ≤ t ) = 1 - P( D ≤ | t | )
Biểu thức này có thể được sử dụng để tích hợp số hoặc làm cơ sở cho mô phỏng. Đầu tiên một bài kiểm tra:
integrate(function(y) plnorm(y)*dlnorm(y), lower=0, upper=+Inf)
0.5 with absolute error < 2.3e-06
đó là chính xác rõ ràng. Hãy để chúng tôi gói này trong một chức năng:
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)
cung cấp cho:
Sau đó, chúng ta có thể tìm thấy hàm mật độ bằng cách phân biệt dưới dấu tích phân, thu đượ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)
}
mà chúng ta có thể kiểm tra:
> integrate(dDIFF, lower=-Inf, upper=+Inf)
0.9999999 with absolute error < 1.3e-05
Và vẽ mật độ chúng ta có được:
plot(dDIFF, from=-5, to=5)
Tôi cũng đã cố gắng để có được một số xấp xỉ phân tích, nhưng cho đến nay đã không thành công, nó không phải là một vấn đề dễ dàng. Nhưng tích hợp số như trên, được lập trình trong R rất nhanh trên phần cứng hiện đại, vì vậy đây là một lựa chọn tốt có lẽ nên được sử dụng nhiều hơn nữa.