<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Some way to get constants from the Johnson Transformation in Discussions</title>
    <link>https://community.jmp.com/t5/Discussions/Some-way-to-get-constants-from-the-Johnson-Transformation/m-p/856527#M102716</link>
    <description>&lt;P&gt;Thanks&amp;nbsp;&lt;a href="https://community.jmp.com/t5/user/viewprofilepage/user-id/2687"&gt;@txnelson&lt;/a&gt;&amp;nbsp;!&lt;/P&gt;
&lt;P&gt;Thanks for going above and beyond.&amp;nbsp; This works great!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Steve&lt;/P&gt;</description>
    <pubDate>Fri, 28 Mar 2025 02:31:04 GMT</pubDate>
    <dc:creator>shampton82</dc:creator>
    <dc:date>2025-03-28T02:31:04Z</dc:date>
    <item>
      <title>Some way to get constants from the Johnson Transformation</title>
      <link>https://community.jmp.com/t5/Discussions/Some-way-to-get-constants-from-the-Johnson-Transformation/m-p/855235#M102639</link>
      <description>&lt;P&gt;Hey everyone,&lt;/P&gt;
&lt;P&gt;I was trying to develop a script that would transform a column using the Johnson Transform and then be able to grab the constants from the formula to be able to put back into the inverse formula so I could use that to calculate the spec limits in their original units.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So the work flow will be like this&lt;/P&gt;
&lt;P&gt;select a column-&amp;gt; transform using Johnson-&amp;gt; Run Control Chart-&amp;gt; see what the control limits are and enter into my user interface,-&amp;gt; have spec limits spit out in original units-&amp;gt; run control chart again in original units and input calculated from previous steps.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I think I can handle most of this but I'm stumped on how to grab the constants from the transform equation.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So from here&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shampton82_0-1742956263222.png" style="width: 400px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/74243i96D7D78B4E32BC49/image-size/medium?v=v2&amp;amp;px=400" role="button" title="shampton82_0-1742956263222.png" alt="shampton82_0-1742956263222.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;to put in here&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shampton82_1-1742956299364.png" style="width: 400px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/74244iC3CA1D8A46C84DD6/image-size/medium?v=v2&amp;amp;px=400" role="button" title="shampton82_1-1742956299364.png" alt="shampton82_1-1742956299364.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks for any ideas!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Steve&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 26 Mar 2025 02:33:08 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Some-way-to-get-constants-from-the-Johnson-Transformation/m-p/855235#M102639</guid>
      <dc:creator>shampton82</dc:creator>
      <dc:date>2025-03-26T02:33:08Z</dc:date>
    </item>
    <item>
      <title>Re: Some way to get constants from the Johnson Transformation</title>
      <link>https://community.jmp.com/t5/Discussions/Some-way-to-get-constants-from-the-Johnson-Transformation/m-p/855292#M102642</link>
      <description>&lt;P&gt;Extract the formula into an expression and then take values from there. After you have the expression, you can then for example use Arg() to pick values from the formula&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;Names Default To Here(1);

dt = Open("$SAMPLE_DATA/Big Class.jmp");

new_cols = dt &amp;lt;&amp;lt; New Formula Column(
	Operation(Category("Distributional"), "Johnson Normalizing"),
	Columns(:weight)
);

new_col = Remove From(new_cols, 1)[1];
f_expr = Column(dt, new_col &amp;lt;&amp;lt; get name) &amp;lt;&amp;lt; Get Formula;

