cordexch

Обмен координатами

Синтаксис

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. Линейные условия в порядок 1 , 2,..., n

  3. Условия взаимодействия по порядку (1, 2), (1, 3),..., (1, n), (2, 3),..., (n - 1, n)

  4. Квадратные условия в порядок 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

Нижняя и верхняя границы для каждого фактора, заданные как 2-by- nfactors матрица. В качестве альтернативы это значение может быть массивом ячеек, содержащим nfactors элементы, каждый элемент, задающий вектор допустимых значений для соответствующего фактора.

categorical

Индексы категориальных предикторов.

display

Либо 'on' или 'off' для управления отображением счетчика итерации. Значение по умолчанию является 'on'.

excludefun

Указатель на функцию, которая исключает нежелательные запусков. Если функция f, она должна поддерживать синтаксис b = f (S), где S является матрицей обработок с nfactors столбцы и b являются вектором логических значений с одинаковым числом строк, как и S. b (i) имеет значение true, если метод должен исключить i третью строку S.

init

Первоначальный проект как nruns-by- nfactors матрица. По умолчанию это случайным образом выбранный набор точек.

levels

Вектор количества уровней для каждого фактора. Не используется, когда bounds задается как массив ячеек.

maxiter

Максимальное количество итераций. Значение по умолчанию является 10.

tries

Количество попыток сгенерировать проект из новой начальной точки. Алгоритм использует случайные точки для каждой попытки, кроме, возможно, первой. Значение по умолчанию является 1.

options

Структура, которая задает, запускать ли параллельно, и задает случайный поток или потоки. Для этой опции требуется Parallel Computing Toolbox™.

Создайте options структура с statset. Структурные поля:

  • UseParallel - Установите значение true для параллельного вычисления. По умолчанию это false.

  • UseSubstreams - Установите значение true для параллельного вычисления воспроизводимым способом. По умолчанию это false. Чтобы вычислить воспроизводимо, установите Streams к типу, разрешающему субпотоки: 'mlfg6331_64' или 'mrg32k3a'.

  • Streams - A RandStream объект или массив ячеек таких объектов. Если вы не задаете Streams, cordexch использует поток по умолчанию или потоки. Если вы принимаете решение задать Streams, используйте один объект, кроме случая

    • UseParallel является true

    • UseSubstreams является false

    В этом случае используйте массив ячеек того же размера, что и пул Parallel.

Примеры

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

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, 3), условия взаимодействия (12, 13, 23). Использование X для соответствия модели, как описано в Linear Regression, данным отклика, измеренным в проектных точках в dCE.

Алгоритмы

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

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

Расширенные возможности

См. также

| |

Представлено до R2006a
Для просмотра документации необходимо авторизоваться на сайте