Я пытаюсь создать сокращенную модель для прогнозирования многих зависимых переменных (DV) (~ 450), которые сильно коррелированы.
Мои независимые переменные (IV) также многочисленны (~ 2000) и сильно коррелированы.
Если я использую лассо, чтобы выбрать сокращенную модель для каждого выходного сигнала в отдельности, я не гарантирую получить то же подмножество независимых переменных, что и циклический цикл для каждой зависимой переменной.
Существует ли многомерная линейная регрессия, которая использует лассо в R?
Это не группа Лассо. группа лассо группы IV. Я хочу многомерную линейную регрессию (имеется в виду, что DV - это матрица, а не вектор скаляров), которая также реализует лассо. (Примечание: как указывает NRH, это не так. Лассо группы - это общий термин, который включает стратегии, которые группируют IV, но также включают стратегии, которые группируют другие параметры, такие как DV)
Я нашел эту статью, которая попадает во что-то, называемое разреженными наборами лассо
Вот некоторый код, который делает многомерную линейную регрессию
> dim(target)
[1] 6060 441
> dim(dictionary)
[1] 6060 2030
> fit = lm(target~dictionary)
Вот код, который делает лассо на одном DV
> fit = glmnet(dictionary, target[,1])
И это то, что я хотел бы сделать:
> fit = glmnet(dictionary, target)
Error in weighted.mean.default(y, weights) :
'x' and 'w' must have the same length
Выбор функций, которые соответствуют ВСЕМ целям одновременно
glmnet
и имеет тщательную виньетку.Ответы:
Для многовариантных ответов (количество зависимых переменных больше 1) вам нужно
family = "mgaussian"
в вызовеglmnet
.Пакет lsgl является альтернативой, которая обеспечивает более гибкий штраф.
С -мерным ответом пакет glmnet реализует штраф где - вектор коэффициентов для го предиктора. На странице справки вы можете прочитать:k
glmnet
Это наказание является примером группового штрафа Лассо, который группирует параметры для разных ответов, которые связаны с одним и тем же предиктором. Это приводит к выбору одних и тех же предикторов во всех ответах для заданного значения параметра настройки.
Пакет lsgl реализует штрафные штрафы группы Лассо в форме где и - это определенные веса, выбранные для уравновешивания вкладов различных членов. По умолчанию используется и . Параметр является параметром настройки. При (и ) штраф эквивалентен штрафу, используемому с . С (и
glmnet
family = "mgaussian"
Заметка о группе Лассо. Термин « группа лассо» часто ассоциируется с группой предикторов. Однако, с более общей точки зрения, групповое лассо - это просто группировка параметров в штрафной. Группировка, используемая
glmnet
с,family = "mgaussian"
является группировкой параметров по ответам. Результатом такой группировки является объединение оценки параметров по откликам, что является хорошей идеей, если все отклики можно прогнозировать из примерно одного и того же набора предикторов. Общая идея объединения нескольких задач обучения, которые, как ожидается, будут иметь некоторую структуру, известна как многозадачное обучение .источник