Number of segments in piecewise distribution
Generate a sample data set and fit a piecewise distribution with a Pareto tail to the data by using
paretotails. Find the number of segments in the fitted distribution by using the object function
Generate a sample data set containing 10% outliers in the right tail.
rng('default'); % For reproducibility right_tail = exprnd(5,100,1); center = randn(900,1); x = [center;right_tail];
paretotails object by fitting a piecewise distribution to
x. Specify the boundaries of the tails using the lower and upper tail cumulative probabilities. Pass in 0 and 0.9 so that a fitted object does not contain a lower tail segment, and consists of the empirical distribution for the lower 90% of the data set and a generalized Pareto distribution (GPD) for the upper 10% of the data set.
pd = paretotails(x,0,0.9)
pd = Piecewise distribution with 2 segments -Inf < x < 1.73931 (0 < p < 0.9): interpolated empirical cdf 1.73931 < x < Inf (0.9 < p < 1): upper tail, GPD(0.643752,1.62246)
Return the number of segments in
pd by using the
n = nsegments(pd)
n = 2
You can also get the number of segments by using the
NumSegments property. Access the
NumSegments property by using dot notation.
ans = 2