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) верен, если метод должен исключить i th строка 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

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

Примеры

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

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, чтобы соответствовать модели, как описано в Линейной регрессии, к данным об ответе, измеренным в точках проекта в dCE.

Алгоритмы

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

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

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

Смотрите также

| |

Представлено до R2006a