Ошибка формулы при запуске смешанной модели логита в R

#r #mlogit

Вопрос:

Я создал имитационные данные для смешанной логит-модели. В нем участвуют N рыболовов, совершающих две поездки, каждая из которых может быть на одно из двух мест. Вот код для создания смоделированных данных:

 library(data.table) library(mlogit)  ### Angler choice probabilities for site a N lt;- 1e4 beta lt;- rnorm(N, mean = 0.5) val lt;- runif(N) p lt;- exp(1   beta*val)/(1  exp(1   beta*val))  ### Choice for trip 1 Y11 lt;- rbinom(N, 1, p) Y10 lt;- 1 - Y11  ### Choice for trip 2 Y21 lt;- rbinom(N, 1, p) Y20 lt;- 1 - Y21  ### Data set id lt;- as.character(1:N) sim lt;- data.table(angler = rep(id, 4),   trip = paste(id, rep(1:2, each = 2*N), sep = "_"),  site = c(rep(letters[1:2], each = N),  rep(letters[1:2], each = N)),  is_choice = as.logical(c(Y11, Y10, Y21, Y20)),  term = c(val, rep(0, N), val, rep(0, N))) sim[, term2 := ifelse(site == "a", 1, 0)]  

Когда я запускаю mlogit, я получаю следующую ошибку:

 gt; mlogit(is_choice ~ 1, sim, shape = "long", alt.var = "site", chid.var = "trip", id.var = "angler") Error in str2lang(x) : lt;textgt;:2:0: unexpected end of input 1: . ~ . |   ^  

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

Что я напутал? Спасибо!

Ответ №1:

Эту проблему можно решить с помощью data.frame , нет data.table .

 sim2 lt;- as.data.frame(sim) mlogit(is_choice ~ 1, sim2, shape = "long", alt.var = "site", chid.var = "trip", id.var = "angler")  Call: mlogit(formula = is_choice ~ 1, data = sim2, shape = "long", alt.var = "site", chid.var = "trip", id.var = "angler", method = "nr")  Coefficients: (Intercept):b   -1.1595