cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
The Discovery Summit 2025 Call for Content is open! Submit an abstract today to present at our premier analytics conference.
See how to use JMP Live to centralize and share reports within groups. Webinar with Q&A April 4, 2pm ET.
Choose Language Hide Translation Bar
View Original Published Thread

Scripting Equivalence Test: Equivalence Test function not evaluating variance type from a list

Abby_Collins14
Level III

Hello! 

 

Attached is a script that is automating equivalence testing in JMP on the example Auto Raw Data set (both script and data attached). My issue is line 27 of my script where I am specifying the variance type in the Equivalence test function. The equivalence test function is: 

 

tostv = {"Pooled Variance", "Unequal Variances"};ksd = {12,275};Equivalence Tests(
		ksd[i], 
		0.05,
		tostv[i], // ***need to fix
		"Equivalence",
		With Control( "Young" )
	)

However the tostv[i] is not getting evaluated properly, it is being ignored and the default pooled variance is being used. I assume I need some type of combination of eval functions but I cannot get it to work. See attached data and script. Thanks for any help!

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
txnelson
Super User


Re: Scripting Equivalence Test: Equivalence Test function not evaluating variance type from a list

Below is a version of the script that will correctly handle the tostv list.  However, there is a logic problem with your "i" variable.  In your script, you are looping through your For loop 4 times, incrementing i by one each time, however you only have 2 levels of your tostv list.

 

Here is the code

Names Default To Here( 1 );

tostv = {"Pooled Variance", "Unequal Variances"};
ksd = {12, 275};

dt = Current Data Table();
cnames = dt << Get Column Names( string );
n = N Items( cnames );
i = 0;
anova = Fit Group(
	For( colnum = 4, colnum <= n, colnum++,
		i = i + 1;
		Eval(
			Eval Expr(
				Oneway(
					Y( Column( colnum ) ),
					X( :AgeClass ),
					All Pairs( 1 ),
					Means( 1 ),
					t Test( 1 ),
					Unequal Variances( 1 ),
					Std Dev Lines( 0 ),
					Mean Diamonds( 1 ),
					Connect Means( 1 ),
					Equivalence Tests(
						ksd[i],
						0.05,
						Expr( tostv[i] ),  //***need to fix to eval tostv
						"Equivalence",
						With Control( "Young" )
					),
					SendToReport(
						Dispatch( {}, "1", ScaleBox, {Minor Ticks( 0 )} ),
						Dispatch( {}, "Oneway Plot", FrameBox, ),
						Dispatch( {}, "Oneway Means Compare", FrameBox, ),
						Dispatch( {"Oneway Anova"}, "Summary of Fit", OutlineBox, {Close( 1 )} ),
						Dispatch( {"Oneway Anova"}, "Analysis of Variance", OutlineBox, {Close( 1 )} ),
						Dispatch( {"Oneway Anova"}, "Means for Oneway Anova", OutlineBox, {Close( 1 )} ),
						Dispatch( {}, "t Test", OutlineBox, {Close( 1 )} ),
						Dispatch( {}, "Means Comparisons", OutlineBox, {Close( 1 )} )
					)
				)
			)
		);
	)
);
Jim

View solution in original post

2 REPLIES 2
txnelson
Super User


Re: Scripting Equivalence Test: Equivalence Test function not evaluating variance type from a list

Below is a version of the script that will correctly handle the tostv list.  However, there is a logic problem with your "i" variable.  In your script, you are looping through your For loop 4 times, incrementing i by one each time, however you only have 2 levels of your tostv list.

 

Here is the code

Names Default To Here( 1 );

tostv = {"Pooled Variance", "Unequal Variances"};
ksd = {12, 275};

dt = Current Data Table();
cnames = dt << Get Column Names( string );
n = N Items( cnames );
i = 0;
anova = Fit Group(
	For( colnum = 4, colnum <= n, colnum++,
		i = i + 1;
		Eval(
			Eval Expr(
				Oneway(
					Y( Column( colnum ) ),
					X( :AgeClass ),
					All Pairs( 1 ),
					Means( 1 ),
					t Test( 1 ),
					Unequal Variances( 1 ),
					Std Dev Lines( 0 ),
					Mean Diamonds( 1 ),
					Connect Means( 1 ),
					Equivalence Tests(
						ksd[i],
						0.05,
						Expr( tostv[i] ),  //***need to fix to eval tostv
						"Equivalence",
						With Control( "Young" )
					),
					SendToReport(
						Dispatch( {}, "1", ScaleBox, {Minor Ticks( 0 )} ),
						Dispatch( {}, "Oneway Plot", FrameBox, ),
						Dispatch( {}, "Oneway Means Compare", FrameBox, ),
						Dispatch( {"Oneway Anova"}, "Summary of Fit", OutlineBox, {Close( 1 )} ),
						Dispatch( {"Oneway Anova"}, "Analysis of Variance", OutlineBox, {Close( 1 )} ),
						Dispatch( {"Oneway Anova"}, "Means for Oneway Anova", OutlineBox, {Close( 1 )} ),
						Dispatch( {}, "t Test", OutlineBox, {Close( 1 )} ),
						Dispatch( {}, "Means Comparisons", OutlineBox, {Close( 1 )} )
					)
				)
			)
		);
	)
);
Jim
Abby_Collins14
Level III


Re: Scripting Equivalence Test: Equivalence Test function not evaluating variance type from a list

Thanks so much Jim! And thanks for the catching the i logic issue- my original data set had a tostv list of 4 levels opposed the to 2 in this example. 

 

I greatly appreciate your help with the eval functions!