exponenta event banner

D-оптимальные конструкции

Введение в D-оптимальные конструкции

Традиционные экспериментальные конструкции (Full Factorial Design, Fractional Factorial Design и Response Surface Design) подходят для калибровки линейных моделей в экспериментальных установках, где факторы относительно не ограничены в интересующей области. Однако в некоторых случаях модели обязательно нелинейны. В других случаях определенные методы лечения (комбинации уровней факторов) могут быть дорогостоящими или невозможными для измерения. Оптимальные конструкции D - это специфичные для модели конструкции, которые устраняют эти ограничения традиционных конструкций.

D-оптимальная конструкция генерируется алгоритмом итеративного поиска и стремится минимизировать ковариацию оценок параметров для определенной модели. Это эквивалентно максимизации детерминанта D = | XTX |, где X - матрица проектирования членов модели (столбцов), оцениваемых при определенных обработках в пространстве проектирования (строках). В отличие от традиционных конструкций, D-оптимальные конструкции не требуют ортогональных матриц конструкции, и в результате оценки параметров могут быть коррелированы. Оценки параметров также могут быть локальными, но не глобально, D-оптимальными.

Существует несколько функций Toolbox™ статистики и машинного обучения для создания D-оптимальных конструкций:

ФункцияОписание
candexch

Использует алгоритм обмена строками для создания D-оптимальной конструкции с заданным числом запусков для указанной модели и указанного набора кандидатов. Это второй компонент алгоритма, используемого rowexch.

candgen

Создает набор кандидатов для указанной модели. Это первый компонент алгоритма, используемого rowexch.

cordexch

Использует алгоритм обмена координатами для создания D-оптимальной конструкции с заданным количеством прогонов для указанной модели.

daugment

Использует алгоритм обмена координатами для дополнения существующей D-оптимальной конструкции дополнительными прогонами для оценки дополнительных терминов модели.

dcovary

Использует алгоритм обмена координатами для генерации D-оптимальной конструкции с фиксированными ковариатными факторами.

rowexch

Использует алгоритм обмена строками для создания D-оптимальной конструкции с заданным количеством запусков для указанной модели. Алгоритм вызывает candgen а затем candexch. (Звонок candexch отдельно, чтобы указать набор кандидатов.)

В следующих разделах объясняется, как использовать эти функции для создания D-оптимальных конструкций.

Примечание

Функция rsmdemo генерирует смоделированные данные для экспериментальных настроек, заданных либо пользователем, либо D-оптимальным проектом, сгенерированным cordexch. Он использует rstool для визуализации моделей поверхности отклика, соответствующих данным, и использует nlintool интерфейс для визуализации нелинейной модели, соответствующей данным.

Создание D-оптимальных конструкций

Два алгоритма Statistics и Machine Learning Toolbox создают оптимальные для D конструкции:

  • cordexch функция использует алгоритм обмена координатами

  • rowexch функция использует алгоритм обмена строками

Оба cordexch и rowexch использовать алгоритмы итеративного поиска. Они работают путем инкрементного изменения исходной матрицы X конструкции для увеличения D = | XTX | на каждом шаге. В обоих алгоритмах существует случайность, встроенная в выбор начальной конструкции и в выбор инкрементных изменений. В результате оба алгоритма могут возвращаться локально, но не глобально, D-оптимальными конструкциями. Запустите каждый алгоритм несколько раз и выберите наилучший результат для окончательной разработки. Обе функции имеют 'tries' параметр, который автоматизирует это повторение и сравнение.

На каждом этапе алгоритм обмена строками обменивается всей строкой X со строкой из матрицы проектирования C, оцениваемой в предполагаемом наборе возможных обработок. rowexch функция автоматически генерирует C, соответствующий указанной модели, работая в два шага путем вызова candgen и candexch функции в последовательности. Предоставьте собственный C, позвонив candexch непосредственно. В любом случае, если C является большим, его статическое присутствие в памяти может повлиять на вычисление.

Алгоритм обмена координатами, напротив, не использует набор кандидатов. (Вернее, набор кандидатов - это все пространство проектирования.) На каждом шаге алгоритм обмена координатами обменивается одним элементом X с новым элементом, оцениваемым в соседней точке расчетного пространства. Отсутствие набора кандидатов снижает требования к памяти, но меньший масштаб поиска означает, что алгоритм обмена координатами с большей вероятностью будет захвачен локальным минимумом, чем алгоритм обмена строками.

Например, предположим, что проект должен оценивать параметры в следующей семифакторной модели взаимодействия:

y = β0 + β1x + 1β2x + 2β3x + 3β12xx1 + 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. Линейные члены (1, 2, 3)

  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

Увеличение D - оптимальные конструкции

На практике можно добавить прогоны к завершенному эксперименту, чтобы узнать больше о процессе и оценить дополнительные коэффициенты модели. 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