Log-normally distributed sum

106 Views Asked by At

Is it the case that the sum of 2 log-normally distributed random variables is also log-normally distributed?

If so, is the difference also log-normally distributed?

And if so, how is the possibly negative value reconciled? By taking the absolute value?

Thank you

1

There are 1 best solutions below

0
On BEST ANSWER

Comment continued. If you have a practical application in mind, you might try simulating anticipated kinds of data for a preview of what difficulties might be in store. Whether or not you use R, maybe you can follow my demo below.

The particular case shown (with data arising from a 'seed' based on today's date) is one in which difficulties arise that indicate non-normality. NaNs/NAs arise from negative differences (simply ignored in normality test and plots). Many simulations with unpredicted seeds encounter no such difficulties.

If totals and differences of lognormal data were lognormal, then their logs $T$ and $D$ should be normal.

set.seed(2218)  # Remove this line for new simulation
x = exp(rnorm(50, 5,  05))  # Lognormal
y = exp(rnorm(50, 9,  1))   #  ... data
t = log(x + y);  d = log(y - x)  # totals and diffs
 Warning message:
 In log(y - x) : NaNs produced
shapiro.test(t); shapiro.test(d) # normality test

        Shapiro-Wilk normality test

data:  t 
W = 0.6793, p-value = 3.578e-09  # Spectacular rejection of normality for totals


        Shapiro-Wilk normality test

data:  d 
W = 0.976, p-value = 0.5114      # IGNORING impossible values, consistent with normality

summary(t); summary(d)      # descriptive statistics
Totals   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
        7.594   8.666   9.325   9.885  10.520  21.940 
Diffs    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
        5.454   8.376   8.957   8.960   9.628  11.090       8 

# Graphs
par(mfrow=c(2,2))  # 2x2 array of four panels
boxplot(t, col="skyblue2", pch=20, main="Totals") # watch for outliers
 qqnorm(t, pch=20, main="Norm Q-Q: Totals")
boxplot(d, col="skyblue2", pch=20, main="Diffs") # normal probability plots
 qqnorm(d, pch=20, main="Norm Q-Q: Diffs")
par(mfrow=c(1,1))

enter image description here