Как создать полный факторный дизайн и набор выбора, если каждый атрибут имеет разное количество уровней? - PullRequest
0 голосов
/ 09 октября 2018

Я Валентина, и я впервые пишу здесь и заранее прошу прощения за мой английский.

Я использую программное обеспечение R. Я должен создать эксперимент выбора.

Я знаю, что для определения максимального количества используемых комбинаций: (Уровень) ^ Коэффициент.В целом атрибуты имеют одинаковое количество уровней.Например, если есть 3 атрибута, и у каждого есть 2 уровня, общее количество комбинаций: 3 ^ 2 = 9.

У меня есть 4 атрибута с различным номером уровня:

Attribute A: 100%, 75%, 50%, 25%;
Attribute B: yes, no;
Attribute C: yes, no;
Attribute D: 5, 10, 15, 20.

в зависимости, есть опция статус-кво.

Как определить максимальное количество комбинаций?А после я создам дробный дизайн.

Я пытался таким образом, но я не уверен, что это правильно:

> library(DoE.base) 
> oa.design(nlevels=c(4,2,2,4))

Я также пытался создать экспериментальный дизайн следующим образом:

> d.object <- rotation.design(  
           attribute.names = list(A= c("100%", "75%", "50%", "25%"), B=c  ("yes", "no"), C=c("yes" , "no"), D = c("5", "10", "15", "20")),  
nalternatives = 2,  nblocks = 1,  row.renames = FALSE,  randomize = TRUE,  
seed = 987) 



>status.quo <- c(A= "0", B= "no", C= "no", D= "0") 
   >questionnaire(choice.experiment.design = d.object, common = status.quo) 

и я получаю анкету.

Правильна ли эта процедура в случае атрибутов с разным количеством уровней?

1 Ответ

0 голосов
/ 09 октября 2018

Количество комбинаций будет являться произведением количества уровней каждой переменной:

Attribute_A = c('100%', '75%', '50%', '25%')
Attribute_B = c('yes', 'no')
Attribute_C = c('yes', 'no')
Attribute_D = c(5, 10, 15, 20)

N = prod(length(Attribute_A), length(Attribute_B), length(Attribute_C), length(Attribute_D))
# [1] 64

Вы можете генерировать комбинации, используя expand.grid

combinations = expand.grid(Attribute_A = Attribute_A, 
                           Attribute_B = Attribute_B, 
                           Attribute_C = Attribute_C, 
                           Attribute_D = Attribute_D,
                           stringsAsFactors = FALSE)

head(combinations)
#   Attribute_A Attribute_B Attribute_C Attribute_D
# 1        100%         yes         yes           5
# 2         75%         yes         yes           5
# 3         50%         yes         yes           5
# 4         25%         yes         yes           5
# 5        100%          no         yes           5
# 6         75%          no         yes           5
#...  

Вы можете использоватьrbind чтобы добавить опцию «status_quo» (обычно называется «control» на английском языке)

status_quo = c(Attribute_A= "0", Attribute_B= "no", Attribute_C= "no", Attribute_D= "0") 
combinations = rbind(status_quo, combinations)

head(combinations)
#   Attribute_A Attribute_B Attribute_C Attribute_D
# 1           0          no          no           0
# 2        100%         yes         yes           5
# 3         75%         yes         yes           5
# 4         50%         yes         yes           5
# 5         25%         yes         yes           5
# 6        100%          no         yes           5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...