概述:
如何檢查非線性擬合是否成功?
(真實數據並不總是收斂,可能需要人工審查自動化/測試/產品問題。)
細節:
我想在非線性擬合無法收斂後編寫響應腳本。如果擬合失敗,我需要以其他方式處理,和/或最終標記以供人工審查。 (我正在對總體進行抽樣,然後對每個部分進行非線性擬合。一般來說,如果收斂失敗,那是某處出現了測試問題;我實際上並不想放鬆收斂標準。)
(“失敗”消息:“失敗:無法降低目標函數”)

僅從數值導數修改腳本(幫助>腳本索引>“<<非線性”)
(當前運行 JMP 15.2.1)
Names Default To Here( 1 );
dt = Open(
"$SAMPLE_DATA/Nonlinear Examples/US Population.jmp"
);
// Random, intentionally divergent, formula on this dataset
dt << New Column( "Random", Numeric, Formula( Random LogLogistic(5) ) );
dt << New Column( "FancyPredictionFormula",
Numeric,
Continuous,
Formula(
Parameter(
{Rth0 = 735, n = 0.5},
(:year / :pop) * ((1 - ((n - 1) * :pop * Rth0) / (:year
* (300 / :year) ^ n)) ^ (-1 / (n - 1)) - 1)
)
)
);
nonlinear = dt << Nonlinear(
Y( :Name( "Random" ) ),
X( :Name("FancyPredictionFormula") ),
Expand Intermediate Formulas( 1 ),
Numeric Derivatives Only( 1 ),
QuasiNewton SR1,
Interation Limit(50),
Finish,
Plot( 0 ),
Confidence Limits,
Save Estimates
);
// How to check if nonlinear fit succeeded?
理想的。
如果 Nonlinear fit 平台在某處返回一個 bool 狀態變量指示成功或失敗,那將是驗證成功的理想方法,我認為。
備選方案 1。
我還可以對數據進行製表或匯總,看看是否所有:姓名( “花式預測公式” )值為零。(如果擬合失敗,值似乎為 0)。
備選方案 2。
可能有一種方法可以檢查 XML 並讀取“失敗”消息。
感謝您的時間和考慮。
-奧布里