Я использовал пакет AlgDesign
для генерации дробных факторных планов:
- Создание полного факторного плана с помощью функции
gen.factorial()
.
- Передайте результаты в
optFederov()
- это попытается найти оптимальный дробный план, используя алгоритм Федерова.
Следующий код занимает около 3 минут для запуска на моем ноутбуке с Windows. Пример находит приблизительный оптимальный дробный факторный план с 8 факторами с 3, 4, 6 или 11 уровнями каждый, как вы указали.
Обратите внимание, что я использую optFederov(..., approximate=TRUE)
- это находит приблизительное решение. На моей машине, когда я установил approximate=FALSE
, выполнение кода занимает слишком много времени, и Windows выдает ошибку. Вы можете поэкспериментировать с различными настройками.
library(AlgDesign)
levels.design = c(3,4,6,11,3,4,6,11)
f.design <- gen.factorial(levels.design)
fract.design <- optFederov(
data=f.design,
nTrials=sum(levels.design),
approximate=TRUE)
А на выходе:
head(f.design)
X1 X2 X3 X4 X5 X6 X7 X8
1 -1 -3 -5 -5 -1 -3 -5 -5
2 0 -3 -5 -5 -1 -3 -5 -5
3 1 -3 -5 -5 -1 -3 -5 -5
4 -1 -1 -5 -5 -1 -3 -5 -5
5 0 -1 -5 -5 -1 -3 -5 -5
6 1 -1 -5 -5 -1 -3 -5 -5
fract.design
$D
[1] 6.813321
$A
[1] 0.375804
$Ge
[1] 0.998
$Dea
[1] 0.998
$design
Rep.. X1 X2 X3 X4 X5 X6 X7 X8
1 1 -1 -3 -5 -5 -1 -3 -5 -5
10 1 -1 3 -5 -5 -1 -3 -5 -5
...
626475 1 1 -3 -5 -5 1 3 5 5
627253 1 -1 -3 5 5 1 3 5 5
$rows
[1] 1 10 61 723 790 1596 2307 2314 2365 2374
[11] 2376 7129 7140 7198 7849 7911 7918 7920 8713 8724
[21] 9433 9504 48252 48301 48303 49105 49107 49114 49174 54660
[31] 54711 56233 56304 570241 570963 571834 571836 572556 578151 579015
[41] 617821 617823 619414 620127 620134 625618 626475 627253