Show(Arg(f_expr, 1), Arg(f_expr, 2));&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;There are few posts regarding this in community, here is one&amp;nbsp;&lt;LI-MESSAGE title="JMP &amp;amp;gt; JSL &amp;amp;gt; Get Formula &amp;amp;gt; Extract Parameters" uid="438650" url="https://community.jmp.com/t5/Discussions/JMP-gt-JSL-gt-Get-Formula-gt-Extract-Parameters/m-p/438650#U438650" discussion_style_icon_css="lia-mention-container-editor-message lia-img-icon-forum-thread lia-fa-icon lia-fa-forum lia-fa-thread lia-fa"&gt;&lt;/LI-MESSAGE&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 26 Mar 2025 05:25:27 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Some-way-to-get-constants-from-the-Johnson-Transformation/m-p/855292#M102642</guid>
      <dc:creator>jthi</dc:creator>
      <dc:date>2025-03-26T05:25:27Z</dc:date>
    </item>
    <item>
      <title>Re: Some way to get constants from the Johnson Transformation</title>
      <link>https://community.jmp.com/t5/Discussions/Some-way-to-get-constants-from-the-Johnson-Transformation/m-p/855363#M102652</link>
      <description>&lt;P&gt;One method that I have used successfully is to use Successive Approximations to find the value in the original distribution for a value from the transformed distribution.&amp;nbsp; It basically takes values from the original distribution and passes it through the formula created by the transformation formula until it finds a match with the calculated value from the transform distribution.&amp;nbsp; Here is an example that fits a Johnson distribution, finds the mean of the transformed column and then finds the value in the original distribution for that transform mean value.&amp;nbsp; In the examples case, it just writes the back transformed value to the log.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;Names Default To Here( 1 );
dt = 
// Open Data Table: Semiconductor Capability.jmp
// → Data Table( "Semiconductor Capability" )
Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );

theColumn = "NPN1";

Distribution(
	Continuous Distribution(
		Column( as column(theColumn) ),
		Process Capability( Use Column Property Specs ),
		Fit Johnson(save distribution formula)
	),
	SendToReport(
		Dispatch( {"NPN1"}, "Process Capability", OutlineBox, {Close( 1 )} )
	)
);

// Find the back transform of the calculated mean of the transformed distribution
theTargetCol = Column( dt, N Cols( dt ) ) &amp;lt;&amp;lt; get name;
theFormula = Char( As Column( dt, theTargetCol ) &amp;lt;&amp;lt; get formula );
theTarget = Col Mean( Column( dt, theTargetCol ) );

// Change the reference to the original column used in the transformation to _X_
// so it can be used in the back transform
Substitute Into( theFormula, ":"|| theColumn, "_X_" );
// The formula needs to create a memory variable to allow for comparison.
// Add the resulting variable name to be the resulting variable when the
// formula is executed
theFormula = "theResult = " || theFormula || ";";

// Successive Approximation will be used to get the back transform
// Use the min and max of the original column to start the approximations
theMax = Col Max(as column(theColumn) );
theMin = Col Min( as column(theColumn)  );

// Loop through the approximations for up to 100 loops to find the value
For( i = 1, i &amp;lt;= 100, i++,
	_X_ = Mean( theMax, theMin );
	Eval( Parse( theFormula ) );
	If(
		theResult &amp;gt; theTarget, theMax = _X_,
		theResult &amp;lt; theTarget, theMin = _X_,
		Break()
	);
);

// Display the findings in the log
Show( theTarget, theResult, _X_, i );&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 26 Mar 2025 10:22:15 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Some-way-to-get-constants-from-the-Johnson-Transformation/m-p/855363#M102652</guid>
      <dc:creator>txnelson</dc:creator>
      <dc:date>2025-03-26T10:22:15Z</dc:date>
    </item>
    <item>
      <title>Re: Some way to get constants from the Johnson Transformation</title>
      <link>https://community.jmp.com/t5/Discussions/Some-way-to-get-constants-from-the-Johnson-Transformation/m-p/855638#M102666</link>
      <description>&lt;P&gt;Thanks&amp;nbsp;&lt;a href="https://community.jmp.com/t5/user/viewprofilepage/user-id/14366"&gt;@jthi&lt;/a&gt;&amp;nbsp;!&lt;/P&gt;
&lt;P&gt;I modified your script to pull out each individual parameter as such:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;Names Default To Here(1);

dt = Open("$SAMPLE_DATA/Big Class.jmp");

new_cols = dt &amp;lt;&amp;lt; New Formula Column(
	Operation(Category("Distributional"), "Johnson Normalizing"),
	Columns(:weight)
);

new_col = Remove From(new_cols, 1)[1];
f_expr = Column(dt, new_col &amp;lt;&amp;lt; get name) &amp;lt;&amp;lt; Get Formula;


test1=contains(char(arg(f_expr))," - (",1);
test2=contains(char(arg(f_expr)),"))",1);

