gl mnet: Установите GLMM с лассо или гребнем и добавьте ссылку на биномиальный клоглог - PullRequest
1 голос
/ 05 апреля 2020

Как можно указать функции ссылок в gl mnet для lasso / ridge / elasti c net regression?
Я нашел следующий пост, но не уверен, что это помогает мне, когда мне нужно указать cloglog ссылка на сайт. Как указать ссылку на журнал в gl mnet?

У меня есть набор данных опроса с двоичным ответом 0/1 (болезнь нет / да) и несколькими переменными предиктора, которые в основном являются двоичными категорический (да / нет, мужской / женский), некоторые из них рассчитываются (размер стада), а некоторые являются категориальными с несколькими уровнями.

Ранее я запускал обобщенную линейную смешанную модель, используя функцию glmer () с биномиальным семейством и link = cloglog, поскольку это создало точную интерпретацию полученного в результате перехвата, который я хотел (в исследовании болезни перехват из этой установки эквивалентен среднему значению «сила заражения» - скорость, с которой восприимчивые становятся инфицированными) среди вариации указан в случайном эффекте (в моем случае это географическая единица c (деревня, подвал или домохозяйство).

Поскольку в настоящее время мне доступно несколько переменных обследования, я хотел попробовать регрессию лассо и гребня используя gl mnet. Насколько я понимаю, лучше всего это сделать, введя формулу glmm в гл mnet. Однако я не могу найти документацию о том, как добавить ссылку. Я сделал так, в синтаксисе, который я думал, будет работать, и он работает Но он также работал с бессмысленным введением в функцию ссылки.

Вот воспроизводимый пример:

library(msm)

library(glmnet)

set.seed(1) 

N = 1000

X = cbind( rbinom(n=N,size=1,prob=0.5), rnorm(n=N) ) 

beta = c(-0.1,0.1)
phi.true = exp( X%*%beta ) 

p = 1 - exp(-phi.true)

y = rbinom(n=N,size=1,prob = p)

dat <- data.frame(x=X,y=y)

x <- model.matrix(y~., dat)

glmnet(x, y, family="binomial", link="logit", alpha = 1, lambda = 2)

Я получаю тот же вывод, независимо от того, вставляю ли я 'lo git', ' Cloglog "или даже имя" Адам ". И не может использовать тот же синтаксис, что и GLMM, поскольку в gl mnet должен быть символьный вектор.

OUTPUT:

> glmnet(x, y, family="binomial"(link="logit"), alpha = 1, lambda = 2)

Error in match.arg(family) : 'arg' must be NULL or a character vector

> glmnet(x, y, family="binomial", link="logit", alpha = 1, lambda = 2)

Call:  glmnet(x = x, y = y, family = "binomial", alpha = 1, lambda = 2,      link = "logit") 

  Df      %Dev Lambda
1  0 -7.12e-15      2

> glmnet(x, y, family="binomial", link="cloglog", alpha = 1, lambda = 2)

Call:  glmnet(x = x, y = y, family = "binomial", alpha = 1, lambda = 2,      link = "cloglog") 

  Df      %Dev Lambda
1  0 -7.12e-15      2

> glmnet(x, y, family="binomial", link="adam", alpha = 1, lambda = 2)

Call:  glmnet(x = x, y = y, family = "binomial", alpha = 1, lambda = 2,      link = "adam") 

  Df      %Dev Lambda
1  0 -7.12e-15      2

Нельзя ли изменить функцию ссылки по умолчанию для биномиального семейства в ГЛ mnet

1 Ответ

0 голосов
/ 10 мая 2020

ссылка не является аргументом для gl mnet?

Однако следующая версия gl mnet 4.0 будет TH

...