Would you tell me the code for Fisher Pearson skewness?
    6 views (last 30 days)
  
       Show older comments
    
Would you tell me the code for Fisher Pearson skewness?
How can I get the skewness with Fisher Pearson formula..?
0 Comments
Accepted Answer
  David Goodmanson
      
      
 on 21 Sep 2022
        
      Edited: David Goodmanson
      
      
 on 21 Sep 2022
  
      Hi Chris,
y = rand(1,100);   % some data
m = mean(y);
n = numel(y);
scalc = (sum((y-m).^3)/n)/var(y,1)^(3/2)
s = skewness(y)
scalc agrees with Matlab's skewness function.
You have to be careful using the variance here (or the standard deviation).  The var default is
sum((y-m)^2)/(n-1)
but for variance as used in Matlab's skewness function, you divide by n instead of (n-1).  That means using var(y,1) rather than the default var(y).  Same idea for std if that were used. 
0 Comments
More Answers (1)
  Walter Roberson
      
      
 on 20 Sep 2022
        FPskewness = sum(x - mean(x)) / numel(x) / std(x).^3
You would need to be more rigourous if you wanted to handle non-vectors.
5 Comments
  John D'Errico
      
      
 on 21 Sep 2022
				Jeff is correct. Skewness would be a scaled (normalized) 3rd central moment, so there MUST be a cube in there.
  Sim
      
 on 27 Nov 2023
				Hi, what should be changed, in the @Walter Roberson formula, to make it correct? I do not understand...
y = rand(1,100);   % some data
m = mean(y);
n = numel(y);
s          = skewness(y) % matlab embedded function
scalc      = (sum((y - m).^3) / numel(y)) / var(y,1)^(3/2) % David Goodmanson solution
FPskewness = sum(y - mean(y)) / numel(y)  / std(y).^3 % Walter Roberson solution
See Also
Categories
				Find more on Creating and Concatenating Matrices in Help Center and File Exchange
			
	Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!