c1=num(substr(char(arg(f_expr)),num(test1)+4,num(test2)-num(test1)-4));

test3=contains(char(arg(f_expr))," / ",1);
test4=contains(char(arg(f_expr)),") *",1);


c2=num(substr(char(arg(f_expr)),num(test3)+4,num(test4)-num(test3)-4));

test5=contains(char(arg(f_expr))," * ",1);
test6=contains(char(arg(f_expr)),"+",1);


c3=num(substr(char(arg(f_expr)),num(test5)+4,num(test6)-num(test5)-4));

c4=Arg(f_expr, 2);

Show(Arg(f_expr, 1), Arg(f_expr, 2));&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Working great so far!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Steve&lt;/P&gt;</description>
      <pubDate>Wed, 26 Mar 2025 16:15:21 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Some-way-to-get-constants-from-the-Johnson-Transformation/m-p/855638#M102666</guid>
      <dc:creator>shampton82</dc:creator>
      <dc:date>2025-03-26T16:15:21Z</dc:date>
    </item>
    <item>
      <title>Re: Some way to get constants from the Johnson Transformation</title>
      <link>https://community.jmp.com/t5/Discussions/Some-way-to-get-constants-from-the-Johnson-Transformation/m-p/855640#M102668</link>
      <description>&lt;P&gt;Thats really cool&amp;nbsp;&lt;a href="https://community.jmp.com/t5/user/viewprofilepage/user-id/2687"&gt;@txnelson&lt;/a&gt;&amp;nbsp;!&lt;/P&gt;
&lt;P&gt;I'll play around with this some more but looks like I can use this to feed in a target from the transformed units (vs how the script just used the column mean) and it will output the value in original units (if I'm understanding this correctly).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Steve&lt;/P&gt;</description>
      <pubDate>Wed, 26 Mar 2025 16:21:03 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Some-way-to-get-constants-from-the-Johnson-Transformation/m-p/855640#M102668</guid>
      <dc:creator>shampton82</dc:creator>
      <dc:date>2025-03-26T16:21:03Z</dc:date>
    </item>
    <item>
      <title>Re: Some way to get constants from the Johnson Transformation</title>
      <link>https://community.jmp.com/t5/Discussions/Some-way-to-get-constants-from-the-Johnson-Transformation/m-p/855642#M102669</link>
      <description>&lt;P&gt;For something like this all the Expression functions can be very useful&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="jthi_0-1743006285115.png" style="width: 400px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/74273i03A4FCC1D0753E2B/image-size/medium?v=v2&amp;amp;px=400" role="button" title="jthi_0-1743006285115.png" alt="jthi_0-1743006285115.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;N Arg(f_expr);
Head(f_expr);
Head Name(f_expr); 
Head(Arg(f_expr, 1));
Head(Arg(Arg(f_expr, 1), 1));&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Sometimes you might want to add Extract Expr into the mix&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;Extract Expr(f_expr, (:weight - Wild()));&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 26 Mar 2025 16:27:53 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Some-way-to-get-constants-from-the-Johnson-Transformation/m-p/855642#M102669</guid>
      <dc:creator>jthi</dc:creator>
      <dc:date>2025-03-26T16:27:53Z</dc:date>
    </item>
    <item>
      <title>Re: Some way to get constants from the Johnson Transformation</title>
      <link>https://community.jmp.com/t5/Discussions/Some-way-to-get-constants-from-the-Johnson-Transformation/m-p/855851#M102683</link>
      <description>&lt;P&gt;That is correct, or any other stat you get from the transformed distribution&lt;/P&gt;</description>
      <pubDate>Wed, 26 Mar 2025 21:04:42 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Some-way-to-get-constants-from-the-Johnson-Transformation/m-p/855851#M102683</guid>
      <dc:creator>txnelson</dc:creator>
      <dc:date>2025-03-26T21:04:42Z</dc:date>
    </item>
    <item>
      <title>Re: Some way to get constants from the Johnson Transformation</title>
      <link>https://community.jmp.com/t5/Discussions/Some-way-to-get-constants-from-the-Johnson-Transformation/m-p/856286#M102702</link>
      <description>&lt;P&gt;Hey&amp;nbsp;&lt;a href="https://community.jmp.com/t5/user/viewprofilepage/user-id/2687"&gt;@txnelson&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;I modified your script(try not to cringe to much lol) and made it so I could put in my spec limits and will get the transformed values of those limits, which is sweet.&amp;nbsp; However, for my workflow I actually need to be able to put in the spec limits from the transformed data (so post running a control chart on the transformed data) and output them in the original data values.&amp;nbsp; I follow most the code but not enough of it to feel confident trying to modify further myself so was wondering if this is a quick fix you could make in this code to basically reverse what it is currently doing?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;Names Default To Here( 1 );

