I'd like to generate a multivariate continuous data which is globular cloud, like multivariate standard normal data is, but which is more platykurtic than normal data.

There are many ways to get platykurtic data (e.g. from beta distribution) but the more platykurtic they are the more they are rectangular shape in multivariate space. But I want globular, hyperspherical random data. Unimodal data. Preferably from not bounded distribution, if possible. And with an option to vary the amount of flat kurtosis.

Can you suggest a distribution or a trick to generate?

P.S. Saying "hyperspherical" I mean "any dimensionality" (not "high dimensionality"). That is, I imply 2D case to be just particular case; I'm interested in it as well.

  • $\begingroup$ "Platykurtic" could mean many things for multivariate data. Are you perhaps referring to just the marginal distributions? If so, would it matter if they became multimodal? $\endgroup$ – whuber Dec 17 '13 at 16:20
  • $\begingroup$ No. Bell-shaped, unimodal like normal, only with more flat middle and light tails, than normal. Density function should be identical in all space directions from the centroid, again like with i.i.d. multivariate normal. So, I'm not speaking of just marginal distributions. (One way would be to generate each value from any univariate, 0-symmetric, platykurtic distribution I might like, and than to add a random angular swing to it in multidimensional space. But I would be happy to collect advices first.) $\endgroup$ – ttnphns Dec 17 '13 at 16:51
  • 1
    $\begingroup$ For a spherically symmetric distribution you are speaking of just the marginals since they are all the same. When you rotate a distribution as you describe, note that the marginal will not be the same as the radial distribution. For instance, the radial distribution for the multivariate Normal is Gamma. Nevertheless, that approach of prescribing the distribution in spherical coordinates will work when you choose a suitable radial distribution to begin with--but you don't want it to have a mode at zero. $\endgroup$ – whuber Dec 17 '13 at 17:34
  • $\begingroup$ I'm really thankful for you comment. I thought it might be a good idea to expand it and make an answer. In particular, can you point me to where I could learn more about a connection between the marginal distribution and the corresponding radial distribution, in a multivariate spherically symmetric distribution such as normal? Also, I didn't understand your words you don't want it to have a mode at zero. $\endgroup$ – ttnphns Dec 17 '13 at 18:33
  • $\begingroup$ More clarification is needed to answer your question. I get the sense from your responses below that you are specifically interested in identifying a function which, when applied to normally-distributed data, yields platykurtotic data. This is an interesting question, but I'm wondering if you have considered (or ruled out) more direct ways, such as using the inverse transformation method using uniformly distributed data and the quantile function of a platykurtotic random variable. $\endgroup$ – ahfoss Dec 22 '13 at 2:41

Although this is obviously related to my previous answer, I think it's different enough to be considered separately. Given a point in an $n$-dimensional cloud of iid standard normals, shrink it radially a chosen proportion of the way to the corresponding fractile of a uniform distribution in the unit-radius $n$-ball.

For iid standard normals in $n$ dimensions, the distance from the origin has a $\chi_n$ distribution. Let $F_n(d)$ denote its cdf. For a uniform distribution in the unit-radius $n$-ball, the cdf of the distance from the origin is $d^n$, and the inverse cdf is $p^{1/n}$. So multiply each point's coordinate vector by $1 + \alpha(F_n(d)^{1/n}/d - 1)$, where $\alpha$ is the chosen proportion and $d$ is the observed distance of the point from the origin.

EDIT -- A minor improvement, that makes the results easier to interpret: Scale the ball so that the mean square distance of the points from the origin is the same as the normal, $n$. The corresponding multiplier on the vector of normals is $1 + \alpha\,(F_n(d)^{1/n}\sqrt{n+2}\,/d - 1)$.

I have no proof that the marginal distribution is unimodal, but I have looked at histograms of marginal distributions with $\alpha = 0, .05, \ldots, 1$ for $n = 1, \ldots, 10$, and they all look as they should, varying smoothly from $\mathrm{N}(0,1)$ to a shifted and scaled $\mathrm{Beta}(\frac{n+1}{2},\frac{n+1}{2})$. For $n = 2$ I have also looked at scatter plots with the same set of $\alpha$-values, and they too look as they should, with no "bald spot" in the middle.

Here is Mathematica code whose results are organized to facilitate exploring the effect of $\alpha$.

