#r
Вопрос:
Я устанавливаю регрессионную модель хребта на множественно вмененный набор данных (10 вменений с пакетом mice). Я хочу отобразить объединенные коэффициенты регрессии из модели.
Подгонка модели выполняется в цикле, и модели сохраняются в списке mods3
mods3 lt;- vector(mode="list", length=10) for (i in 1:10) { #Prepare data x_train_std_implt;- x_train_std[x_train_std$.imp==i,] X lt;- as.matrix(x_train_std_imp[,-1]) y_train_std_implt;- y_train_std[y_train_std$.imp==i,] Y lt;- as.matrix(y_train_std_imp[,-1]) #Fit model cv_train_std lt;- cv.glmnet(X, Y, nfolds=10, type.measure="deviance", alpha=0, family="binomial") lambda lt;- cv_train_std$lambda.min mods3[[i]] lt;- glmnet(X, Y, family="binomial", lambda=lambda, alpha=0) pred lt;- predict(mods3[[i]],lambda, type="response",newx= X) i=i 1 }
Однако, если я попытаюсь объединить данные с pool()
функцией из mice
пакета, я получу следующую ошибку:
pooledlt;-pool(mods3) Error: Problem with `summarise()` column `ubar`. ℹ `ubar = mean(.data$std.error^2)`. x Column `std.error` not found in `.data` ℹ The error occurred in group 1: term = (Intercept). Backtrace:
Я понимаю, что pool()
функция не предназначена для glmnet
моделей, но есть ли какой-то обходной путь? Я хотел бы использовать plot_summs()
функцию для объединенных результатов.
Любые советы будут оценены по достоинству!
Комментарии:
1. Как правило, вы можете объединить любую статистику, для которой у вас есть оценка по баллам и оценка дисперсии
pool.scalar()
. Поэтому, если вы можете извлечь интересующие вас оценки и стандартные ошибки (возвести их в квадрат для дисперсии) из ваших моделей, передайте их в pool.scalar.