cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Try the Materials Informatics Toolkit, which is designed to easily handle SMILES data. This and other helpful add-ins are available in the JMP® Marketplace
Choose Language Hide Translation Bar
vince_faller
Super User (Alumni)

Are Scaled Estimates Unitless

Maybe I'm just having a stroke.  Was hoping for someone to confirm/deny this to me.  

 

 

Vince Faller - Predictum
1 ACCEPTED SOLUTION

Accepted Solutions

Re: Are Scaled Estimates Unitless

The standardization is such that the numerator and the denominator have the same units, so the units 'cancel' and the result is 'unitless' or 'scale invariant.'

 

That is a YES.

View solution in original post

9 REPLIES 9
Byron_JMP
Staff

Re: Are Scaled Estimates Unitless

vince_faller
Super User (Alumni)

Re: Are Scaled Estimates Unitless

Saw that, still asked.  So that's a yes right? 

Vince Faller - Predictum

Re: Are Scaled Estimates Unitless

The standardization is such that the numerator and the denominator have the same units, so the units 'cancel' and the result is 'unitless' or 'scale invariant.'

 

That is a YES.

vince_faller
Super User (Alumni)

Re: Are Scaled Estimates Unitless

Thanks @Mark_Bailey and @Byron_JMP 

I have someone that won't believe me.  Y'all have any way that I can prove this to them?  

To give a little context they're trying to divide scaled estimates by RMSE to create a pseudo "Z-score".  

 

*Edit* did this and made them amtch, so doesn't that mean that each scaled estimate is in the units of Y (height in this case)?

Names default to here( 1 );
dt = open("$SAMPLE_DATA\Big Class.jmp");

dt << New Column("Scaled height", 
	<<Formula((:height-ColMean(:height))/((:ColMax(:height)-ColMin(:weight))/2))
);

dt << New Column("Scaled weight", 
	<<Formula((:weight-ColMean(:weight))/((:ColMax(:weight)-ColMin(:weight))/2))
);

dt << Fit Model(
	Y( :height ),
	Effects( :Scaled weight ),
	Personality( "Standard Least Squares" ),
	Emphasis( "Effect Leverage" ),
	Run()
);

dt << Fit Model(
	Y( :height ),
	Effects( :weight ),
	Personality( "Standard Least Squares" ),
	Emphasis( "Effect Leverage" ),
	Run(Scaled Estimates(1))
);
Vince Faller - Predictum

Re: Are Scaled Estimates Unitless

The scaled estimates are unitless. They represent the change in the response per unit change on a new scale without units. The RMSE is the estimated standard deviation of the response when the fixed effects of the factors have been removed. The RMSE still has the original units of the response. Dividing the unitless scaled estimate by the RMSE with units produces a quantity with reciprocal units. So it would not be a Z score because Z does not have units. If you change the response scale, then the RMSE will change, and, therefore, so will the quotient. It will not have the standard normal distribution as required.

 

A belief is very difficult to over-turn. People will hold on to beliefs in spite of mathematical proofs or scientific facts. I do not have any advice that guarantees success with changing a belief.

Re: Are Scaled Estimates Unitless

I agree with Mark that it can be very difficult to "prove" this to someone. Mark mentioned this earlier, but I will go into more detail on an approach to "prove" this.

 

Height is in inches. So height-mean(height) would be inches-inches. This result would be in inches.

The denominator, depending on which value you are using, might be factor range/2. The factor range is also in inches. Dividing that by 2 would still be in inches.

 

The coded value is then inches/inches, so the inches cancel out. The result is then unitless.

 

If they don't believe this, ask them to tell you what the units are.

Dan Obermiller
vince_faller
Super User (Alumni)

Re: Are Scaled Estimates Unitless

 

Names default to here( 1 );
dt = open("$SAMPLE_DATA\Big Class.jmp");

dt << New Column("Scaled weight", // unitless
	<<Formula((:weight-ColMean(:weight))/((:ColMax(:weight)-ColMin(:weight))/2))
);

fm = dt << Fit Model(
	Y( :height ),
	Effects( :Scaled weight ),
	Personality( "Standard Least Squares" ),
	Emphasis( "Effect Leverage" ),
	Run()
);

col = fm << Prediction Formula();

f = col << Get Formula;

show(f); //f = 62.55 + 7.31741573033707 * :Scaled weight;

// if scaled weight is unitless, isn't the only way for this to work out to 
// kg or wahtever height is in 
// is for 62.55 and 7.317 to both be kg?


Maybe I'm oversimplifying but it matches exactly the scaled estimates of 

 

fm = dt << Fit Model(
	Y( :height ),
	Effects( :weight ),
	Personality( "Standard Least Squares" ),
	Emphasis( "Effect Leverage" ),
	Run(Scaled Estimates(1))
);

I'm having too much cognitive dissonance because I always believed they were unitless but not I'm broken.  

 

Maybe we're miscommunicating and what you're saying is that each factor loses its own units, but still retains the units of the response?

Vince Faller - Predictum

Re: Are Scaled Estimates Unitless

You have transformed the weight scale. It is still weight information, but no units. There is a one-to-one correspondence between a weight and a scaled weight.

 

The problem is Y. Change the scale of Y any way at all. From inches to Angstroms to light years. Check the change in RMSE. Check the change in 'Z.'

vince_faller
Super User (Alumni)

Re: Are Scaled Estimates Unitless

Yeah, this whole thing has probably been an XY problem.  But I think you just nailed his main ask.  

 

How to compare Term estimates across multiple Ys (could be scaled from one another could be unrelated). 

 

Names default to here( 1 );
dt = open("$SAMPLE_DATA\Big Class.jmp");

dt << new Column("height * 1000", <<Formula(:height * 1000));

fm = dt << Fit Model(
	Y( :height, :"height * 1000"n ),
	Effects( :weight ),
	Personality( "Standard Least Squares" ),
	Emphasis( "Effect Leverage" ),
	Run( Scaled Estimates(1)	)
);

dt_scaled = report(fm)[OutlineBox("Response height")][OutlineBox("Scaled Estimates")][TableBox(1)] << Make Combined Data Table();

rmse_h = report(fm)[OutlineBox("Response height")][OutlineBox("Summary of Fit")][TableBox(1)][NumberColBox(1)][3];
rmse_hs = report(fm)[OutlineBox("Response height * 1000")][OutlineBox("Summary of Fit")][TableBox(1)][NumberColBox(1)][3];

dt_scaled << New Column("RMSE", <<Set Each Value(if(:Y == "height", rmse_h, rmse_hs)));

// the fact that these two match I think is the reason he wants to use this
dt_scaled << New Column("Fake Z Score", <<Formula(:Scaled Estimate/:RMSE));
Vince Faller - Predictum