dt=current data table();

theColumn = dt&amp;lt;&amp;lt;get selected columns("string");

if(n items(theColumn)!=1,
	throw("Incorrect number of columns selected, must be just one");
	
	
);

		nw=new window("calculate control limits limits",
						Panel Box("actions",
							Hlistbox(
									bb1=Buttonbox("press to get Limits",
										nebvalue1=neb1&amp;lt;&amp;lt;get;
										nebvalue2=neb2&amp;lt;&amp;lt;get;

										obj=Distribution(
											Continuous Distribution(
												Column( as column(theColumn) ),
												Process Capability( Use Column Property Specs ),
												Fit Johnson(save distribution formula)
											),
											invisible(1),
											SendToReport(
												Dispatch( {eval(theColumn)}, "Process Capability", OutlineBox, {Close( 1 )} )
											)
										);

										obj&amp;lt;&amp;lt;close window;

										// Find the back transform of the calculated mean of the transformed distribution
										theTargetCol = Column( dt, N Cols( dt ) ) &amp;lt;&amp;lt; get name;
										theFormula_lcl = Char( As Column( dt, theTargetCol ) &amp;lt;&amp;lt; get formula );
										theTarget_lcl = nebvalue1;

										// Change the reference to the original column used in the transformation to _X_
										// so it can be used in the back transform
										Substitute Into( theFormula_lcl, ":"|| theColumn[1], "_X_" );
										// The formula needs to create a memory variable to allow for comparison.
										// Add the resulting variable name to be the resulting variable when the
										// formula is executed
										theFormula_lcl = "theResult_lcl = " || theFormula_lcl || ";";

										// Successive Approximation will be used to get the back transform
										// Use the min and max of the original column to start the approximations
										theMax = Col Max(as column(theColumn) );
										theMin = Col Min( as column(theColumn)  );

										// Loop through the approximations for up to 100 loops to find the value
										For( i = 1, i &amp;lt;= 1000, i++,
											_X_ = thetarget_lcl;
											Eval( Parse( theFormula_lcl ) );
											If(
												theResult_lcl &amp;gt; theTarget_lcl, theMax = _X_,
												theResult_lcl &amp;lt; theTarget_lcl, theMin = _X_,
												Break()
											);
										);

										// Display the findings in the log
										Show( theTarget_lcl, theResult_lcl);
										

										// Find the back transform of the calculated mean of the transformed distribution
										theTargetCol = Column( dt, N Cols( dt ) ) &amp;lt;&amp;lt; get name;
										theFormula_ucl = Char( As Column( dt, theTargetCol ) &amp;lt;&amp;lt; get formula );
										theTarget_ucl = nebvalue2;

										// Change the reference to the original column used in the transformation to _X_
										// so it can be used in the back transform
										Substitute Into( theFormula_ucl, ":"|| theColumn[1], "_X_" );
										// The formula needs to create a memory variable to allow for comparison.
										// Add the resulting variable name to be the resulting variable when the
										// formula is executed
										theFormula_ucl = "theResult_ucl = " || theFormula_ucl || ";";
										// Successive Approximation will be used to get the back transform
										// Use the min and max of the original column to start the approximations
										theMax = Col Max(as column(theColumn) );
										theMin = Col Min( as column(theColumn)  );

										// Loop through the approximations for up to 100 loops to find the value
										For( i = 1, i &amp;lt;= 1000, i++,
											_X_ = thetarget_ucl;
											Eval( Parse( theFormula_ucl ) );
											If(
												theResult_ucl &amp;gt; theTarget_ucl, theMax = _X_,
												theResult_ucl &amp;lt; theTarget_ucl, theMin = _X_,
												Break()
											);
										);

										// Display the findings in the log
										Show( theTarget_ucl, theResult_ucl);
										
										neb3&amp;lt;&amp;lt;set(theResult_lcl);
										neb4&amp;lt;&amp;lt;set(theResult_ucl);
									),
			
								Vlistbox(
									textbox("LCL"
										
									),
									textbox("UCL"
										
									)

									
								),
								Vlistbox(
									neb1=numbereditbox(
										
									),
									neb2=numbereditbox(
										
									),
								Vlistbox(
									neb3=numbereditbox(
										
									),
									neb4=numbereditbox(
										
									)
									
								)
							)
						)
					)
			
		);



