在他的隨便走路博客,Mike Croucher展示瞭如何使用五種不同的統計編程庫來擬合簡單的非線性曲線:R,MATLAB,Maple,Julia和Python / numpy。這個想法是為一個常見的建模問題提供具體的例子,這個問題很容易陳述,但不是那麼容易解決。
對於10 x和y值的給定數據集,問題是找到參數p的最佳值 1 和p 2 以便以下曲線最適合y值:
p 1 cos(p 2 x)+ p 2 罪(p 1 X )
由於非線性擬合涉及對解空間的迭代搜索,我們需要啟動參數值,Croucher給出
p 1 = 1.0,p 2 = 0.2。
那麼你將如何做同樣的事情呢? JMP ?
通常,您將從數據表開始,並使用Analyze菜單下的Nonlinear平台以交互方式啟動擬合。對於不是JMP內置的類似模型,可以將其添加到公式列中,並在“非線性”對話框中使用它。但是像JMP中的大多數內容一樣,如果你願意,它可以完全由JSL腳本驅動。
這是我的JSL版本:
XV
= [ - 2 , -1.64 ,- 1.33 , -0.7 , 0 , 0.45 , 1.2 , 1.64 , 2.32 , 2.9 ] ; YV = [ 0.699369 , 0.700462 , 0.695354 , 1.03905 , 1.97389 ,
2.411430 , 1.910910 , 0.919576 , -0.730975 , -1.42001 ] ;
DT = 新表 ( “數據” ,
新欄目 ( “X” ,設定值 ( XV )) ,
新欄目 ( “Y” ,設定值 ( YV ) ) ) ;
DT << 非線性 ( ÿ ( : ÿ ) , X ( : X ) ,
模型 ( 參數 ( { P1 = 1 , P2 = 0.2 } ,
P1 * 餘弦 ( P2 * : X ) + P2 * 正弦 ( P1 * : X ) ) ) ,
完 ,信心限制 ) ;
該腳本生成以下交互式輸出。

一些其他語言需要一些額外的工作來獲得置信區間,所以很高興看到它只是JMP中的一個選項。