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.
Choose Language Hide Translation Bar
View Original Published Thread

Compare means test: graph probability by difference in means

ih
Super User (Alumni) ih
Super User (Alumni)

Is there an interactive method in JMP to determine whether the means of two populations differ by at least a certain amount, or more generally to graph a p value or probability by the minimum difference in means?

 

Example: in the big class data set, show the likelihood that females are shorter than meals by at least X, similar to the table and chart below.

 

ih_0-1632240007194.png

This may or may not be the best way to quantify this, but here is a script to create the above table:

 

View more...
Names default to here(1);

dt = Open("$Sample_data/Big Class.jmp");

// Column to adjust the difference in means between levels
nc = dt << New Column("height differenced", Numeric, "Continuous", Format("Best", 12), Formula(Parameter({b0 = 5}, If(:sex == "F", :height + b0, :height))));

distances = index(-2,7,incr=.5);
pvalless = {};
pvalmore = {};
for(d=1, d<= n items(distances), d++,
	dist = distances[d];
	Eval( Eval Expr( nc << Set Formula( Parameter({b0 = expr( dist ) }, If(:sex == "F", :height + b0, :height))) ) );
	ow = dt << Oneway(
		Y( nc ),
		X( :sex ),
		Means( 1 ),
		t Test( 1 ),
		Mean Diamonds( 1 ),
		SendToReport( Dispatch( {}, "t Test", OutlineBox, {Close( 1 )} ) )
	);
	
	//Extract the prob
	pvalless[d] = ((ow << XPath("//OutlineBox[text()='Pooled t Test']"))[1][NumberColBox(4)] << get as matrix)[2];
	pvalmore[d] = ((ow << XPath("//OutlineBox[text()='Pooled t Test']"))[1][NumberColBox(4)] << get as matrix)[3];
	
	ow << close window;
);


dtSum = New Table( "Results",
	Add Rows( n items(distances) ),
	New Column( "Distance",
		Numeric,
		"Continuous",
		Format( "Best", 12 ),
		Set Values( distances )
	),
	New Column( "pvalueless",
		Numeric,
		"Continuous",
		Format( "Best", 12 ),
		Set Values( pvalless )
	),
	New Column( "pvaluemore",
		Numeric,
		"Continuous",
		Format( "Best", 12 ),
		Set Values( pvalmore )
	)
);

gb = dtSum << Graph Builder(
	Size( 876, 379 ),
	Show Control Panel( 0 ),
	Variables( X( :Distance ), Y( :pvalueless ) ),
	Elements( Points( X, Y, Legend( 3 ) ), Line( X, Y, Legend( 5 ) ) ),
	SendToReport(
		Dispatch(
			{},
			"pvalueless",
			ScaleBox,
			{Add Ref Line( 0.05, "Solid", "Black", ".05", 1 )}
		),
		Dispatch(
			{},
			"400",
			ScaleBox,
			{Legend Model( 3, Base( -1, 0, 0, Item ID( "pvaluemore", 1 ) ) )}
		),
		Dispatch(
			{},
			"graph title",
			TextEditBox,
			{Set Text(
				"Likelihood of average heights of females being shorter than males by different amounts"
			)}
		),
		Dispatch(
			{},
			"X title",
			TextEditBox,
			{Set Text( "Minimum Distance Between Average Heights" )}
		),
		Dispatch( {}, "Y title", TextEditBox, {Set Text( "p value" )} ),
		Dispatch(
			{},
			"Graph Builder",
			FrameBox,
			{Add Line Annotation(
				Line( {233, 222}, {277, 286} ),
				Color( "Magenta" ),
				Thick( 1 ),
				Point to( 1 )
			), Add Text Annotation(
				Text(
					"6% chance that females are not 1 or more inches shorter than males"
				),
				Fixed Size( 0 ),
				Text Box( {43, 175, 332, 237} ),
				Filled( 0 ),
				Text Color( "Medium Dark Magenta" ),
				"Font"("Segoe UI", 12, "Bold")
			), Add Text Annotation(
				Text(
					"34% likelihood that females are not 2.5 or more inches shorter than males"
				),
				Fixed Size( 0 ),
				Text Box( {142, 101, 454, 163} ),
				Filled( 0 ),
				Text Color( "Medium Dark Magenta" ),
				Background Color( "White" ),
				"Font"("Segoe UI", 12, "Bold")
			), Add Line Annotation(
				Line( {353, 149}, {409, 203} ),
				Color( "Magenta" ),
				Thick( 1 ),
				Point to( 1 )
			), Add Text Annotation(
				Text(
					"Highly unlikely that females are 
6 or more inches shorter than males"
				),
				Fixed Size( 0 ),
				Text Box( {537, 98, 826, 152} ),
				Filled( 0 )
			), Add Line Annotation(
				Line( {678, 93}, {711, 27} ),
				Color( "Magenta" ),
				Thick( 1 ),
				Point to( 1 )
			)}
		)
	)
);

 Another way to calculate this in JMP 17 is using the superiority test:

