Корреляционный анализ Амелии

Я хочу выполнить корреляционный анализ с вмененными наборами данных из исходного набора данных «freetrade» из пакета Amelia. Итак, сначала я загрузил данные и создал несколько наборов данных с функцией amelia:

library(Amelia)
data <- freetrade %>%
  select(c("country", "tariff", "pop", "gdp.pc", "intresmi", "fiveop", "usheg"))
am <- amelia(data, m=5, idvars=1)

Теперь я хотел бы провести корреляцию между tarriff, pop и gdp.pc. Я абсолютно ничего не нашел в Интернете о том, как это сделать, только для пакета мышей "micombine.cor ()". Я попытался преобразовать вмененные наборы данных «am» в средние значения типа данных, поскольку micombine.cor () принимает только средние значения типа данных:

as.mids(am)

но есть только ошибка с названием: «Индекс импутации .imp не найден». Есть ли у вас какие-либо методы проведения корреляционного анализа? Я был бы очень признателен!


person burritoman    schedule 20.05.2020    source источник


Ответы (1)


Вам необходимо прочитать справочную страницу для Амелии, особенно ту часть, в которой рассказывается, как amelia возвращает свои результаты. Также очень полезно попробовать примеры. В примере на странице руководства используется набор данных africa, который включен в пакет и кажется примерно похожим на ваш:

am <- amelia(africa[, 3:7])    # Just using the numeric variables
cor(am$imputations[[1]])       # For the first imputed data set
lapply(am$imputations, cor)    # For all five imputed data sets
person dcarlson    schedule 20.05.2020
comment
Привет, большое спасибо за вашу помощь! Я не нашел его в руководстве, поэтому я хотел знать, знаете ли вы, как тогда объединить эти результаты? - person burritoman; 20.05.2020
comment
Чтобы получить руководство, введите команду ?amelia. Вы всегда должны читать справочную страницу, прежде чем пытаться использовать функцию. Вы можете использовать средства для получения среднего значения корреляции между матрицами или минимума и максимума, чтобы получить диапазон значений. - person dcarlson; 20.05.2020
comment
Привет, @dcarlson, я заметил, что вы сначала вменяли здесь только числовые переменные, а затем получили корреляцию для всего набора данных. Есть ли способ получить корреляцию только между числовыми переменными ПОСЛЕ вменения? Я хотел бы сделать это, но не знал, как сделать подмножество только числовых переменных в объекте amelia вмененных наборов данных. - person JRB; 25.03.2021
comment
Поскольку я дал amelia только числовые переменные, в наборе вмененных данных есть только числовые переменные. Если вы также вменяли нечисловые переменные, вам необходимо ограничить корреляции. Чтобы удалить только столбец 5 (во вмененных данных, а не в исходных данных): lapply(am$imputations, function(x) cor(x[, -5])) или для получения столбцов 1, 3 и 5: lapply(am$imputations, function(x) cor(x[, c(1, 3, 5)])). - person dcarlson; 25.03.2021