Я пытаюсь подобрать модель группового лассо с помощью команды gglasso()
, входящей в пакет gglasso
. Вот некоторые предварительные данные о моих данных:
as.matrix(x)
- матрица данных 62 x 500.
colon$yn
- это вектор ответа 62 x 1 со значениями -1 или 1 (для классификации).
as.numeric(clus_num$cluster)
- список (длина 500) групп, к которым принадлежит каждый из 500 предикторов. Всего в этом наборе данных 15 кластеров.
Я пытаюсь подобрать группу лассо следующим образом:
> group = clus_num$cluster
> glasso_mod = gglasso(x = as.matrix(x), y = colon$yn,
group = as.numeric(clus_num$cluster), loss = "logit")
Теперь я пытаюсь построить коэффициенты по отношению к лямбде, используя команду plot()
. Однако, когда я запускаю этот код, я получаю следующую ошибку:
> plot(glasso_mod, group = TRUE, log.l = FALSE)
Error in apply(tmp[ix[g]:iy[g], ], 2, crossprod) :
dim(X) must have a positive length
Есть ли причина, по которой это происходит?
Для справки, я основываю свой код на примере, приведенном здесь ; данные являются частью библиотеки gglasso
, поэтому, пока библиотека вызывается, этот код будет работать:
> data("bardet")
> group = rep(1:20,each=5)
> m1 = gglasso(x = bardet$x, y = bardet$y, group = group, loss = "ls")
> plot(m1, group = TRUE, log.l = FALSE)
РЕДАКТИРОВАТЬ Исправлена опечатка в примере.