Создание матриц на вмененных данных для использования с эластичной сетью

После использования mice для создания 50 импутаций моего набора данных я очень хочу использовать пакет glmnet для запуска эластичной сети. Я понимаю, что подходящим способом анализа вмененных данных является применение функций with и pool к объекту mids, созданному при запуске mice(x,...), но glmnet требует, чтобы его данные передавались в виде матрицы. И model.matrix, и build.x можно использовать для преобразования общего фрейма данных в матрицу. Объект mids можно преобразовать в data.frame; однако использование имеющихся данных в качестве единого набора данных, по-видимому, подорвет весь процесс условного исчисления.

Пример:

df <- mice::nhanes
imp <- mice(df) #impute data
com <- complete(imp, "long", TRUE) #creates data frame
mat <- build.x(bmi ~ age + hyp + chl, com, contrasts = FALSE)

Предполагая, что вменения точны, как лучше всего сохранить вменения и создать соответствующие матрицы для использования в glmnet?


person C_H    schedule 11.07.2017    source источник


Ответы (1)


Проще всего это сделать с помощью моего пакета glmnetUtils, реализующего формулу/ интерфейс фрейма данных для glmnet. Затем подгоните свою эластичную сеть, как и любую другую функцию построения модели R.

install.packages("glmnetUtils")
library(glmnetUtils)

# ... do whatever is required to create an analysis data frame ...

glmnet(bmi ~ age + hyp + chl, data=com)
person Hong Ooi    schedule 11.07.2017