&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Thanks for any input and/or help!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Steve&lt;/P&gt;</description>
      <pubDate>Thu, 27 Mar 2025 16:23:48 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Some-way-to-get-constants-from-the-Johnson-Transformation/m-p/856286#M102702</guid>
      <dc:creator>shampton82</dc:creator>
      <dc:date>2025-03-27T16:23:48Z</dc:date>
    </item>
    <item>
      <title>Re: Some way to get constants from the Johnson Transformation</title>
      <link>https://community.jmp.com/t5/Discussions/Some-way-to-get-constants-from-the-Johnson-Transformation/m-p/856517#M102715</link>
      <description>&lt;P&gt;You have changed some of the statements that should not have been changed.&amp;nbsp; I have commented out the inappropriate lines, and changed them back.&amp;nbsp; I have also added in functionality that runs a control chart and strips off the Control Limits and uses them as the values to transform back into the original distribution.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;Names Default To Here( 1 );

dt=current data table();

theColumn = dt&amp;lt;&amp;lt;get selected columns("string");

if(n items(theColumn)!=1,
	throw("Incorrect number of columns selected, must be just one");
	
	
);

		nw=new window("calculate control limits limits",
						Panel Box("actions",
							Hlistbox(
									bb1=Buttonbox("press to get Limits",
										nebvalue1=neb1&amp;lt;&amp;lt;get;
										nebvalue2=neb2&amp;lt;&amp;lt;get;

										obj=Distribution(
											Continuous Distribution(
												Column( as column(theColumn) ),
												Process Capability( Use Column Property Specs ),
												Fit Johnson(save distribution formula)
											),
											invisible(1),
											SendToReport(
												Dispatch( {eval(theColumn)}, "Process Capability", OutlineBox, {Close( 1 )} )
											)
										);

										obj&amp;lt;&amp;lt;close window;
										
// Run the Control Chart and strip off the LCL and UCL
ccb = /* Control Chart Builder(
	Variables( Y( column(ncols(dt)) ) ),
	Show Control Panel( 0 )
);*/
Control Chart Builder(
	Variables( Y( column(ncols(dt)) )  ) ,
	Set Subgroup Size( 5 ),
	Show Control Panel( 0 )
);

// Get the Target LCL and Target UCL from the Displayed Report
theTarget_lcl = (report(ccb)[NumberColBox("LCL")]&amp;lt;&amp;lt;get)[1];
theTarget_ucl = (report(ccb)[NumberColBox("UCL")]&amp;lt;&amp;lt;get)[1];
ccb &amp;lt;&amp;lt; close window;

										// Find the back transform of the calculated mean of the transformed distribution
										theTargetCol = Column( dt, N Cols( dt ) ) &amp;lt;&amp;lt; get name;
										theFormula_lcl = Char( As Column( dt, theTargetCol ) &amp;lt;&amp;lt; get formula );
										//theTarget_lcl = nebvalue1;

										// Change the reference to the original column used in the transformation to _X_
										// so it can be used in the back transform
										Substitute Into( theFormula_lcl, ":"|| theColumn[1], "_X_" );
										// The formula needs to create a memory variable to allow for comparison.
										// Add the resulting variable name to be the resulting variable when the
										// formula is executed
										theFormula_lcl = "theResult_lcl = " || theFormula_lcl || ";";

										// Successive Approximation will be used to get the back transform
										// Use the min and max of the original column to start the approximations
										theMax = Col Max(as column(theColumn) );
										theMin = Col Min( as column(theColumn)  );

										// Loop through the approximations for up to 100 loops to find the value
										For( i = 1, i &amp;lt;= 5000, i++,
_X_ = Mean( theMax, theMin );
											//_X_ = thetarget_lcl;
											Eval( Parse( theFormula_lcl ) );
											If(
												theResult_lcl &amp;gt; theTarget_lcl, theMax = _X_,
												theResult_lcl &amp;lt; theTarget_lcl, theMin = _X_,
												Break()
											);
										);
neb1 &amp;lt;&amp;lt; set( _X_ );
										// Display the findings in the log
										Show( i,_x_,theTarget_lcl, theResult_lcl);
										

										// Find the back transform of the calculated mean of the transformed distribution
										//theTargetCol = Column( dt, N Cols( dt ) ) &amp;lt;&amp;lt; get name;
										theFormula_ucl = Char( As Column( dt, theTargetCol ) &amp;lt;&amp;lt; get formula );
										//theTarget_ucl = nebvalue2;

										// Change the reference to the original column used in the transformation to _X_
										// so it can be used in the back transform
										Substitute Into( theFormula_ucl, ":"|| theColumn[1], "_X_" );
										// The formula needs to create a memory variable to allow for comparison.
										// Add the resulting variable name to be the resulting variable when the
										// formula is executed
										theFormula_ucl = "theResult_ucl = " || theFormula_ucl || ";";
										// Successive Approximation will be used to get the back transform
										// Use the min and max of the original column to start the approximations
										theMax = Col Max(as column(theColumn) );
										theMin = Col Min( as column(theColumn)  );
										// Loop through the approximations for up to 100 loops to find the value
										For( i = 1, i &amp;lt;= 15000, i++,
_X_ = Mean( theMax, theMin );
											//_X_ = thetarget_ucl;
											Eval( Parse( theFormula_ucl ) );
											If(
												theResult_ucl &amp;gt; theTarget_ucl, theMax = _X_,
												theResult_ucl &amp;lt; theTarget_ucl, theMin = _X_,
												Break()
											);
										);

										// Display the findings in the log
										Show( i,_x_,theTarget_ucl, theResult_ucl);
neb2 &amp;lt;&amp;lt; set( _X_ );
										neb3&amp;lt;&amp;lt;set(theResult_lcl);
										neb4&amp;lt;&amp;lt;set(theResult_ucl);
									),
			
								Vlistbox(
									textbox("LCL"
										
									),
									textbox("UCL"
										
									)

									
								),
								Vlistbox(
									neb1=numbereditbox(
										
									),
									neb2=numbereditbox(
										
									),
								Vlistbox(
									neb3=numbereditbox(
										
									),
									neb4=numbereditbox(
										
									)
									
								)
							)
						)
					)
			
		);&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 28 Mar 2025 01:48:16 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Some-way-to-get-constants-from-the-Johnson-Transformation/m-p/856517#M102715</guid>
      <dc:creator>txnelson</dc:creator>
      <dc:date>2025-03-28T01:48:16Z</dc:date>
    </item>
    <item>
      <title>Re: Some way to get constants from the Johnson Transformation</title>
      <link>https://community.jmp.com/t5/Discussions/Some-way-to-get-constants-from-the-Johnson-Transformation/m-p/856527#M102716</link>
      <description>&lt;P&gt;Thanks&amp;nbsp;&lt;a href="https://community.jmp.com/t5/user/viewprofilepage/user-id/2687"&gt;@txnelson&lt;/a&gt;&amp;nbsp;!&lt;/P&gt;
&lt;P&gt;Thanks for going above and beyond.&amp;nbsp; This works great!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Steve&lt;/P&gt;</description>
      <pubDate>Fri, 28 Mar 2025 02:31:04 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Some-way-to-get-constants-from-the-Johnson-Transformation/m-p/856527#M102716</guid>
      <dc:creator>shampton82</dc:creator>
      <dc:date>2025-03-28T02:31:04Z</dc:date>
    </item>
  </channel>
</rss>

