在 JMP 中實作「Power Fit」模型並調整模型全部,
我有一些數據非常適合 Excel 中的「Power Fit」。
我在這篇文章中找到了一些有用的信息( https://community.jmp.com/t5/Discussions/Power-Fit-Equation-for-JMP/td-p/5783 )
我非常感謝有關此主題的更多指導:
- 當對 Excel 中的資料執行冪擬合時 - 擬合看起來相當合理
- 為了對 JSL 中的資料執行冪擬合 - theta1 和 theta2 是 2 個可調參數。 我透過反覆試驗找出了 theta2 和 theta 1 的合理值是多少,以使數據能夠很好地擬合模型
使用者如何在不過度擬合模型的情況下找出給定資料集的 theta1 和 theta2 的最佳值?
如果可能的話,請提供一個例子。
回覆:在 JMP 中實作「Power Fit」模型並調整模型為了結束,我發布了從技術支援收到的回應。
本質上,透過 JSL 啟動的非線性平台有一定的局限性,即利用非線性模型的最佳方法是執行以下操作:
1. 定義一個列,對控制模型的公式進行編碼
2. 提供公式化列作為非線性平台函數呼叫的輸入。
雖然需要初始起始值,但這是我迄今為止找到的最佳答案。
dt << New Column("Model E", Numeric, Continuous,
Formula( Parameter( {theta1 = 0.03, theta2 = 1.25}, theta1 * :year ^ theta2 ) )
);
dt << New Column("Exponential 3", Numeric, Continuous,
Formula( Parameter( {a = -20, b = 0.01, c = 0.01},
a + b * Exp( c * :year ) ) )
);
dt << New Column("Mechanistic Growth", Numeric, Continuous,
Formula( Parameter( {a = -40, b = 0.01, c = -0.01},
a * (1 - b * Exp( -c * :year ) ) ) )
);
dt << Run Formulas;
fc = Nonlinear( Y( :pop ), X( :Name("Exponential 3" )) );
fc << Finish;
fc << Save Prediction Formula;
//End Script;回覆:在 JMP 中實作「Power Fit」模型並調整模型我對非線性平台工作原理的理解有點不同。要運行該平台,您需要使用參數建立一個公式預測器列 - 我相信您必須將這些參數的初始值作為猜測。當您單擊“Go”時,平台會告訴您它是否收斂到解決方案。如果它收斂並且您保存解決方案,它會將這些值放置在您創建的預測變數列中 - 但公式仍然與原始公式相同。換句話說,預測器列包含您初始化並需要最佳化的參數。但與其他 JMP 平台不同的是,保存列不會建立新列,而只會將非線性最佳化的解值放置在您建立的相同公式列中。
我的理解可能有誤,還請大家指正。
回覆:在 JMP 中實作「Power Fit」模型並調整模型@dale_lehman , @蘇珊_沃爾什1
謝謝你的建議 。
我正在嘗試整理一個範例來理解工作流程。
當我啟動“非線性”模型平台時,並指定以下內容:
- Y - 變數
- X - 變數
- 非線性模型
儲存預測公式 - 將值儲存到資料表中。
我假設透過執行這些步驟,由於我沒有為模型中的參數設定任何起始值,JMP 會自動為模型參數設定它認為可能的最佳值,並將預測資料儲存為資料表。
但是,如果我嘗試在同一個數據表上運行第二個模型,則第二次啟動非線性平台後添加的列具有舊模型的方程式。請參閱下面的範例程式碼:
Clear Log();
Clear Globals();
dt = Open( "$SAMPLE_DATA/Nonlinear Examples/US Population.jmp" );
/* Run Predictions using different models*/
PowerFitPredModel = Nonlinear(Y(:pop),X(:Name("X-formula")),"Model E(2P)");
PowerFitPredModel << Save Prediction Formula ;
PowerFitPredModel << Close Window;
Wait(0.1);
CPredModel = Nonlinear(Y(:pop),X(:Name("X-formula")),"Mechanistic Growth Model(3P)");
CPredModel << Save Prediction Formula ;
CPredModel << Close Window;
現在,我不遵循的一些事情是:
- 當我多次啟動非線性平台時,為什麼在上面的腳本中只應用了我調用的第一個模型方程式?
- 如何確定 JMP 假設的適合模型的參數是否產生收斂的解?

回覆:在 JMP 中實作「Power Fit」模型並調整模型我沒有答案,但這可能會引發一些有趣的討論。附件是一個小數據集,其中包含有關汽車速度和停車距離的一些觀察結果。功率曲線似乎擬合得很好。我使用了 JMP 中的非線性平台和估計器列 - 我使用了 1,1 的初始參數猜測(不是太接近正確值,但也不是太遠) - 數據集中保存的是非線性的最佳擬合平台(在部分回答您的問題時,JMP將計算theta1和theta2,因此您無需擔心“過度擬合”,但存在一個問題,即JMP是否會收斂於解決方案,具體取決於您用作起始猜測的值) 。我還使用 Excel 為 Power 擬合趨勢線提供的公式放置了一列。請注意,它們並不相同!JMP 擬合效果優於 Excel 擬合效果。這並不令人震驚,因為 Excel 通常無法執行最佳的統計分析。然而,令我驚訝的是,對於這個相當簡單的數據,這兩個解決方案有多麼不同。
我相信 JMP 和 Excel 在擬合資料的冪關係時都會遇到問題。JMP可能收斂也可能不收斂到解,如果它收斂的話,我相信這個解是可靠的。Excel 只是給你一個擬合 - 我不知道如果它不適合它是否會給出錯誤或會發生什麼 - 也許有人可以闡明 Excel 如何將冪函數擬合到數據。我認為「過度擬合」在這裡是一個轉移注意力的話題——它與權力關係是否是正確的關係有關,而不是與正在擬合的特定權力關係有關。由於演算法選擇 theta1 和 theta2 值,因此它們將是最適合資料的值 - 過度擬合始終是可能的,但它是您用來擬合資料的函數的屬性,而不是特定選擇演算法選擇的參數。也許更清楚的說法是,如果這個特定數據不是您嘗試建模的數據的良好樣本(可能是不同類型的汽車),那麼將功率關係擬合到該數據就會面臨過度擬合的風險。
Excel 與 JMP 問題是一個不同的問題,我很感興趣是否有人可以闡明兩者之間的差異。