{m, n} = { sample size, # of dimensions };
z = RandomReal[NormalDistribution[], {m, n}];
y = z * With[{dd = Total[z^2, {2}]},
    CDF[ChiSquareDistribution[n], dd]^(1/n) * Sqrt[(n + 2)/dd]];

Then x = alpha*y + (1-alpha)*z will be a matrix that varies smoothly with alpha between iid normal (alpha = 0; pure z) and a uniform n-ball (alpha = 1; pure y). Here are scatter plots of 5000 points in 2 dimensions for alpha = {0, .25, .50, .75, 1}.

enter image description here

| cite | improve this answer | |
  • 2
    $\begingroup$ This answer suffers from the same deficiency as your previous one: it is speculative because it does not demonstrate that the resulting marginal distribution will be unimodal. $\endgroup$ – whuber Dec 21 '13 at 21:43
  • 2
    $\begingroup$ Re the edits: Thank you for gathering and sharing evidence that your proposal will work as intended (+1). $\endgroup$ – whuber Dec 23 '13 at 22:08
  • 1
    $\begingroup$ Ray, I liked your this solution a lot and I feel satisfied. In addition to your testing marginal distributions, I tested the resulting radial distribution (by that term, I mean the distribution along the randomly spinning beam from the origin of the cloud) for 2D, 3d, 4D data. With alpha=1, that distribution was indeed uniform. I found no bimodality for alpha between 0 and 1. $\endgroup$ – ttnphns Dec 27 '13 at 13:48

For a cloud of i.i.d. standard normals, try shrinking the points toward the origin logarithmically. That is, multiply the coordinates of each point by $\log(1+\alpha\, d)/(\alpha\, d)$, where $d$ is the distance of the point from the origin, and $\alpha$ controls the amount of shrinkage, with larger values shrinking more.

| cite | improve this answer | |
  • 1
    $\begingroup$ That looks like an easy and neat solution. I expect that this or similar approach - to draw in a tail proportionally to the deviation from the origin - may suit me. One question: Why are you suggesting specifically logarithming? Do you thing square root, for example, is worse? $\endgroup$ – ttnphns Dec 18 '13 at 7:45
  • $\begingroup$ No special reason. I also considered multiplying by $\mathrm{arcsinh}(\alpha\,d)/(\alpha\,d)$, but something based on the square (or some other) root might do just as well. $\endgroup$ – Ray Koopman Dec 18 '13 at 9:14
  • $\begingroup$ The square root (that is, $\sqrt{d}/d$) will not work: it produces a bimodal marginal distribution. Thus there are special reasons to use the logarithm. $\endgroup$ – whuber Dec 18 '13 at 16:54
  • $\begingroup$ I should add that I required the multiplier to approach $1$ as $d$ approaches $0$. $\endgroup$ – Ray Koopman Dec 18 '13 at 17:50
  • 1
    $\begingroup$ Thanks. I mentioned three dimensions because you used "hyperspherical" in the question, suggesting little or no interest in one or two dimensions. In both one and two dimensions the marginal is indeed bimodal. In higher dimensions you won't have problems with Ray's formula. Once again it is clear that this answer really needs some analysis to show (a) that it can work and (b) under which circumstances it does work. $\endgroup$ – whuber Dec 20 '13 at 14:27

You might look into the generalized normal distribution, a generalization of the normal distribution that introduces a parameter that controls the kurtosis. It includes as special cases the laplace, normal, and uniform distributions. There appears to be a citation on the wikipedia page that discusses the multivariate generalized normal distribution. Just a note of caution -- there is at least one other distribution called the "generalized normal" distribution; the alternate one I am thinking of involves parametric control of skewness, not kurtosis, so make sure you are reading about the "correct" generalized normal distribution!

| cite | improve this answer | |
  • $\begingroup$ Yes, thanks. I've already known about that possibility. But there remains practical question about how to easily generate that sort of data (i.e without some advanced software). Let me put a specific question in front of you. You have 3-variate standard normal data (or function generating it). Can you suggest a way to transform it into generalized normal platykurtic data? $\endgroup$ – ttnphns Dec 20 '13 at 13:30
  • $\begingroup$ It would be helpful if you could provide some context here. Specifically, what do you mean by "easily generate." You can generate data which (I think) satisfies your criteria with a one-liner in R after installing the pgnorm package: pgnorm::rpgnorm(n=1000,p=4). Is part of your requirement that you cannot use R? I'm also confused about why you need to start with multivariate normal data, as opposed to just generating platykurtotic data directly. $\endgroup$ – ahfoss Dec 22 '13 at 2:19
  • $\begingroup$ I'm not R user, I'm SPSS user. As far as I remember SPSS has no random number functions for generalized normal distributions. So, if to follow your interesting suggestion, I'll have to code such generative function myself. If you know the algorithm please forward me to it. I don't insist to start with multivariate normal, I just feel it might be a convenient way: please remember that I need strictly spherical cloud (multivariate uniform - an utmost platykurtic generalized normal - isn't spherical!) $\endgroup$ – ttnphns Dec 22 '13 at 3:31
  • $\begingroup$ Note that when $2 < p < \infty$ the generalized normal distribution is platykurtotic, and has infinite tails. The uniform distribution only arises in the limiting case when $p \rightarrow \infty$. There are five methods for generating generalized normal but I think they are more complex than you are looking for. They are described in this paper: S. Kalke and W.-D. Richter."Simulation of the p-generalized Gaussian distribution." Journal of Statistical Computation and Simulation. $\endgroup$ – ahfoss Dec 22 '13 at 15:11

The Johnson $S_U$ distribution (see citation below) has infinite tails and can be platykurtotic based on your parameter choices. It is easily generated from normally distributed data as follows:

$$ Z = \gamma + \delta \; \text{sinh}^{-1} \left(\frac{X-\xi}{\lambda} \right) $$

where $X \sim N(0,1)$. You probably just want to set $\gamma=\xi=0$ and $\lambda=1$. The parameter $\delta$ controls kurtosis, with higher values resulting in smaller kurtosis.

Here is a contour plot (with R code) showing the bivariate density of independent $S_U$ variables:


parms = list(gamma=0,delta=2,xi=0,lambda=2,type='SU')
coords = seq(-3,3,0.01)
zz = outer(
    FUN=function(x,y) c(dJohnson(x,parms)*dJohnson(y,parms))

Bivariate Density of Independent Johnson's $S_U$ Variables

The shape of the distribution is a bit more clear if we look at univariate densities:


Univariate Density of Johnson's $S_U$

Note that $\xi$ is the location parameter, meaning that it shifts the distribution left and right leaving variance, skewness, and kurtosis unchanged. $\lambda$ is the scale parameter, meaning that it changes the variance but leaves mean, skewness, and kurtosis unchanged. $\gamma$ changes skewness and $\delta$ changes kurtosis, but they affect lower moments as well.

For example, we can calculate theoretical variance and kurtosis in R when $\gamma=0,\xi=0,\delta=1,\lambda=1$:

lam1 = sJohnson(list(gamma=0,delta=1,xi=0,lambda=1,type='SU'))
##[1] 3.194528
##[1] 33.18813

Note that if we change $\lambda$ to 2 and hold the other parameters constant variance changes but kurtosis remains the same:

lam2 = sJohnson(list(gamma=0,delta=1,xi=0,lambda=2,type='SU'))
##[1] 12.77811
##[1] 33.18813

Note that if we then change $\delta$ to 2 and hold the other parameters constant (keep $\lambda=2$), both variance and kurtosis change:

del2lam2 = sJohnson(list(gamma=0,delta=2,xi=0,lambda=2,type='SU'))
##[1] 1.297443
##[1] 1.507862

Citation: Johnson NL (1949). Systems of Frequency Curves Generated by Methods of Translation. Biometrika 36(1/2), 149-176. See in particular equation 21.

| cite | improve this answer | |
  • $\begingroup$ I haven't heard of Johnson's modification formulas. So thank you much. Your answer, however is mistaken and doesn't suit my needs so far. The mistake (probably a lapse) is that it is in fact lambda, not delta, parameter which regulate flatness. And the approach can't suit because the modification doesn't preserve multivariate sphericity. As Ray Koopman commented to his answer, arsinh() might be used perhaps, but that should take d (not X) as argument. $\endgroup$ – ttnphns Dec 23 '13 at 12:21
  • $\begingroup$ Take a look at the paper I cited and you'll see that my formula is correct, specifically with regard to $X$ being the appropriate argument. If by multivariate sphericity you mean spherical contour lines of the multivariate density, Johnson's $S_U$ distribution satisfies this. I'll post a few densities in my answer as proof. I'm also editing my post to show the appropriate way to parametrize changes in kurtosis. $\endgroup$ – ahfoss Dec 23 '13 at 16:42
  • $\begingroup$ Actually, after adding moment calculations and density plots to my answer above, I've tested the R functions in question and the output seems questionable, specifically with regard to whether $\lambda$ or $\delta$ controls kurtosis. In calls to sJohnson (moment calculations), delta controls kurtosis, but in calls to dJohnson (density function), it appears that lambda controls kurtosis... this is worth a separate cross validated thread. Until this is resolved, my answer above should be read with caution since it assumes the functions are correct. $\endgroup$ – ahfoss Dec 23 '13 at 17:44
  • $\begingroup$ Of course not delta, but lambda. Delta is about variance, it is obvious from the formula. $\endgroup$ – ttnphns Dec 23 '13 at 17:50
  • $\begingroup$ Hmm... I agree with you that it seems that $\delta$ should be the scale factor, but I'm hesitant to write off the authors of the SuppDists package so easily, let alone Johnson himself: $\endgroup$ – ahfoss Dec 23 '13 at 18:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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