Mean and 3-sgima for Lognormal distributions

Illustration
Kash022 - 2022-05-23T11:45:23+00:00
Question: Mean and 3-sgima for Lognormal distributions

Hello,   I am trying to plot the lognormal distribution over 10 iterations and would like to see the mean and 3 sigma outliers. Somehow, doing this for lognormal plots does not look easy. Also, is it possible that I can skip the histogram in my plots and only look at the lognormal curves? This is the code snippet I am using. Thanks!     figure(113); for i = 1:10 norm=histfit(Current_c(i,:),10,'lognormal'); %%Current_c is a 10*100 matrix %% [muHat, sigmaHat] = lognfit(Current_c(i,:)); % Plot bounds at +- 3 * sigma. lowBound = muHat - 3 * sigmaHat; highBound = muHat + 3 * sigmaHat; yl = ylim; %line([lowBound, lowBound], yl, 'Color', [0, .6, 0], 'LineWidth', 3); %line([highBound, highBound], yl, 'Color', [0, .6, 0], 'LineWidth', 3); line([muHat, muHat], yl, 'Color', [0, .6, 0], 'LineWidth', 3); grid on; set(gcf, 'Toolbar', 'none', 'Menu', 'none'); % Give a name to the title bar. set(gcf, 'Name', 'Line segmentation', 'NumberTitle', 'Off') hold on; end  

Expert Answer

Profile picture of Prashant Kumar Prashant Kumar answered . 2025-11-20

When plotting the lognormal distribution and marking the mean and 3σ3\sigma bounds, you need to handle the lognormal nature of the data carefully. For a lognormal distribution, the mean and standard deviation in the original (non-log) space differ from the parameters μ\mu and σ\sigma of the underlying normal distribution.

Key Points:

  1. Lognormal Mean and 3σ3\sigma Bounds:
    • For a lognormal distribution, if the parameters of the underlying normal distribution are μ\mu and σ\sigma:
      • Mean: mean=eμ+σ22\text{mean} = e^{\mu + \frac{\sigma^2}{2}}
      • 3σ3\sigma Bounds:
        • Lower bound: eμ−3σe^{\mu - 3\sigma}
        • Upper bound: eμ+3σe^{\mu + 3\sigma}
  2. Skipping Histogram:
    • To avoid plotting the histogram while using histfit, remove the bar plot that represents the histogram. This can be done by hiding or deleting it after creating the plot.

Updated Code:

 

figure(113);
for i = 1:10
    % Fit the lognormal distribution
    [muHat, sigmaHat] = lognfit(Current_c(i,:));
    
    % Generate the x-values for the fitted lognormal curve
    x = linspace(min(Current_c(i,:)), max(Current_c(i,:)), 100);
    y = lognpdf(x, muHat, sigmaHat);
    
    % Plot the lognormal curve
    plot(x, y, 'LineWidth', 2); % No histogram here
    hold on;
    
    % Calculate lognormal mean and 3-sigma bounds
    lognormalMean = exp(muHat + (sigmaHat^2) / 2);
    lowBound = exp(muHat - 3 * sigmaHat);
    highBound = exp(muHat + 3 * sigmaHat);
    
    % Plot vertical lines for mean and 3-sigma bounds
    yl = ylim; % Get current y-axis limits
    line([lognormalMean, lognormalMean], yl, 'Color', [0, 0.6, 0], 'LineWidth', 3, 'LineStyle', '--'); % Mean
    line([lowBound, lowBound], yl, 'Color', [0.6, 0, 0], 'LineWidth', 2, 'LineStyle', ':'); % Lower bound
    line([highBound, highBound], yl, 'Color', [0.6, 0, 0], 'LineWidth', 2, 'LineStyle', ':'); % Upper bound
    
    grid on;
    set(gcf, 'Toolbar', 'none', 'Menu', 'none');
    set(gcf, 'Name', 'Lognormal Distribution', 'NumberTitle', 'Off');
end
hold off;

Key Changes:

  1. Skipping Histogram:
    • Removed histfit and replaced it with lognpdf to directly plot the lognormal curve.
  2. Mean and 3σ3\sigma:
    • Calculated the lognormal mean and bounds using their respective formulas.
  3. Custom Plot:
    • Plotted only the lognormal curve and marked the mean and bounds with vertical lines.

Output:

For each iteration:

  1. The lognormal curve is plotted for the dataset in Current_c(i,:).
  2. The mean (eμ+σ2/2e^{\mu + \sigma^2/2}) is shown with a dashed green line.
  3. The 3σ3\sigma bounds (eμ±3σe^{\mu \pm 3\sigma}) are shown with dotted red lines.

This approach avoids the histogram entirely and focuses on the lognormal curve and its statistical features.


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!