Сгенерируйте параметры путем выборки ковариационной модели (требует программного обеспечения Statistics and Machine Learning Toolbox),
Этот пример использует данные, собранные по 59 недоношенным детям, данным фенобарбитал в течение первых 16 дней после рождения. Каждый младенец получил начальную дозу, сопровождаемую одной или несколькими дозами поддержки внутривенным администрированием шарика. В общей сложности между 1 и 6 концентрациями измерения получались от каждого младенца время от времени кроме времен дозы для в общей сложности 155 измерений. Младенческие веса и баллы APGAR (мера новорожденного здоровья) были также зарегистрированы. Данные были описаны в [1], исследование, финансируемое NIH/NIBIB, предоставляют P41-EB01975.
Загрузите данные.
load pheno.mat ds
Визуализируйте данные.
t = sbiotrellis(ds,'ID','TIME','CONC','marker','o','markerfacecolor',[.7 .7 .7],'markeredgecolor','r','linestyle','none'); t.plottitle = 'States versus Time';

Создайте модель PK с одним отсеком с болюсным введением и линейным разрешением, чтобы смоделировать такие данные.
pkmd = PKModelDesign; pkmd.addCompartment('Central','DosingType','Bolus','EliminationType','linear-clearance',... 'HasResponseVariable',true,'HasLag',false); onecomp = pkmd.construct;
Предположим, что существует корреляция между объемом центрального отсека (Central) и вес младенцев. Можно задать это ковариационное параметром отношение с помощью ковариационной модели, которая может быть описана как
,
где, для каждого ith младенца, V объем, θs (thetas) являются зафиксированными эффектами, η (ЭТА) представляет случайные эффекты и WEIGHT ковариант.
covM = CovariateModel;
covM.Expression = {'Central = exp(theta1+theta2*WEIGHT+eta1)'};Задайте фиксированные и случайные эффекты. Имена столбцов каждой таблицы должны иметь имена фиксированных эффектов и случайных эффектов, соответственно.
thetas = table(1.4,0.05,'VariableNames',{'theta1','theta2'}); eta1 = table(0.2,'VariableNames',{'eta1'});
Измените метку ID группы в GROUP как требуется sbiosampleparameters функция.
ds.Properties.VariableNames{'ID'} = 'GROUP';Сгенерируйте значения параметров для объемов центральных отсеков, Центральных на основе ковариационной модели для всех младенцев в наборе данных.
phi = sbiosampleparameters(covM.Expression,thetas,eta1,ds);
Можно затем симулировать модель с помощью произведенных значений параметров. Для удобства используйте подобный функции интерфейс, обеспеченный объектом SimFunction.
Во-первых, создайте объект SimFunction с помощью createSimFunction метода, задав объем (Центральный) как параметр и концентрация препарата в отсеке (Drug_Central) как выход объекта SimFunction и дозируемые разновидности.
f = createSimFunction(onecomp,covM.ParameterNames,'Drug_Central','Drug_Central');
Набор данных ds содержит информацию о дозировании для каждого младенца, и объект groupedData обеспечивает удобный способ извлечь такую информацию о дозировании. Преобразуйте ds в объект groupedData и извлечение, дозирующее информацию.
grpData = groupedData(ds);
doses = createDoses(grpData,'DOSE');Симулируйте модель с помощью произведенных значений параметров от phi и извлеченной информации о дозировании каждого младенца, и постройте результаты. ith запускаются, использует ith значение параметров в phi и информации о дозировании ith младенца.
t = sbiotrellis(f(phi,200,doses.getTable),[],'TIME','Drug_Central'); % Resize the figure. t.hFig.Position(:) = [100 100 1280 800];