View more...
Names default to here(1);

dt=open("$Sample_Data/Big class.jmp");
obj=Oneway( Y( :height ), X( :sex ));

//add an equivalence test for each distance and get p values for all
distances =index(0.5,7,0.5);
for each( {d}, distances,  obj << Equivalence Tests( d, 0.05, "Pooled Variance", "Noninferiority Greater" ));
pvalboxes = (obj << XPath("//NumberColBox[NumberColBoxHeader[contains(text(),'Lower Bound p-Value')]][NumberColBoxItem]"));

//convert p values to match other graph (maybe pulled wrong value from test or used wrong test..)
pvalmore = transform each( {b}, pvalboxes, b[1]);

dtSum = New Table( "Results Superiority Tests",
	Add Rows( n items(distances) ),
	New Column( "Distance",
		Numeric,
		"Continuous",
		Format( "Best", 12 ),
		Set Values( distances )
	),
	New Column( "pvaluemore",
		Numeric,
		"Continuous",
		Format( "Best", 12 ),
		Set Values( pvalmore )
	),
	New Column( "pvalueless",
		Numeric,
		"Continuous",
		Format( "Best", 12 ),
		Formula( 1 - :pvaluemore )
	)
);

gb = dtSum << Graph Builder(
	Size( 876, 379 ),
	Show Control Panel( 0 ),
	Variables( X( :Distance ), Y( :pvalueless ) ),
	Elements( Points( X, Y, Legend( 3 ) ), Line( X, Y, Legend( 5 ) ) ),
	SendToReport(
		Dispatch(
			{},
			"pvalueless",
			ScaleBox,
			{Add Ref Line( 0.05, "Solid", "Black", ".05", 1 )}
		),
		Dispatch(
			{},
			"400",
			ScaleBox,
			{Legend Model( 3, Base( -1, 0, 0, Item ID( "pvaluemore", 1 ) ) )}
		),
		Dispatch(
			{},
			"graph title",
			TextEditBox,
			{Set Text(
				"Likelihood of average heights of females being shorter than males by different amounts"
			)}
		),
		Dispatch(
			{},
			"X title",
			TextEditBox,
			{Set Text( "Minimum Distance Between Average Heights" )}
		),
		Dispatch( {}, "Y title", TextEditBox, {Set Text( "p value" )} )
	)
);
1 ACCEPTED SOLUTION

Accepted Solutions
ih
Super User (Alumni) ih
Super User (Alumni)


Re: Compare means test: graph probability by difference in means

It does not look like this is possible today, if anyone else is interested in producing similar graphs I added a wish-list item over here:

 

Add superiority test to oneway analyses indicating the probability of being superior by different ma... 

View solution in original post

1 REPLY 1
ih
Super User (Alumni) ih
Super User (Alumni)


Re: Compare means test: graph probability by difference in means

It does not look like this is possible today, if anyone else is interested in producing similar graphs I added a wish-list item over here:

 

Add superiority test to oneway analyses indicating the probability of being superior by different ma...