NMAR означает «не хватает случайно», поэтому это означает, что у вас нет данных. NMAR не указывает, какой будет этот шаблон, только что есть.
Это вызов для анализа данных, поскольку это означает, что недостающие данные не имеют того же распределения, что и полные данные, и поэтому опасно вводить недостающие значения на основе наблюдаемых значений (например, путем вменения медианов) ,
Даже сложный недостающий пакет данных, например мышь (упомянутый в комментарии выше) предназначен для ввода данных, который является MAR (отсутствует случайно) или MCAR (отсутствует полностью случайно).
Для имитации NMAR-данных вам просто нужно указать дистрибутив для ваших отсутствующих данных, который отличается от распределения, используемого для генерации данных в вашем примере. Существует множество способов сделать это.
Если я правильно понял ваше описание, вы хотели бы сделать 5-10% значений ниже или ниже вашего медианного значения. Эта строка кода будет делать это с 5% вероятностью любое значение выше медианы:
Aj[Aj > median(Aj)] = ifelse(sample(c(T, F), length(Aj[Aj > median(Aj)]), replace=T, prob=c(0.05, 0.95)), NA, Aj[Aj > median(Aj)])
Эта строка кода принимает значения Aj, которые выше среднего, а затем IfElse() использует образец выбрать либо первый вариант (T с вероятностью 5%), либо второй вариант (F с вероятностью 95%). Если T, значение заменяется на NA. Если F, исходное значение сохраняется.
Ознакомьтесь с нижеследующей статьей: http://www.r-bloggers.com/imputing-missing-data-with-r-mice-package/ – Technophobe01