MATLAB: Difference between third moment, skewness and E(x^3)

skewness moment expectation pearson distribution

Can someone please explain why there is such a difference between skewness, the third moment and E(x^3), as in the following code:
mu = 0;
sigma = 1;
skew = 3;
kurt = 15;
r = pearsrnd(mu, sigma, skew, kurt, 10000, 1);
moment(r,3)
skewness(r)
mean(r.^3)
I know that the moment function computes a central moment, which is why I set mu to zero. Similarly skewness computes a standardized moment, which is why I set sigma to one. Under these circumstances, they should be the same, no?
The difference between the third moment and the expectation of the r cubed is acceptable, but the skewness varies much more, in some cases considerably.

Best Answer

The output is within expected sample error of these statistics (assuming you are seeing roughly the same output as I am).
This is explicitly noted in the documentation for pearsrnd:
" Note: Because r is a random sample, its sample moments, especially the skewness and kurtosis, typically differ somewhat from the specified distribution moments. pearsrnd uses the definition of kurtosis for which a normal distribution has a kurtosis of 3. Some definitions of kurtosis subtract 3, so that a normal distribution has a kurtosis of 0. The pearsrnd function does not use this convention."
Try cranking up your number of trials, and you'll see that they converge:
mu = 0;
sigma = 1;
skew = 3;
kurt = 15;
rng 'default'
NT = 10000000;
r = pearsrnd(mu, sigma, skew, kurt, NT, 1);
moment(r,3)
skewness(r)
mean(r.^3)
gives output
ans =
3.0077
ans =
3.0047
ans =
3.0075