normal distribution from data
    10 views (last 30 days)
  
       Show older comments
    
is there a more efficient way to derive a normal distribution.
%  Deriving Normal Distribution From the Data
  x=0:1:12;
  m=mean(Data);
  s=std(Data);
  p=(1/(s*sqrt(2*pi)))*exp((-(x-m).^2)/(2*s^2));
5 Comments
  Roger Stafford
      
      
 on 10 Sep 2013
				Image Analyst, it isn't 'x' that Harley is stating has the normal distribution. It is 'data' which isn't being specified here. The 'x' is the independent variable in the hypothesized normal distribution. A plot of
 plot(x,p)
would give the theoretical normal distribution pdf values as functions of x for the mean and std which have been computed from 'data'.
Accepted Answer
  Youssef  Khmou
      
 on 10 Sep 2013
        Here is another suggestion:
 y=pdf('Normal',x,m,s);
 plot(x,y);
2 Comments
  Image Analyst
      
      
 on 10 Sep 2013
				It's fewer characters, so it's simpler to look at, but I doubt it's faster or more efficient (since there is more than one line of code inside that function), but I doubt he really wanted/needed more efficiency or speed anyway.
  Youssef  Khmou
      
 on 11 Sep 2013
				Yes Mr @Image Analyst, the advantage i see is that this function gives a choice for other laws besides the Gaussian,
More Answers (2)
  Shashank Prasanna
    
 on 10 Sep 2013
        
      Edited: Shashank Prasanna
    
 on 10 Sep 2013
  
      Since this is normal distribution, the mean and std of the data are the maximum likelihood estimates for the normal distribution from the data.
Once you have the PDF, like you have in the last line of code as 'p', you could plot the PDF using x to span -4*sigma to +4*sigma:
x = -4*s:0.01:4*s
p=(1/(s*sqrt(2*pi)))*exp((-(x-m).^2)/(2*s^2));
plot(x,p)
You could use a wider range if you wanted to.
0 Comments
  Roger Stafford
      
      
 on 10 Sep 2013
        You might try the Statistics Toolbox function 'normplot' to see how closely your 'data' comes to a normal distribution.
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



