5
$\begingroup$

Given a dataset X with N observations in 11 dimensions, where each variable is restricted to be >= 0, how is it possible to fit an 11-dimensional log-normal distribution to this dataset?

I only found sources for fitting an univariate lognormal to data, but I didn't find anything for the multivariate case.

I would be happy if this was possible in MATLAB, however python or R would also be fine.

$\endgroup$
8
  • $\begingroup$ In this manuscript, the MLE is presented (pitifully, the notation is horrible and I could not find a better one). You can find other sorts of estimators in the following papers: (1), (2). $\endgroup$
    – user10525
    Jun 5, 2012 at 11:19
  • $\begingroup$ How do you define the multivariate lognormal? Is it lognormal componentwise? $\endgroup$ Jun 5, 2012 at 11:23
  • 1
    $\begingroup$ @Michael, $(X_1,\ldots,X_n)$ is multivariate lognormal if and only if $(\log(X_1),\ldots,\log(X_n))$ is multivariate normal. ptikobj: This gives you many ways to fit a distribution--just use your favorite method to fit a multivariate normal distribution to the logarithms of the observations. (You are in trouble if any of the observations actually equals zero, because that is inconsistent with the lognormal assumption.) $\endgroup$
    – whuber
    Jun 5, 2012 at 13:00
  • 1
    $\begingroup$ Is the restriction >= 0 or just > 0? You'll have a problem if you have a 0 in your dataset. $\endgroup$
    – jbowman
    Jun 5, 2012 at 13:02
  • $\begingroup$ @whuber Is it true that if you find a class of estimators for $(\mu,\Sigma)$ using the Gaussianised (taking log) variables, this correspond to the same class of estimators in the lognormal case? I was wondering specially about the entries of the correlation matrix. $\endgroup$
    – user10525
    Jun 5, 2012 at 13:18

1 Answer 1

3
$\begingroup$

It seems that based on the definition given by Bill Huber the multivariate lgonormal is given by taking a specified multivariate normal distribution $(Y_1,Y_2,...,Y_n)$ and then define the multivariate vector $(\exp(Y_1),\exp(Y_2),...,\exp(Y_n))$ as a multivariate lognormal. So as Bill Huber suggests you can use the $\ln$ of the vector that you observe to estimate the mean and covariance matrix of the multivariate normal (many choices for this) and that estimate defines the estimated multivariate lognormal.

$\endgroup$
4
  • $\begingroup$ Actually @whuber mentions that "unbiasedness might not be preserved" if I properly understand. In the link I posted you can see that even the MLE does not satisfy this. $\endgroup$
    – user10525
    Jun 5, 2012 at 14:27
  • $\begingroup$ @Procrastinator The question was how do I fit a multivariate lognormal. It did not ask about doing it preserving properties of the fit of the multivariate normal. One might actually use a James-Stein shrinkage estimator for the mean vector rather than the MLE for the mean because it has small mean square error. But nonlinear transformation like exp or ln will not preserve properties such as unbiasness. Also the idea is to fit the distribution not necessarily get the "best" parameter estimates. $\endgroup$ Jun 5, 2012 at 14:35
  • $\begingroup$ I am not sure if I am missing something obvious but transforming variables is something delicate. You can obtain the estimator of the parameters of the transformed variable and call it "estimator" of the parameters of the original variable but it does mean that it will have good properties. $\endgroup$
    – user10525
    Jun 5, 2012 at 15:08
  • $\begingroup$ @Procrastinator I am not arguing with you about the properties of estimators. I am just address the question of how to fit a multivariate lognormal. Of these various ways ,one would probably prefer to use the one that gives the best fit. Then we would be talking about the accuracy of the estimates of the lognormal parameters. $\endgroup$ Jun 5, 2012 at 15:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.