123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- function kappa = circ_kappa(alpha,w)
- %
- % kappa = circ_kappa(alpha,[w])
- % Computes an approximation to the ML estimate of the concentration
- % parameter kappa of the von Mises distribution.
- %
- % Input:
- % alpha angles in radians OR alpha is length resultant
- % [w number of incidences in case of binned angle data]
- %
- % Output:
- % kappa estimated value of kappa
- %
- % References:
- % Statistical analysis of circular data, Fisher, equation p. 88
- %
- % Circular Statistics Toolbox for Matlab
- % By Philipp Berens, 2009
- % berens@tuebingen.mpg.de - www.kyb.mpg.de/~berens/circStat.html
- alpha = alpha(:);
- if nargin<2
- % if no specific weighting has been specified
- % assume no binning has taken place
- w = ones(size(alpha));
- else
- if size(w,2) > size(w,1)
- w = w';
- end
- end
- N = length(alpha);
- if N>1
- R = circ_r(alpha,w);
- else
- R = alpha;
- end
- if R < 0.53
- kappa = 2*R + R^3 + 5*R^5/6;
- elseif R>=0.53 && R<0.85
- kappa = -.4 + 1.39*R + 0.43/(1-R);
- else
- kappa = 1/(R^3 - 4*R^2 + 3*R);
- end
- if N<15 && N>1
- if kappa < 2
- kappa = max(kappa-2*(N*kappa)^-1,0);
- else
- kappa = (N-1)^3*kappa/(N^3+N);
- end
- end
|