尋找二元圖的頂點大家好,
我正在嘗試從二元圖中獲取頂點
到目前為止,我用腳本提取參數並透過 Excel 工作表計算它。
我很確定 JMP 中包含查找頂點函數,但我找不到它。
有沒有辦法直接取得頂點?
謝謝
<我用來提取參數的腳本>
dt = Current data Table ();
biv=Bivariate(
Y( :contrast_100cm ),
X( :Offset_Z ),
Fit Polynomial( 2, {Line Color( {212, 73, 88} )} ),
Where( :site == "Para#4" )
);
rbiv = biv << report;
rbiv[tablebox(4)]<<MAKE data="https://community.jmp.com/" table=""></MAKE>
進階統計建模自動化和腳本編寫資料混合與清理大規模客製化品質和工藝工程回覆:尋找二元圖的頂點有效
太感謝了回覆:尋找二元圖的頂點正如我多次發過的,發送至報告()和派遣()參數旨在供 JMP 保存自訂。 它們不適合用戶。 當然,您可以使用它們。 但還有更好的方法。
看來您想將答案加入圖中。 這個例子說明瞭如何做到這一點。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// fit quadratic polynomial interpolating function
biv = dt << Bivariate(
Y( :weight ),
X( :height ),
Fit Line
);
// get reference to report layer
rbiv = biv << Report;
// get parameter estimates
parm = rbiv["Parameter Estimates"][Number Col Box( 1 )] << Get As Matrix;
// compute x intercept
ans = -parm[1] / parm[2];
rbiv[FrameBox(1)] << Add Graphics Script(
Text( { 52.5, 160 }, "X intercept is " || Char( ans ) )
);回覆:尋找二元圖的頂點嗨馬克貝利,
我可以要求更多的事情嗎?
我稍微改變了腳本來求解線性函數並且它工作正常。
然而,我發現自己通過日誌檢查結果不如通過樹盒檢查方便。
據我所知,調度函數是製作樹框進行報告的正確函數。
所以我將腳本更改如下。但是,它不起作用。
我想獲取每個站點的答案(有 4 個站點)。所以我嘗試這樣做,但也沒有成功。
你能幫我解決這個問題嗎
太感謝了
-> 我的目的
1.新增各個站點的ans。
2. 新增 ans 報告。
-> 我的腳本
名稱預設為此處( 1 );
dt = 當前資料表();
// 擬合二次多項式內插函數
biv = dt << 雙變數(
Y(:CALU_CALU_intr_cy),
X( :OC 偏移量 Y um ),
擬合線( {線條顏色( {212, 73, 88} )} ),
透過(:網站),
);
// 取得報表層的引用
rbiv = biv << 報告;
// 取得參數估計值
parm = rbiv["參數估計值"][Number Col Box( 1 )] << 取得為矩陣;
// 計算 x 截距
ans = -parm[1] / parm[2];
rbiv<<調度(
{“答”},
“安”,
框架盒,
{標記大小(3)}
);
謝謝
回覆:尋找二元圖的頂點這展示()函數根據其參數將文字寫入日誌窗口,預設情況下該窗口未開啟。 選擇查看 > 日誌如果您使用的是 Windows 或視窗 > 日誌如果您使用的是 Macintosh。
我修改了腳本來估計 x 截距,假設它存在於真實平面中。 它只是根的二次解。
Names Default To Here( 1 );
// example of data
x = -5::5;
dt = New Table( "Non-Linear Data",
New Column( "X", Numeric, Continuous, Values( x ) ),
New Column( "Y", Numeric, Continuous, Values( x^2 - x - 12 ) )
);
// fit quadratic polynomial interpolating function
biv = dt << Bivariate(
Y( :Y ),
X( :X ),
Fit Polynomial( 2 )
);
// get reference to report layer
rbiv = biv << Report;
// get parameter estimates
parm = rbiv["Parameter Estimates"][NumberColBox( 1 )] << Get As Matrix;
// compute x intercept
ans = parm[2]^2 - 4*parm[3]*parm[1];
x intercepts = If( ans > 0,
(-parm[2] + { -1, 1 } * Sqrt( ans )) / (2*parm[3]);
);
Show( parm, x intercepts );回覆:尋找二元圖的頂點謝謝你的好意回答。
因為你用註解解釋了每個程式碼,所以很容易理解。
我試圖修改你的程式碼以找出線性函數中的 x 截距。
但什麼也沒出來。
其實我真的不知道「顯示功能」是如何運作的。
你能幫我解決這個問題嗎?
謝謝
回覆:尋找二元圖的頂點感謝您的回覆。
我測試了該腳本,發現這正是我正在尋找的。
(雖然我沒看懂整個程式碼)
但我發現透過響應曲面計算的Offset_Z值與我手動計算(透過微分)略有不同
差異低於 0.0003,所以沒什麼大不了的
再次感謝你的幫助
回覆:尋找二元圖的頂點或者,另一種方法是使用擬合模型,使用響應曲面宏,以便 JMP 設定響應曲面屬性。 然後您將獲得求解臨界值的響應面輸出。
我讓 JMP 使用我編寫的一些資料創建了這個腳本。
Fit Model(
Y( :contrast_100cm ),
Effects( :Offset_Z & RS, :Offset_Z * :Offset_Z ),
Personality( "Standard Least Squares" ),
Emphasis( "Effect Leverage" ),
Run(
:contrast_100cm << {Summary of Fit( 0 ), Analysis of Variance( 0 ),
Parameter Estimates( 0 ), Lack of Fit( 0 ), Scaled Estimates( 0 ),
Plot Actual by Predicted( 0 ), Plot Residual by Predicted( 0 ),
Plot Studentized Residuals( 0 ), Plot Effect Leverage( 0 ),
Plot Residual by Normal Quantiles( 0 ), Box Cox Y Transformation( 0 )}
),
SendToReport(
Dispatch(
{"Response contrast_100cm", "Whole Model"},
"Summary of Fit",
OutlineBox,
{Close( 1 )}
),
Dispatch(
{"Response contrast_100cm", "Whole Model"},
"Analysis of Variance",
OutlineBox,
{Close( 1 )}
),
Dispatch(
{"Response contrast_100cm", "Whole Model"},
"Parameter Estimates",
OutlineBox,
{Close( 1 )}
),
Dispatch(
{"Response contrast_100cm"},
"Response Surface",
OutlineBox,
{Close( 0 )}
)
)
)
這是找到臨界值的輸出部分。

回覆:尋找二元圖的頂點JMP 本身沒有求解器。 但是您正在擬合二次多項式插值函數,因此您只需將 Offset_Z 的一階導數設為零並求解 Offset_Z 即可。 我假設“頂點”是指函數的最小值或最大值。
Names Default To Here( 1 );
// example of data
dt = Current Data Table();
// fit quadratic polynomial interpolating function
biv = dt << Bivariate(
Y( :contrast_100cm ),
X( :Offset_Z ),
Fit Polynomial( 2, {Line Color( {212, 73, 88} )} ),
Where( :site == "Para#4" )
);
// get reference to report layer
rbiv = biv << Report;
// get parameter estimates
parms = rbiv[NumberColBox( 1 )] << Get As Matrix;
// compute extremum
extremum = -parms[2] / (2*parms[3]);
Show( parms, extremum );