I am confused by your question.
I am not sure if you are dealing with measurement errors, outliers, or truly a mix of two distributions. For multivariate data, cluster distance, Mahalanobis distances, etc. are used. For a single variable, I'd look at mixtures.
If you are looking at the negative values as outliers you can compute a tolerance interval, 95% Confidence of 95% coverage or something to that effect. Or
For a single variable that is a mix of 2 distributions and if the mix of data is somewhat smooth, you might try fitting a Normal Mixture of 2.
Below is an example of using one variable Petal length from the Iris sample data table. I chose to fit a Normal Mixture with 3 groups since I know there are 3 species. I chose this beacuse it displays the centers (means), confidence intervals for the mean, dispersion and what portion of the data is estimated to belong to each group. Having the mean and dispersion you could compute a zscore/probability of belonging to each group.
Names Default to Here(1);
dt = Open("$Sample_data/Iris.jmp");
dist = dt << Distribution(
Continuous Distribution(
Column( :Petal length ),
Horizontal Layout( 1 ),
Vertical( 0 ),
Fit Distribution(
Normal Mixtures(
Diagnostic Plot( Median Reference Line( 0 ) ),
Clusters( 3 )
)
),
Customize Summary Statistics(
Robust Mean( 1 ),
Robust Std Dev( 1 ),
Set Alpha Level( 0.05 )
)
)
);
Otherwise, you need to clarify your request.