Традиционные экспериментальные конструкции (Full Factorial Design, Fractional Factorial Design и Response Surface Design) подходят для калибровки линейных моделей в экспериментальных установках, где факторы относительно не ограничены в интересующей области. Однако в некоторых случаях модели обязательно нелинейны. В других случаях определенные методы лечения (комбинации уровней факторов) могут быть дорогостоящими или невозможными для измерения. Оптимальные конструкции D - это специфичные для модели конструкции, которые устраняют эти ограничения традиционных конструкций.
D-оптимальная конструкция генерируется алгоритмом итеративного поиска и стремится минимизировать ковариацию оценок параметров для определенной модели. Это эквивалентно максимизации детерминанта D = | XTX |, где X - матрица проектирования членов модели (столбцов), оцениваемых при определенных обработках в пространстве проектирования (строках). В отличие от традиционных конструкций, D-оптимальные конструкции не требуют ортогональных матриц конструкции, и в результате оценки параметров могут быть коррелированы. Оценки параметров также могут быть локальными, но не глобально, D-оптимальными.
Существует несколько функций Toolbox™ статистики и машинного обучения для создания D-оптимальных конструкций:
| Функция | Описание |
|---|---|
candexch | Использует алгоритм обмена строками для создания D-оптимальной конструкции с заданным числом запусков для указанной модели и указанного набора кандидатов. Это второй компонент алгоритма, используемого |
candgen | Создает набор кандидатов для указанной модели. Это первый компонент алгоритма, используемого |
cordexch | Использует алгоритм обмена координатами для создания D-оптимальной конструкции с заданным количеством прогонов для указанной модели. |
daugment | Использует алгоритм обмена координатами для дополнения существующей D-оптимальной конструкции дополнительными прогонами для оценки дополнительных терминов модели. |
dcovary | Использует алгоритм обмена координатами для генерации D-оптимальной конструкции с фиксированными ковариатными факторами. |
rowexch | Использует алгоритм обмена строками для создания D-оптимальной конструкции с заданным количеством запусков для указанной модели. Алгоритм вызывает |
В следующих разделах объясняется, как использовать эти функции для создания D-оптимальных конструкций.
Примечание
Функция rsmdemo генерирует смоделированные данные для экспериментальных настроек, заданных либо пользователем, либо D-оптимальным проектом, сгенерированным cordexch. Он использует rstool для визуализации моделей поверхности отклика, соответствующих данным, и использует nlintool интерфейс для визуализации нелинейной модели, соответствующей данным.
Два алгоритма Statistics и Machine Learning Toolbox создают оптимальные для D конструкции:
Оба cordexch и rowexch использовать алгоритмы итеративного поиска. Они работают путем инкрементного изменения исходной матрицы X конструкции для увеличения D = | XTX | на каждом шаге. В обоих алгоритмах существует случайность, встроенная в выбор начальной конструкции и в выбор инкрементных изменений. В результате оба алгоритма могут возвращаться локально, но не глобально, D-оптимальными конструкциями. Запустите каждый алгоритм несколько раз и выберите наилучший результат для окончательной разработки. Обе функции имеют 'tries' параметр, который автоматизирует это повторение и сравнение.
На каждом этапе алгоритм обмена строками обменивается всей строкой X со строкой из матрицы проектирования C, оцениваемой в предполагаемом наборе возможных обработок. rowexch функция автоматически генерирует C, соответствующий указанной модели, работая в два шага путем вызова candgen и candexch функции в последовательности. Предоставьте собственный C, позвонив candexch непосредственно. В любом случае, если C является большим, его статическое присутствие в памяти может повлиять на вычисление.
Алгоритм обмена координатами, напротив, не использует набор кандидатов. (Вернее, набор кандидатов - это все пространство проектирования.) На каждом шаге алгоритм обмена координатами обменивается одним элементом X с новым элементом, оцениваемым в соседней точке расчетного пространства. Отсутствие набора кандидатов снижает требования к памяти, но меньший масштаб поиска означает, что алгоритм обмена координатами с большей вероятностью будет захвачен локальным минимумом, чем алгоритм обмена строками.
Например, предположим, что проект должен оценивать параметры в следующей семифакторной модели взаимодействия:
2β13xx1 + 3β23xx2 + 3
Использовать cordexch для создания D-оптимальной конструкции с семью прогонами:
nfactors = 3;
nruns = 7;
[dCE,X] = cordexch(nfactors,nruns,'interaction','tries',10)
dCE =
-1 1 1
-1 -1 -1
1 1 1
-1 1 -1
1 -1 1
1 -1 -1
-1 -1 1
X =
1 -1 1 1 -1 -1 1
1 -1 -1 -1 1 1 1
1 1 1 1 1 1 1
1 -1 1 -1 -1 1 -1
1 1 -1 1 -1 1 -1
1 1 -1 -1 -1 -1 1
1 -1 -1 1 1 -1 -1Столбцы матрицы проектирования X являются модельными терминами, оцениваемыми в каждой строке конструкции dCE. Термины отображаются в порядке слева направо:
Постоянный термин
Линейные члены (1, 2, 3)
Условия взаимодействия (12, 13, 23)
Использовать X в модели линейной регрессии соответствует данным отклика, измеренным в точках проектирования в dCE.
Использовать rowexch аналогичным образом для создания эквивалентной конструкции:
[dRE,X] = rowexch(nfactors,nruns,'interaction','tries',10)
dRE =
-1 -1 1
1 -1 1
1 -1 -1
1 1 1
-1 -1 -1
-1 1 -1
-1 1 1
X =
1 -1 -1 1 1 -1 -1
1 1 -1 1 -1 1 -1
1 1 -1 -1 -1 -1 1
1 1 1 1 1 1 1
1 -1 -1 -1 1 1 1
1 -1 1 -1 -1 1 -1
1 -1 1 1 -1 -1 1На практике можно добавить прогоны к завершенному эксперименту, чтобы узнать больше о процессе и оценить дополнительные коэффициенты модели. daugment функция использует алгоритм обмена координатами для расширения существующей D-оптимальной конструкции.
Например, следующая восьмиэтапная конструкция достаточна для оценки основных эффектов в четырехфакторной модели:
dCEmain = cordexch(4,8)
dCEmain =
1 -1 -1 1
-1 -1 1 1
-1 1 -1 1
1 1 1 -1
1 1 1 1
-1 1 -1 -1
1 -1 -1 -1
-1 -1 1 -1Чтобы оценить шесть терминов взаимодействия в модели, дополните конструкцию восемью дополнительными прогонами:
dCEinteraction = daugment(dCEmain,8,'interaction')
dCEinteraction =
1 -1 -1 1
-1 -1 1 1
-1 1 -1 1
1 1 1 -1
1 1 1 1
-1 1 -1 -1
1 -1 -1 -1
-1 -1 1 -1
-1 1 1 1
-1 -1 -1 -1
1 -1 1 -1
1 1 -1 1
-1 1 1 -1
1 1 -1 -1
1 -1 1 1
1 1 1 -1Увеличенный дизайн является полным факториалом, с первоначальными восемью прогонами в первых восьми рядах.
'start' параметра candexch функция обеспечивает ту же функциональность, что и daugment, но использует алгоритм обмена строками, а не алгоритм обмена координатами.
Во многих экспериментальных установках определенные факторы и их ковариаты ограничены фиксированным набором уровней или комбинациями уровней. Их нельзя изменять при поиске оптимальной конструкции. dcovary функция позволяет задать фиксированные ковариатные коэффициенты в алгоритме обмена координатами.
Например, предположим, что проект должен оценивать параметры в трехфакторной линейной аддитивной модели с восемью прогонами, которые обязательно происходят в разное время. Если процесс испытывает временной линейный дрейф, может потребоваться включить время выполнения в качестве переменной в модель. Изготовить конструкцию следующим образом:
time = linspace(-1,1,8)';
[dCV,X] = dcovary(3,time,'linear')
dCV =
-1.0000 1.0000 1.0000 -1.0000
1.0000 -1.0000 -1.0000 -0.7143
-1.0000 -1.0000 -1.0000 -0.4286
1.0000 -1.0000 1.0000 -0.1429
1.0000 1.0000 -1.0000 0.1429
-1.0000 1.0000 -1.0000 0.4286
1.0000 1.0000 1.0000 0.7143
-1.0000 -1.0000 1.0000 1.0000
X =
1.0000 -1.0000 1.0000 1.0000 -1.0000
1.0000 1.0000 -1.0000 -1.0000 -0.7143
1.0000 -1.0000 -1.0000 -1.0000 -0.4286
1.0000 1.0000 -1.0000 1.0000 -0.1429
1.0000 1.0000 1.0000 -1.0000 0.1429
1.0000 -1.0000 1.0000 -1.0000 0.4286
1.0000 1.0000 1.0000 1.0000 0.7143
1.0000 -1.0000 -1.0000 1.0000 1.0000Вектор столбца time - фиксированный коэффициент, нормированный к значениям между ±1. Количество строк в фиксированном коэффициенте определяет количество прогонов в конструкции. Результирующая конструкция dCV дает настройки коэффициентов для трех контролируемых коэффициентов модели в каждый момент времени.
Категориальные факторы принимают значения в дискретном наборе уровней. Оба cordexch и rowexch иметь 'categorical' параметр, позволяющий задать индексы категориальных факторов и 'levels' параметр, позволяющий задать количество уровней для каждого коэффициента.
Например, следующая восьмипроходная конструкция предназначена для линейной аддитивной модели с пятью факторами, в которой конечный коэффициент категоричен с тремя уровнями:
dCEcat = cordexch(5,8,'linear','categorical',5,'levels',3)
dCEcat =
-1 -1 1 1 2
-1 -1 -1 -1 3
1 1 1 1 3
1 1 -1 -1 2
1 -1 -1 1 3
-1 1 -1 1 1
-1 1 1 -1 3
1 -1 1 -1 1Алгоритм обмена строками обменивается строками исходной матрицы X проектирования со строками из матрицы C проектирования, оцененными в возможном наборе возможных обработок. rowexch функция автоматически генерирует C, соответствующий указанной модели, работая в два шага путем вызова candgen и candexch функции в последовательности. Предоставьте собственный C, позвонив candexch непосредственно.
Например, следующие виды использования: rowexch для создания пятиэтапной конструкции для двухфакторной чистой квадратичной модели с использованием набора кандидатов, который производится внутри:
dRE1 = rowexch(2,5,'purequadratic','tries',10)
dRE1 =
-1 1
0 0
1 -1
1 0
1 1То же самое можно сделать с помощью candgen и candexch последовательно:
[dC,C] = candgen(2,'purequadratic') % Candidate set, C
dC =
-1 -1
0 -1
1 -1
-1 0
0 0
1 0
-1 1
0 1
1 1
C =
1 -1 -1 1 1
1 0 -1 0 1
1 1 -1 1 1
1 -1 0 1 0
1 0 0 0 0
1 1 0 1 0
1 -1 1 1 1
1 0 1 0 1
1 1 1 1 1
treatments = candexch(C,5,'tries',10) % D-opt subset
treatments =
2
1
7
3
4
dRE2 = dC(treatments,:) % Display design
dRE2 =
0 -1
-1 -1
-1 1
1 -1
-1 0Вы можете заменить C в этом примере с конструктивной матрицей, вычисленной в собственном наборе кандидатов. Например, предположим, что эксперимент ограничен таким образом, что два фактора не могут иметь экстремальные настройки одновременно. Ниже приведен набор ограниченных кандидатов:
constraint = sum(abs(dC),2) < 2; % Feasible treatments
my_dC = dC(constraint,:)
my_dC =
0 -1
-1 0
0 0
1 0
0 1Используйте x2fx функция для преобразования набора кандидатов в матрицу конструкции:
my_C = x2fx(my_dC,'purequadratic')
my_C =
1 0 -1 0 1
1 -1 0 1 0
1 0 0 0 0
1 1 0 1 0
1 0 1 0 1Найдите требуемый дизайн таким же образом:
my_treatments = candexch(my_C,5,'tries',10) % D-opt subset
my_treatments =
2
4
5
1
3
my_dRE = my_dC(my_treatments,:) % Display design
my_dRE =
-1 0
1 0
0 1
0 -1
0 0