Ортоплан в R (фракционный факторный дизайн)

Я пытаюсь создать факторный дизайн в R для совместного анализа (например, SPSS ортоплан).

Поиск среди прошлых вопросов Stackoverflow, я нашел этот предыдущий ответ:

Как создать фракционный факторный дизайн в R?

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

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

I've tried modifying the code proposed as an answer to the question Как создать фракционный факторный дизайн в R? in such a way:

f.design <- gen.factorial(levels.design,factors="all")

но результат не сбалансирован и не ортогонален. Более того, вы должны определить точное количество проб в функции optFederov. В этом ответе предлагаемое количество испытаний было:

nTrials=sum(levels.design) 

но для того, чтобы иметь сбалансированное решение в дизайне с номинальными факторами, я ожидаю, что оно должно быть по крайней мере:

nTrials=prod(unique(levels.design))

В любом случае есть пакет, который мог бы решить такую ​​проблему, это пакет FrF2 проф. Ульрике Громпинг, но он обрабатывает только дихотомические переменные, и я не могу понять, как его использовать для решения моей проблемы.

3
nl ja de

1 ответы

Проведя некоторое время на самостоятельный ответ, я могу поделиться тем, что нашел:

да, вы можете создавать ортогональные конструкции в R, аналогично тому, как это происходит в ортоплане SPSS.

Просто определите переменную nlevels как вектор, содержащий уровни ваших переменных.

Затем вам нужно позвонить:

<Код> библиотека (DoE.base)

fract.design <- oa.design(nlevels=levels.design)

Функция будет искать в библиотеку ортогональных конструкций (точно Kuhfeld W., 2009, Orthogonal array)

Если нет подходящей доступной ортогональной конструкции, функция просто вернет полный факторный дизайн (и поэтому у вас не будет другого выбора в R, но для вызова функции optFederov, как объяснялось выше в моем вопросе).

В качестве примера попробуйте:

<Код> oa.design (NLEVELS = с (2,2,3))

<Код> oa.design (NLEVELS = с (2,2,4))

У первого нет решения (так что вы получите полный факториал), но у второго есть решение, 8 карт, ортогональный и сбалансированный дизайн.

4
добавлено