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 степени для факторов в столбцах. Например, если модель имеет факторы X1x2 , и X3, затем строка [0 1 2] в model задает термин (X1.^0).*(X2.^1).*(X3.^2). Строка всех нулей в model задает постоянный термин, который может быть не использован.

[dCE,X] = cordexch(...,'name',value) задает одну или несколько дополнительных пар имя/значение для проекта. Допустимые параметры и их значения перечислены в следующей таблице. Задайте name в одинарных кавычках.

имяЗначение
bounds

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

categorical

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

display

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

excludefun

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

init

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

levels

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

maxiter

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

tries

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

options

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

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

  • UseParallel — Установите на true вычислить параллельно. Значением по умолчанию является false.

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

  • StreamsRandStream объектный массив или массив ячеек таких объектов. Если вы не задаете 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