cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Check out the JMP® Marketplace featured Capability Explorer add-in
Choose Language Hide Translation Bar
alan_ruttle
Level II

Setting EMS as default in Variability Chart analysis settings

Is there any way to choose EMS as default in Variability Chart analysis settings? JMP chooses best analysis (EMS or REML) but I need to replicate a legacy system which uses EMS only.

EMS.PNG

 

 

4 REPLIES 4
Jeff_Perkinson
Community Manager Community Manager

Re: Setting EMS as default in Variability Chart analysis settings

I'm sorry but I don't know any way to force the Variability Chart to use only EMS. If the data are balanced and no variance components are negative then you will get EMS. If your legacy system is reporting a 0 or negative variance component then it is not a reliable analysis.

 

From the Variance Components documentation for Variability Gauge Charts:

 

Choose best analysis (EMS, REML, or Bayesian)

Chooses the best analysis from EMS, REML, or Bayesian, using the following logic:

-

If the data are balanced, and if no variance components are negative, the EMS (expected mean squares) method is used to estimate the variance components.

-

If the data are unbalanced, the REML (restricted maximum likelihood) method is used, unless a variance component is estimated to be negative, then the Bayesian method is used.

-

If any variance component is estimated to be negative using the EMS method, the Bayesian method is used.

-

If there is confounding in the variance components, then the bounded REML method is used, and any negative variance component estimates are set to zero.

 

Choose best analysis (EMS or REML)

Chooses the best analysis from EMS or REML, using the same logic as the Choose best analysis (EMS, REML, or Bayesian) option. However, this option never uses the Bayesian method, even for negative variance components. The bounded REML method is used and any negative variance component is forced to be 0.

-Jeff
ian_jmp
Level X

Re: Setting EMS as default in Variability Chart analysis settings

Looks like JMP allows you to do:

NamesDefaultToHere(1);

dt = Open("$SAMPLE_DATA/Variability Data/2 Factors Crossed.jmp");
dt << Variability Chart(
				Y( :Measurement ),
				X( :Operator, :part# ),
				Model( "Crossed" ),
				Analysis Type( "Use EMS analysis" ),
				Variance Components( 1 )
			);
dt << Variability Chart(
				Y( :Measurement ),
				X( :Operator, :part# ),
				Model( "Crossed" ),
				Analysis Type( "Use REML analysis" ),
				Variance Components( 1 )
			);

The reports are indeed different, but please be aware that I did not check the details to see if they are correct.

ian_jmp
Level X

Re: Setting EMS as default in Variability Chart analysis settings

Unfortunately, my 'solution' above isn't, and may actually be misleading.

 

Although 'Analysis Type("Use REML analysis")' is a valid option within 'Variability Chart()', a thread with JMP R&D confirmed that 'Analysis Type( "Use EMS analysis")' is not a valid option, and is just silently ignored by JMP.

 

In this example, for the balanced data JMP picks EMS, but that's not because of the JSL.

 

Sorry for the red herring. 

 

 

 

ian_jmp
Level X

Re: Setting EMS as default in Variability Chart analysis settings

Perhaps not what you want, but if you are only interested in the numerics you can always use 'Fit Model' and force it to always use EMS:

NamesDefaultToHere(1);

// This sample data is balanced with 90 rows
dt = Open("$SAMPLE_DATA/Variability Data/2 Factors Crossed.jmp");

// Make it unbalanced by setting 10 measurements to missing (randomly) . . .
Column(dt, "Measurement")[J(10, 1, RandomInteger(NRow(dt)))] = .;

// 'Variability' platform will use REML to estimate the model
dt << Variability Chart(
				Y( :Measurement ),
				X( :Operator, :part# ),
				Model( "Crossed" ),
				Variance Components( 1 )
			);
			
// Replicate this analysis using 'Fit Model' . . .
dt << Fit Model(
			Y( :Measurement ),
			Effects,
			Random Effects( :Operator, :part#, :Operator * :part# ),
			NoBounds( 0 ),
			Personality( "Standard Least Squares" ),
			Emphasis( "Minimal Report" ),
			Run
		);

// Force 'Fit Model' to estimate using EMS rather than REML . . .
dt << Fit Model(
			Y( :Measurement ),
			Effects,
			Random Effects( :Operator, :part#, :Operator * :part# ),
			NoBounds( 0 ),
			Personality( "Standard Least Squares" ),
			Method( "EMS" ),
			Emphasis( "Minimal Report" ),
			Run
		);