[p,q] = boundary(pd)
returns the boundary points between segments in pd, the
piecewise distribution. p is a vector of the cumulative
probabilities at the boundaries, and q is a vector of the
corresponding quantiles.
Generate a sample data set and create a paretotails object by fitting a piecewise distribution with Pareto tails to the generated data. Find the boundary points between segments in a paretotails object by using the object function boundary.
Generate a sample data set containing 20% outliers.
rng('default'); % For reproducibility
left_tail = -exprnd(1,100,1);
right_tail = exprnd(5,100,1);
center = randn(800,1);
x = [left_tail;center;right_tail];
Create a paretotails object by fitting a piecewise distribution to x. Specify the boundaries of the tails using the lower and upper tail cumulative probabilities so that a fitted object consists of the empirical distribution for the middle 80% of the data set and generalized Pareto distributions (GPDs) for the lower and upper 10% of the data set.
pd = paretotails(x,0.1,0.9)
pd =
Piecewise distribution with 3 segments
-Inf < x < -1.33251 (0 < p < 0.1): lower tail, GPD(-0.0063504,0.567017)
-1.33251 < x < 1.80149 (0.1 < p < 0.9): interpolated empirical cdf
1.80149 < x < Inf (0.9 < p < 1): upper tail, GPD(0.24874,3.00974)
Return the boundary values between the piecewise segments by using the boundary function.
[p,q] = boundary(pd)
p = 2×1
0.1000
0.9000
q = 2×1
-1.3325
1.8015
The values in p are the cumulative probabilities at the boundaries, and the values in q are the corresponding quantiles.
Plot the cdf of the paretotails object and mark the boundary points on the figure.
xi = sort(x);
plot(xi,cdf(pd,xi))
hold on
plot(q,p,'ro')
legend('Pareto Tails Object','Boundary Points','Location','best')
hold off
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.