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

JMP ANOVA giving wrong number of degrees of freedom

Hello,

 

Brand-new to JMP, so my apologies if I'm doing something obviously wrong to you, the wise ones. I am trying to run a two-factor ANOVA on a dataset that involves battery test life at 3 different temperatures using 3 different materials. When I run "Fit Model" using JMP, however, I get only 1 degree of freedom for each of my effects, not 2 like I would expect (3 data points - 1 = 2 degrees of freedom). This is causing a pretty nasty overestimation of my F-ratios and p-values that are way too small. I have attached the raw .jmp file I am using, my model specification dialog, and the output I am getting from the model. What am I doing wrong?

 

Best,

Jordan

Screen Shot 2021-02-01 at 3.54.39 PM.png

Screen Shot 2021-02-01 at 3.56.17 PM.png

1 ACCEPTED SOLUTION

Accepted Solutions
edmundsj
Level II

Re: JMP ANOVA giving wrong number of degrees of freedom

Sure enough, I was just interpreting this incorrectly. I assumed JMP would use an effects model with n-1 degrees of freedom, but since I set temperature to be a continuous variable, JMP was actually using a regression model with a lower number of degrees of freedom (1). By adding a temperature * temperature term I can bring the degrees of freedom up to 2, or by changing temperature to a categorical variable (not a continuous one).

View solution in original post

5 REPLIES 5
edmundsj
Level II

Re: JMP ANOVA giving wrong number of degrees of freedom

It looks like JMP is completely missing my T=70 degrees condition. This is truly bizarre. 

edmundsj
Level II

Re: JMP ANOVA giving wrong number of degrees of freedom

Sure enough, I was just interpreting this incorrectly. I assumed JMP would use an effects model with n-1 degrees of freedom, but since I set temperature to be a continuous variable, JMP was actually using a regression model with a lower number of degrees of freedom (1). By adding a temperature * temperature term I can bring the degrees of freedom up to 2, or by changing temperature to a categorical variable (not a continuous one).

Byron_JMP
Staff

Re: JMP ANOVA giving wrong number of degrees of freedom

 

 

Turn on this option in your report to see all the levels of your nominal variables

Screen Shot 2021-02-01 at 8.53.46 PM.png

Also, to get better help so people know what you're doing. Click that little red triangle at the top, Save Script>To Clipboard. Then come back here type your question, and click the "<JSL>" button above the post window, and paste your clipboard there.

It will look like this:


Fit Model(
	Y( :Name( "Life (hours)" ) ),
	Effects(
		:Temperature & RS,
		:Material Type,
		:Temperature * :Temperature,
		:Temperature * :Material Type
	),
	Run);

 

by running this scrip against the data table you supplied, you can see exactly what my analysis looks like. 

 

This is a response surface model. It includes all the 2 way interactions and quadratic effects. Note Material is Nominal and Temperature is Continuous.

 

 

JMP Systems Engineer, Health and Life Sciences (Pharma)
statman
Super User

Re: JMP ANOVA giving wrong number of degrees of freedom

Welcome to the community,  I was looking at your data set and I have a question: You have 4 responses at each treatment combination, what are they?  Are they repeats or replicates (and are they randomized)?

Analysis is completely dependent on how the data was collected (regardless of software).  It is true, that if a factor is >2 levels, how you set the data type matters.  If the variables are indeed continuous, then a regression approach would provide more information about the model effects than ANOVA (but you need to add the polynomial terms to the model).

"All models are wrong, some are useful" G.E.P. Box
Byron_JMP
Staff

Re: JMP ANOVA giving wrong number of degrees of freedom

I was about to close your data set this morning, and thought of one more thing. 

A simple ordinary least squares analysis might be wrong for the question you are asking.

It looks like your time column is something like time to failure.  In this case you need to know probability of failure at a specific time. e.g. the B10 time, as a function of temperature and material. 

 

In this case a Parametric Survival Fit is a good choice

Fit Model(
	Y( :Name( "Life (hours)" ) ),
	Effects(
		:Temperature & RS,
		:Material Type,
		:Temperature * :Temperature,
		:Temperature * :Material Type
	),
	Personality( "Parametric Survival" ),
	Distribution( "Weibull" ),
	Run(
		Likelihood Ratio Tests( 1 ),
		Quantile Profiler(
			1,
			Confidence Intervals( 1 ),
			Adapt Y Axis( 1 ),
			Term Value(
				Temperature( 68, Lock( 0 ), Show( 1 ) ),
				Material Type( 3, Lock( 0 ), Show( 1 ) ),
				Failure Probability( 0.1, Lock( 0 ), Show( 1 ) )
			)
		)
	),
	SendToReport(
		Dispatch( {}, "Effect Summary", OutlineBox, {Close( 1 )} ),
		Dispatch( {}, "Whole Model Test", OutlineBox, {Close( 1 )} ),
		Dispatch( {}, "Parameter Estimates", OutlineBox, {Close( 1 )} ),
		Dispatch( {}, "Wald Tests", OutlineBox, {Close( 1 )} ),
		Dispatch( {}, "Effect Likelihood Ratio Tests", OutlineBox, {Close( 1 )} ),
		Dispatch(
			{"Quantile Profiler"},
			"10000",
			ScaleBox,
			{Min( 0 ), Max( 220.470532541004 ), Inc( 25 ), Minor Ticks( 0 )}
		),
		Dispatch(
			{"Quantile Profiler"},
			"Profiler",
			FrameBox,
			{Frame Size( 208, 207 )}
		),
		Dispatch(
			{"Quantile Profiler"},
			"Profiler",
			FrameBox( 3 ),
			{Frame Size( 208, 207 )}
		),
		Dispatch(
			{"Quantile Profiler"},
			"Profiler",
			FrameBox( 5 ),
			{Frame Size( 208, 207 )}
		)
	)
)

Screen Shot 2021-02-02 at 9.24.39 AM.png

JMP Systems Engineer, Health and Life Sciences (Pharma)