exponenta event banner

rowexch

Обмен строк

Синтаксис

dRE = rowexch(nfactors,nruns)
[dRE,X] = rowexch(nfactors,nruns)
[dRE,X] = rowexch(nfactors,nruns,model)
[dRE,X] = rowexch(...,param1,val1,param2,val2,...)

Описание

dRE = rowexch(nfactors,nruns) использует алгоритм обмена строками для формирования D-оптимальной конструкции dRE с nruns runs (строки dRE) для линейной аддитивной модели с nfactors коэффициенты (столбцы dRE). Модель включает постоянный член.

[dRE,X] = rowexch(nfactors,nruns) также возвращает связанную матрицу проектирования X, чьи столбцы являются модельными терминами, оцениваемыми при каждой обработке (строке) dRE.

[dRE,X] = rowexch(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 указывает постоянный член, который может быть опущен.

[dRE,X] = rowexch(...,param1,val1,param2,val2,...) задает дополнительные пары параметр/значение для проекта. Допустимые параметры и их значения перечислены в следующей таблице.

ПараметрСтоимость
'bounds'

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

'categorical'

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

'display'

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

'excludefun'

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

'init'

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

'levels'

Вектор количества уровней для каждого фактора.

'maxiter'

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

options

Структура, определяющая параллельный запуск и определяющая случайный поток или потоки. Создать options структура с statset. Для этого параметра требуется Toolbox™ параллельных вычислений. Поля опций:

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

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

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

    • UseParallel является true

    • UseSubstreams является false

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

'tries'

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

Примеры

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

y = β0 + β1x + 1β2x + 2β3x + 3β12xx1 + 2β13xx1 + 3β23xx2 + 3

Использовать rowexch для создания D-оптимальной конструкции с семью прогонами:

nfactors = 3;
nruns = 7;
[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

Столбцы матрицы проектирования X являются модельными терминами, оцениваемыми в каждой строке конструкции dRE. Члены появляются в порядке слева направо: постоянный член, линейные члены (1, 2, 3), члены взаимодействия (12, 13, 23). Использовать X для соответствия модели, как описано в разделе «Линейная регрессия», данным отклика, измеренным в точках проектирования в dRE.

Алгоритмы

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

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

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

См. также

| |

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