cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Choose Language Hide Translation Bar
JohannD
Level II

Automate Outlier identification with Bonferroni Limits

Dear all,

 

I have a question about the Bonferroni limits. My goal is to develop a data evaluation process in which outliers can be detected using the Bonferroni Limits. My data set consists of release tests, to which additional data are added at regular intervals. Of course, I could also use the Stud. Residual Plot of the Fit Model Platform, but I would like to automate the outlier detection via Bonferroni Limits and not have to do it manually using the plot. Is there a way to extract the values of the Bonferroni Limits of the Stud. Residual Plots? A little Script would here also work for me. I had already discussed this with @Jonas_Rinne  and he recommended to me to adress this question here in the community.

 

Thanks it advance!

 

Best Johann

 

 

 

1 ACCEPTED SOLUTION

Accepted Solutions

Re: Automate Outlier identification with Bonferroni Limits

Please use this example that illustrates how to access the value used to plot the line for the Bonferroni limits.

 

Names Default To Here( 1 );

// example
dt = Open( "$SAMPLE_DATA/Tiretread.jmp" );

// fit least squares with studentized residuals
obj = dt << Fit Model(
	Y( :ABRASION ),
	Effects( :SILICA, :SILANE, :SULFUR ),
	Personality( "Standard Least Squares" ),
	Emphasis( "Minimal Report" ),
	Run(
		:ABRASION << {Summary of Fit( 1 ), Analysis of Variance( 1 ),
		Parameter Estimates( 1 ), Scaled Estimates( 0 ),
		Plot Actual by Predicted( 0 ), Plot Regression( 0 ),
		Plot Residual by Predicted( 0 ), Plot Studentized Residuals( 1 ),
		Plot Effect Leverage( 1 ), Plot Residual by Normal Quantiles( 0 ),
		Box Cox Y Transformation( 0 )}
	)
);

// access report layer
rpt = obj << Report;

// access plot frame
frame = rpt["Studentized Residuals"][FrameBox(1)];

// access line segments in plot frame
line = frame << Find Segs;

// ask for value of line representing Bonferroni limits (only positive necessary)
bonferroni = (line[2] << Get Y Values)[1];

// display limit in Log
Show( bonferroni );

View solution in original post

2 REPLIES 2

Re: Automate Outlier identification with Bonferroni Limits

Please use this example that illustrates how to access the value used to plot the line for the Bonferroni limits.

 

Names Default To Here( 1 );

// example
dt = Open( "$SAMPLE_DATA/Tiretread.jmp" );

// fit least squares with studentized residuals
obj = dt << Fit Model(
	Y( :ABRASION ),
	Effects( :SILICA, :SILANE, :SULFUR ),
	Personality( "Standard Least Squares" ),
	Emphasis( "Minimal Report" ),
	Run(
		:ABRASION << {Summary of Fit( 1 ), Analysis of Variance( 1 ),
		Parameter Estimates( 1 ), Scaled Estimates( 0 ),
		Plot Actual by Predicted( 0 ), Plot Regression( 0 ),
		Plot Residual by Predicted( 0 ), Plot Studentized Residuals( 1 ),
		Plot Effect Leverage( 1 ), Plot Residual by Normal Quantiles( 0 ),
		Box Cox Y Transformation( 0 )}
	)
);

// access report layer
rpt = obj << Report;

// access plot frame
frame = rpt["Studentized Residuals"][FrameBox(1)];

// access line segments in plot frame
line = frame << Find Segs;

// ask for value of line representing Bonferroni limits (only positive necessary)
bonferroni = (line[2] << Get Y Values)[1];

// display limit in Log
Show( bonferroni );
JohannD
Level II

Re: Automate Outlier identification with Bonferroni Limits

Thanks so much for the solution, for me the script works perfectly!

 

Best Johann