Обмен координатами
dCE = cordexch(nfactors,nruns)
[dCE,X] = cordexch(nfactors,nruns)
[dCE,X] = cordexch(nfactors,nruns,'model
')
[dCE,X] = cordexch(...,'name
',value
)
dCE = cordexch(nfactors,nruns)
использует алгоритм координатного обмена, чтобы сгенерировать D -оптимальный проект dCE
с nruns
запуски (строки dCE
) для линейной аддитивной модели с nfactors
факторы (столбцы dCE
). Модель включает в себя постоянный член.
[dCE,X] = cordexch(nfactors,nruns)
также возвращает связанную матрицу проекта X
, столбцы которого являются терминами модели, оцениваемыми при каждом лечении (строка) dCE
.
[dCE,X] = cordexch(nfactors,nruns,'
использует линейную регрессионую модель, заданную в model
')model
. model
является одним из следующих:
'linear'
- Постоянные и линейные условия. Это значение по умолчанию.
'interaction'
- Константа, линейная и условия взаимодействия
'quadratic'
- Константа, линейный, взаимодействие и квадратные условия
'purequadratic'
- Постоянные, линейные и квадратные условия
Порядок столбцов X
для полной квадратичной модели с n терминами:
Постоянный член
Линейные условия в порядок 1 , 2,..., n
Условия взаимодействия по порядку (1, 2), (1, 3),..., (1, n), (2, 3),..., (n - 1, n)
Квадратные условия в порядок 1 , 2,..., n
Другие модели используют подмножество этих терминов в том же порядке.
Другой способ model
может быть матрицей, задающей полиномиальные условия произвольного порядка. В этом случае model
должен иметь по одному столбцу для каждого коэффициента и по одной строке для каждого члена в модели. Значения в любой строке model
являются степенями для факторов в столбцах. Для примера, если в модели есть факторы X1
, X2
, и X3
, затем строка [0 1 2]
в model
задает термин (X1.^0).*(X2.^1).*(X3.^2)
. Строка всех нулей в model
задает постоянный термин, который может быть опущен.
[dCE,X] = cordexch(...,'
задает одну или несколько необязательных пар имя/значение для проекта. Действительные параметры и их значения перечислены в следующей таблице. Задайте name
',value
)name
внутри одинарные кавычки.
имя | Значение |
---|---|
bounds | Нижняя и верхняя границы для каждого фактора, заданные как |
categorical | Индексы категориальных предикторов. |
display | Либо |
excludefun | Указатель на функцию, которая исключает нежелательные запусков. Если функция f, она должна поддерживать синтаксис b = f (S), где S является матрицей обработок с |
init | Первоначальный проект как |
levels | Вектор количества уровней для каждого фактора. Не используется, когда |
maxiter | Максимальное количество итераций. Значение по умолчанию является |
tries | Количество попыток сгенерировать проект из новой начальной точки. Алгоритм использует случайные точки для каждой попытки, кроме, возможно, первой. Значение по умолчанию является |
options | Структура, которая задает, запускать ли параллельно, и задает случайный поток или потоки. Для этой опции требуется Parallel Computing Toolbox™. Создайте
|
Предположим, что вы хотите, чтобы проект оценил параметры в следующей трехфакторной, семитермовой модели взаимодействия:
Использовать 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
для соответствия модели, как описано в Linear Regression, данным отклика, измеренным в проектных точках в dCE
.
Оба cordexch
и rowexch
использовать итерационные алгоритмы поиска. Они работают путем пошагового изменения начальной матрицы проекта X чтобы увеличить D = |<reservedrangesplaceholder0>TX | на каждом шаге. В обоих алгоритмах существует случайность, встроенная в выбор исходного проекта и в выбор инкрементных изменений. В результате оба алгоритма могут вернуться локально, но не глобально, D -оптимальные проекты. Запустите каждый алгоритм несколько раз и выберите лучший результат для вашего окончательного проекта. Обе функции имеют 'tries'
параметр, который автоматизирует это повторение и сравнение.
В отличие от алгоритма обмена строками, используемого rowexch
, cordexch
не использует набор кандидатов. (Точнее, набор кандидатов является всем пространством проекта.) На каждом шаге алгоритм координат-обмена обменивается одним элементом X с новым элементом, оцениваемым в соседней точке проекта пространства. Отсутствие набора кандидатов уменьшает требования к памяти, но меньшая шкала поиска означает, что алгоритм координатного обмена с большей вероятностью попадает в ловушку локального минимума.