Just a simple addendum to @Thomas1 response. If you have severe outlier, the Col Std Dev can be pretty large and can bias the mean.
An alternative is to use the median + k* pseudo sigma for the upper screening limit and median - k* pseudo sigma fro the lower screening limit.
Here is a the column fomula for a column named weight. For raw data, sometimes quantiles 0.85 and 0.15 are used to compute the pseudo sigma with 6 as the multiplier for ps.
Local( {ps},
ps = (Col Quantile( :weight, 0.75 ) - Col Quantile( :weight, 0.25 )) / 1.349;
If(
:weight > Col Quantile( :weight, 0.5 ) + 5 * ps, 1,
:weight < Col Quantile( :weight, 0.5 ) - 5 * ps, -1,
0
);
)
If you are scripting, the Distribution platform computes a Robust Mean and Robust Std Dev. Here is a simple script to get these values.
Names Default To Here(1);
dt = Open( "$sample_data/Big class.jmp");
dist = dt << Distribution(
Continuous Distribution(
Column( :height ),
Quantiles( 0 ),
Horizontal Layout( 1 ),
Histogram( 0 ),
Vertical( 0 ),
Outlier Box Plot( 0 ),
Customize Summary Statistics(
Trimmed Mean( 1 ),
Robust Mean( 1 ),
Robust Std Dev( 1 ),
Set Alpha Level( 0.05 )
)
)
);
snames = report(dist)["Summary Statistics"][TableBox(1)][StringColBox(1)] << get;
svalues= report(dist)["Summary Statistics"][TableBox(1)][NumberColBox(1)] << get;
stats = Associative Array(snames, svalues); //cretea a keyed list
r_xb = stats["Robust Mean"];
r_sd = stats["Robust Standard Deviation"];
show(r_xb, r_sd);
//now use r_xb + <4|5|6> * r_sd and r_xb - <4|5|6> * r_sd for screening limits