covexpr — Ковариационные выраженияКовариационные выражения, заданные как массив ячеек из символьных векторов или вектор строки, который задает ковариационные параметром отношения.
Если имя компонента модели или ковариационное имя не являются допустимым именем переменной MATLAB®, окружите его квадратными скобками при обращении к нему в выражении. Например, если имя разновидности является полимеразой DNA +, запишите [DNA polymerase+]. Если само ковариационное имя содержит квадратные скобки, вы не можете использовать его в выражении.
Смотрите CovariateModel object узнать больше о ковариационных выражениях.
thetas — Фиксированные эффектыФиксированные эффекты, заданные как таблица, набор данных или числовой вектор, содержащий значения для фиксированных параметров эффекта, задали в ковариационных выражениях covexpr. Фиксированные названия параметра эффекта должны запуститься с 'theta'.
Если thetas таблица, thetas.Properties.VariableNames должен совпадать с именами фиксированных эффектов.
Например, предположите, что у вас есть три thetas: thetaOne = 0.1, theta2 = 0.2, и theta3 = 0.3. Можно составить соответствующую таблицу.
thetas = table(0.1,0.2,0.3);
thetas.Properties.VariableNames = {'thetaOne','theta2','theta3'}thetas =
1×3 table
thetaOne theta2 theta3
________ ______ ______
0.1 0.2 0.3 Если thetas набор данных, thetas.Properties.VarNames должен совпадать с именами фиксированных эффектов.
Если thetas числовой вектор, порядок значений в векторе должен быть тем же возрастающим лексикографическим порядком ASCII как фиксированные имена эффекта.
Используйте sort функционируйте, чтобы отсортировать массив ячеек из символьных векторов, чтобы видеть порядок.
sort({'thetaOne','theta2','theta3'})ans =
1×3 cell array
{'theta2'} {'theta3'} {'thetaOne'}Затем задайте значение каждого theta в том же порядке.
thetas = [0.2 0.3 0.1];
omega — Ковариационная матрица случайных эффектовКовариационная матрица случайных эффектов, заданных как таблица, набор данных или матрица. Случайные названия параметра эффекта должны запуститься с 'eta'.
Если omega таблица, omega.Properties.VariableNames должен совпадать с именами случайных эффектов. Определение имен строки (RowNames) является дополнительным, но если вы делаете, они должны также совпадать с именами случайных эффектов.
Предположим, что вы хотите задать диагональную ковариационную матрицу тремя случайными параметрами эффекта eta1, eta2, и eta3 со значениями 0.1, 0.2, и 0.3, соответственно.
Можно создать соответствующую таблицу.
eta1 = [0.1;0;0]; eta2 = [0;0.2;0]; eta3 = [0;0;0.3]; omega = table(eta1,eta2,eta3,'VariableNames',{'eta1','eta2','eta3'})
omega =
3×3 table
eta1 eta2 eta3
____ ____ ____
0.1 0 0
0 0.2 0
0 0 0.3 Если omega набор данных, omega.Properties.VarNames должен совпадать с именами случайных эффектов. Определение имен строки (ObsNames) является дополнительным, но если вы делаете, они должны также совпадать с именами случайных эффектов.
Если omega матрица, строки и столбцы должны иметь тот же возрастающий лексикографический порядок ASCII как случайные имена эффекта.
Используйте sort функционируйте, чтобы отсортировать массив ячеек из символьных векторов, чтобы видеть порядок.
sort({'eta1','eta2','eta3'})ans =
1×3 cell array
{'eta1'} {'eta2'} {'eta3'}ds — Ковариационные данныеКовариационные данные, заданные как набор данных или таблица, содержащая ковариационные данные для всех групп.
ds должен иметь столбец под названием 'Group' или 'GROUP' определение меток группы, а также столбца каждый для всех ковариантов используется в ковариационной модели. Имена столбцов должны совпадать с именами соответствующих ковариантов, используемых в ковариационных выражениях.
n — Количество строк в phiКоличество строк в phi, заданный как скаляр.
covmodel — Ковариационная модельКовариационная модель, возвращенная как CovariateModel object который представляет модель, заданную covexpr.
Предупреждает запуск в R2018b
Поддержка определения числового вектора для фиксированных эффектов (thetas) или матрица для ковариационной матрицы случайных эффектов (omega) будет удален в будущем релизе. Используйте таблицу вместо этого.
[1] Грэзела младший, T.H., Донн, S.M. (1985) Неонатальная фармакокинетика населения фенобарбитала выведена из стандартных клинических данных. Фармакол Dev Там. 8 (6), 374–83.
CovariateModel object | SimFunction object | createSimFunction | sbiosampleerror
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.