Hi @eugur ,
If you're not using the group term, then the parameter bounds that are set are being set globally for all 1000+ samples, (also the reason grouping doesn't work in Non-linear is because the group itself has to be integrated into the prediction formula you are feeding NL with). The script you have should work, but you don't need to run 'Go' on the second line, that's why the parameter bounds aren't being added because the platform is running before anything can be changed. Here's an example which then uses the 'combined data table' tool to get a singular report to easily see how the values have changed in each sample
dt=current data table();
id_no=N Items(Associative Array(dt:Batch)<<get keys;);//grab how many samples exist that you want to individually run NL on
dt<<New Column("BExp 5P Formula",Formula(
Parameter(
{a = 0, b = 0, c = 0, d = 0, f = 0},
a + b * Exp( -c * :Day ) + d * Exp( -(f * :Day) )
)
));
NLplatform=DT<<Non Linear(
Y (:Rel Potency),
X (:"BExp 5P Formula"n),
By (:Batch)
);
NLplatform<<iteration limit(1000);
NLplatform<<
Parameter Bounds( a( 10, 30 ), b(1,9), c(4,10), d(10,200),f(6,1000) );
NLPlatform<<Go;
NLPlatform<<Finish;
//Instead of using Get Estimates, have a combined table appear that is more organised
Estimate_dt=report(NLPlatform[1])["Solution",Tablebox(2)]<<make combined data table; //use this to grab all of the estimates into one data table, you need to refer to any of the sub-reports created with the 'by' variable for NLPlatform [x] where x is the number of a report
“All models are wrong, but some are useful”