Вопрос или проблема
Я запускаю модель LM, используя пакет LMest, доступный в R. В наборе данных НЕТ пропущенных значений.
pct_miss(df_long)
[1] 0
n_miss(df_long)
[1] 0
Функция lmest без ковариат работает нормально. Однако, когда я добавил ковариаты в latentFormula, я получил следующее сообщение об ошибке: “Ошибка в lmest(responsesFormula = responseA + responseB + responseC + responseD ~ : пропущенные данные в ковариатах, влияющие на начальные вероятности, не допускаются”
Мой код выглядит так:
LMmodel <- lmest(responsesFormula = responseA + responseB + responseC + responseD ~ NULL,
-
latentFormula = ~
-
SEX + GRADE | SEX + GRADE,
-
index = c("ID","Time"),
-
data = df_long,
-
k = 3,
-
paramLatent = "multilogit",
-
start = 0)
где четыре переменные ответа (ответы A – D) являются категориальными и варьируются от 0 до 8; SEX бинарный (1 и 2 представляют Мужской и Женский соответственно); GRADE категориальный, варьирующийся от 7 до 12 классов.
Может кто-то указать, что пошло не так и как исправить эту ошибку?
Большое спасибо.
Я отвечаю на свой вопрос здесь. Проблема была в конечном итоге решена путём изменения структуры моего набора данных. В моём оригинальном наборе данных переменные ответа располагались в первых нескольких столбцах, за которыми следовал список ковариат. Для использования пакета LMest переменные ответа должны располагаться ближе к концу набора данных.
Я столкнулся с той же ошибкой, но с другим решением. Мы должны убедиться, что участники имеют данные для всех временных точек. Даже если нет NA, если у вас есть 3 временные точки, но у некоторых участников есть данные только для 1 или 2 временных точек, произойдёт эта ошибка. Простая проверка – определить, кратно ли ваше номер строки номеру участника.
Ответ или решение
Ошибка в lmest: отсутствие данных в ковариатах, влияющих на начальные вероятности, не допускается
При работе с пакетом LMest в R вы столкнулись с проблемой, связанной с добавлением ковариат в латентную формулу модели, которая вызывает ошибку:
"Error in lmest(responsesFormula = responseA + responseB + responseC + responseD ~ NULL, … missing data in the covariates affecting the initial probabilities are not allowed."
Причины возникновения ошибки
-
Структура данных: Как вы уже отметили, одна из распространенных причин данной ошибки состоит в структуре данных. Важно, чтобы ответные переменные находились в конце набора данных. Если вы размещаете ответные переменные в начале и оставляете ковариаты, это может привести к конфликтам при обработке модели.
-
Полные циклы данных для всех временных точек: Ваша вторая находка указывает на то, что не всегда наличие нулевых значений (NA) является показателем корректности данных. Все участники должны иметь полные наборы данных по всем временным интервалам. Например, если у вас есть три временные точки, но некоторые участники предоставили данные лишь по одной или двум точкам, это может вызвать упомянутую ошибку. Убедитесь, что количество строк в вашем наборе данных кратно количеству участников.
-
Кодировка ковариат: Проверьте, корректно ли закодированы ваши ковариаты (например, бинарные и категориальные переменные). Неправильная кодировка может привести к интерпретационным ошибкам и проблемам при обработке данных.
Решения проблемы
-
Перестройте набор данных: Переместите ответные переменные в конец вашего набора данных. Это поможет избежать ненужных конфликтов и обеспечить правильную работу lmest.
-
Проверьте наличие полных данных: Убедитесь, что для всех участников есть данные на всех временных точках. Это можно сделать с помощью функции проверки, которая позволит вам узнать, соответствует ли общее количество строк вашему количеству участников умноженному на количество временных точек.
df_long %>% group_by(ID) %>% summarise(count = n()) %>% filter(count != expected_count) # expected_count - число временных точек
-
Разобраться в кодировке: Убедитесь, что ваши бинарные и категориальные переменные корректны, особенно если вы используете факторные переменные. Преобразование переменной в фактор может помочь.
df_long$SEX <- as.factor(df_long$SEX) df_long$GRADE <- as.factor(df_long$GRADE)
Заключение
Обратите внимание на структуру ваших данных, наличия полных наборов данных для каждого участника на всех временных точках, а также на правильную кодировку ковариат. Применение этих шагов поможет вам избежать данной ошибки и успешно запустить модель lmest с использованием нужных ковариат. Удачи в вашей работе с R и анализом данных!