Как я должен преобразовать свои данные в структуру, необходимую для пакета gmnl и ошибки в пакете mlo git - PullRequest
0 голосов
/ 10 июля 2020

Я очень нуб для модели lo git в R, извините !! Я пытаюсь проанализировать эксперимент с выбором, который имеет 3 атрибута (BDV, RE C и SITE), каждый из которых имеет три уровня. Таким образом, каждый идентификатор должен был рассмотреть 8 наборов вариантов, каждый набор имел 3 варианта (0, 1 и 3).

У меня есть следующие данные:

 $ id    : num [1:1944] 1 1 1 1 1 1 1 1 1 1 ...
 $ set   : num [1:1944] 1 1 1 2 2 2 3 3 3 4 ...
 $ option: Factor w/ 3 levels "1","2","3": 1 2 3 1 2 3 1 2 3 1 ...
 $ optout: chr [1:1944] "-1" "-1" "1" "-1" ...
 $ choice: chr [1:1944] "FALSE" "TRUE" "FALSE" "FALSE" ...
 $ REC   : chr [1:1944] "rec1" "rec1" "rec0" "rec2" ...
 $ BDV   : chr [1:1944] "bdv1" "bdv1" "bdv0" "bdv0" ...
 $ SITE  : chr [1:1944] "s0" "s1" "s0" "s0" ...
 $ PRICE : num [1:1944] 1000 2500 0 2500 1000 0 1500 2500 0 2500

# A tibble: 6 x 9
     id   set option optout choice REC   BDV   SITE  PRICE
  <dbl> <dbl> <fct>  <chr>  <chr>  <chr> <chr> <chr> <dbl>
1     1     1 1      -1     FALSE  rec1  bdv1  s0     1000
2     1     1 2      -1     TRUE   rec1  bdv1  s1     2500
3     1     1 3      1      FALSE  rec0  bdv0  s0        0
4     1     2 1      -1     FALSE  rec2  bdv0  s0     2500
5     1     2 2      -1     TRUE   rec2  bdv0  s1     1000
6     1     2 3      1      FALSE  rec0  bdv0  s0        0

Я прочитал в gmnl пакет, который мне нужен для преобразования моих данных, но пример в пакете "TravelMode", который имеет только 1 атрибут ("режим")

R> TM <- mlogit.data(TravelMode, choice = "choice", shape = "long",
+ alt.levels = c("air", "train", "bus", "car"))

R> wide_TM <- reshape(TravelMode, idvar = c("individual", "income", "size"),
+ timevar = "mode", direction = "wide")
R> wide_TM$chosen_mode[wide_TM$choice.air == "yes"] <- "air"
R> wide_TM$chosen_mode[wide_TM$choice.car == "yes"] <- "car"
R> wide_TM$chosen_mode[wide_TM$choice.train == "yes"] <- "train"
R> wide_TM$chosen_mode[wide_TM$choice.bus == "yes"] <- "bus"

Я пытался использовать mlo git модель mlo git package

test.mlogit<- mlogit.data(Choicedata, choice = "choice", shape = "long",  alt.var = "option",
                          id.var="persona", alt.levels = c("0","1","2"), 
                          reflevel = "3", heterosc=FALSE, drop.index=TRUE, tol=1e300)
Clogit1 <- mlogit(choice~-BDV+REC+SITE+PRICE,data=test.mlogit)
summary(Clogit1)

, но у меня следующая проблема:

Error in solve.default(-H) : 
  system is computationally singular: reciprocal condition number = 5.43587e-17

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

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...