Как можно указать функции ссылок в 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