Выполните Гибридную Оптимизацию Используя sbiofit

В этом примере показано, как сконфигурировать sbiofit выполнять гибридную оптимизацию первым выполнением глобального решателя particleswarm, сопровождаемый другой функцией минимизации, fmincon.

Загрузка данных

Загрузите выборочные данные, чтобы соответствовать. Данные хранятся как таблица с переменными ID, Время, CentralConc и PeripheralConc. Эти синтетические данные представляют ход времени плазменных концентраций, измеренных в восьми различных моментах времени и для центральных и для периферийных отсеков после капельного внутривенного введения для трех индивидуумов. Суммарная доза составляет 100 миллиграммов, и мощность дозы составляет 50 миллиграммов/час.

load('data10_32R.mat')
gData = groupedData(data);
gData.Properties.VariableUnits = {'','hour','milligram/liter','milligram/liter'};
sbiotrellis(gData,'ID','Time',{'CentralConc','PeripheralConc'},'Marker','+',...
            'LineStyle','none');

Figure contains 4 axes. Axes 1 with title ID 1 contains 2 objects of type line. These objects represent CentralConc, PeripheralConc. Axes 2 with title ID 3 contains 2 objects of type line. Axes 3 with title ID 2 contains 2 objects of type line. Axes 4 is empty.

Создайте модель

Создайте модель 2D отсека с капельным внутривенным введением.

pkmd                 = PKModelDesign;
pkc1                 = addCompartment(pkmd,'Central');
pkc1.DosingType      = 'Infusion';
pkc1.EliminationType = 'linear-clearance';
pkc1.HasResponseVariable = true;
pkc2                 = addCompartment(pkmd,'Peripheral');
model                = construct(pkmd);
configset            = getconfigset(model);
configset.CompileOptions.UnitConversion = true;
dose             = sbiodose('dose','TargetName','Drug_Central');
dose.StartTime   = 0;
dose.Amount      = 100;
dose.Rate        = 50;
dose.AmountUnits = 'milligram';
dose.TimeUnits   = 'hour';
dose.RateUnits   = 'milligram/hour';
responseMap = {'Drug_Central = CentralConc','Drug_Peripheral = PeripheralConc'};

Задайте параметры, чтобы оценить

Используйте estimatedInfo объект задать предполагаемые параметры.

paramsToEstimate   = {'log(Central)','log(Peripheral)','Q12','Cl_Central'};
estimatedParam     = estimatedInfo(paramsToEstimate,'InitialValue',[1 1 1 1],...
                                   'Bounds',[0 10]);

Задайте опции для гибридной оптимизации

Задайте опции для глобального решателя и гибридного решателя. Поскольку параметры ограничены, убедитесь, что вы используете совместимую гибридную функцию для ограниченной оптимизации, такой как fmincon. Используйте optimset задавать опции для fminsearch. Используйте optimoptions задавать опции для fminunc, patternsearch, и fmincon.

rng('default');
globalMethod = 'particleswarm';
options = optimoptions(globalMethod);
hybridMethod = 'fmincon';
hybridopts = optimoptions(hybridMethod,'Display','none');
options = optimoptions(options,'HybridFcn',{hybridMethod,hybridopts});

Подходящие данные

Оцените параметры модели. Включите ProgressPlot видеть живую обратную связь на состоянии подбора кривой. Первая строка графиков является качественными графиками меры для глобального решателя. Вторые графики строки для гибридной функции. Для получения дополнительной информации см. График Прогресса.

unpooledFit =  sbiofit(model,gData,responseMap,estimatedParam,dose,globalMethod,...
                       options,'Pooled',false,'ProgressPlot',true);

Figure Progress Plot for particleswarm with hybrid function fmincon contains 5 axes and other objects of type uicontrol, uipanel. Axes 1 with title Termination Conditions for particleswarm contains an object of type text. These objects represent Failed, Converged. Axes 2 with title Final Estimated Parameter Values contains an object of type histogram. Axes 3 with title Final Estimated Parameter Values contains an object of type histogram. Axes 4 with title Final Estimated Parameter Values contains an object of type histogram. Axes 5 with title Final Estimated Parameter Values contains an object of type histogram.

Постройте результаты

plot(unpooledFit);

Figure contains 4 axes. Axes 1 with title Group 1 contains 4 objects of type line. These objects represent OBS1 (CentralConc), OBS2 (PeripheralConc), PRED1 (Central.Drug_Central), PRED2 (Peripheral.Drug_Peripheral). Axes 2 with title Group 3 contains 4 objects of type line. Axes 3 with title Group 2 contains 4 objects of type line. Axes 4 is empty.

Смотрите также

Похожие темы