cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • New to JMP? Join us Sept. 23-24 for the Early User Edition of Discovery Summit, tailor-made for new users. Register now for free!
  • Use World Cup data to build models, explore spatial relationships, and create informative visualizations in JMP. Register. July 17, 2 pm US Eastern Time.
  • Your voice matters! Tell us how you prefer to receive JMP updates, so we can tailor our communication to your needs. Take short survey.

Discussions

Solve problems, and share tips and tricks with other JMP users.
Choose Language Hide Translation Bar
lisamaley
Level IV

Dunnett's for Multiple Ys

I am trying to get a script that will run Dunnett's on multiple Ys automatically in fit model, my issues:

 

If I change the multiple comparisons part where the factor and level is not a variable it works but only for the first Y, it will not repeat the Dunnett's part for the remaining Ys.   So my questions:

 

1.  Why doesn't this work like the fit model with a variable being used for the factor and control level for Dunnett's?

2.  Can we get Dunnett's for multiple Ys automatically?

 

Lisa

 

This is what I have so far:

Names Default To Here( 1 );

Clear Log();
lbwidth = 130;
Tolerance = .01;

If( Not( Is Scriptable( dt ) ), 

// Check that there is a data set open;
	//ca=Caption("Please Open Design Data Set", Back Color(yellow));
	//Stop();

	dtsel = Pick File( "Open File", {"JMP|jmp", "All files|*"} );
	If( dtsel == "",
		Stop(),
		Try( dt = Open( dtsel ), Stop() )
	);
);

Dia_Window = Expr(

// Window to get list of factors and response;
	Factorws = New Window( "Fit Model With Dunnetts",
		show toolbars( 0 ),
		Show Menu( 0 ),
		Border Box( Left( 3 ), top( 2 ),
			V List Box(
				H List Box(
					Panel Box( "Select Column to be used as the Factor and the Response(s)",
						colListData = Col List Box(
							All,
							width( lbWidth ),
							nLines( Min( nc, 10 ) )
						)

					), 

					Panel Box( "The Factor",
						Lineup Box( N Col( 2 ), Spacing( 3 ),
							Button Box( "Factor",
								colListW << Append( colListData << GetSelected )
							),
							colListW = Col List Box(
								width( lbWidth ),
								nLines( 1 ),
								MinItems( 1 )
							),

						)
					), 

					Panel Box( "The Response(s)",
						Lineup Box( N Col( 2 ), Spacing( 3 ),
							Button Box( "Response(s)",
								colListY << Append( colListData << GetSelected )
							),
							colListY = Col List Box(
								width( lbWidth ),
								nLines( 8 ),
								MinItems( 1 )
							),

						)
					), 

					Panel Box( "Action",
						Lineup Box( N Col( 1 ),
							Button Box( "OK",
								nm = colListW << GetItems;
								nY = colListY << GetItems;
								If( N Items( nm ) > 0,
									dm = dt << Get As Matrix( nm );
									Factorws << Close Window;
									Eval( next );
								);
							),
							Button Box( "Cancel",
								Factorws << Close Window;
								Stop();
							),
							Text Box( " " ),
							Button Box( "Remove",
								colListW << RemoveSelected;
								colListY << RemoveSelected;
							)
						)
					)
				),
				Text Box( "Written by Lisa Winland [email protected]" )
			)
		)
	)
);
next = Expr(
	Show( nm );
	colvalues = Associative Array( Column( nm ) ) << Get Keys;
	Show( colvalues );
	listvalues = {};
	Show( nY );
	nw = New Window( "User Input for Dunnett's",
		Outline Box( "Level Selection for Dunnett's",
			values = {};
			i = 1;
			For( i = 1, i <= N Items( colvalues ), i += 1,
				Values[i] = Char( colvalues[i] )
			);
			Show( Values );
			H List Box(
				Text Box( "Select Value for Control" ),
				listvalues = List Box( Values )
			);,
			Button Box( "OK",
				level = (listvalues << Get selected);
				nw << Close Window;
				Eval( fiteval );
				Show( level );
			)
		)
	);
);
Fiteval = Expr(
	Show( nm );
	Show( nY );
	Show( level );
	controllevel = (Char( nm ) || ":" || Char( level ));
	Show( controllevel );
	Fit Model(
		Y( Eval( nY ) ),
		Effects( Eval( nm ) ),
		Personality( "Standard Least Squares" ),
		Emphasis( "Minimal Report" ),
		Run(
			:Y << {Summary of Fit( 1 ), Analysis of Variance( 1 ), Parameter Estimates( 1 ),
			Lack of Fit( 0 ), Expanded  Estimates( 1 ), Show Prediction Expression( 1 ),
			Sorted Estimates( 1 ), Scaled Estimates( 0 ), Plot Actual by Predicted( 0 ),
			Plot Regression( 0 ), Plot Residual by Predicted( 0 ),
			Plot Studentized Residuals( 0 ), Plot Effect Leverage( 0 ),
			Plot Residual by Normal Quantiles( 0 ), Box Cox Y Transformation( 0 ), Show VIF( 1 ),
			Multiple Comparisons(
				Effect( Eval( nm ) ),
				Comparisons with Control(
					1,
					Control Level( Eval( Parse( controllevel ) ) ),
					Comparisons with Control Decision Chart(
						Control Differences Chart( 1, Point Options( "Show Needles" ) )
					)
				)
			)},
		)
	);
);

dt = Current Data Table();
nc = N Col( dt );
nr = N Row( dt );
Eval( Dia_Window );
12 REPLIES 12
ian_jmp
Level X

Re: Dunnett's for Multiple Ys

It looks like your dialog is returning things like:

level = {"12"}

a list, with a single item. Try adding:

level = level[1]

Re: Dunnett's for Multiple Ys

My example code does not use a list for x or level. So it would not work in a case where they are initialized with a list.

lisamaley
Level IV

Re: Dunnett's for Multiple Ys

So is there a way to get this to work?  Or is there not a work around?

 

Recommended Articles