Среднее значение SAS для пропущенных данных анкеты, если пропущено менее 80% значений - PullRequest
0 голосов
/ 27 апреля 2019

У меня есть анкета с кодом 1-5, а затем для отсутствующих переменных она помечена как (.). Как мне кодировать данные, чтобы отразить следующее:

Если у пациента => 80% не пропущенных значений, то пропущенные значения будут закодированы как среднее значение ответов на вопросы. Если пациенту пропущено более 80% значений, чем для пропущенного для пациента сводного показателя, удалите запись.

condomuse;
set int108;
run;

proc means data=condomuse n nmiss missing;
var cusesability CUSESPurchase CUSESCarry CUSESDiscuss CUSESSuggest CUSESUse CUSESMaintain CUSESEmbarrass CUSESReject CUSESUnsure CUSESConfident CUSESComfort CUSESPersuade CUSESGrace CUSESSucceed;
by Intround sid;
run;

1 Ответ

0 голосов
/ 28 апреля 2019

Используя следующие допущения:

  • каждая строка / запись является уникальным человеком
  • все переменные являются числовыми

NMISS (), N (), CMISS () и DIM () - это функции, которые могут работать с массивами.

При этом будут идентифицированы все записи с отсутствием 80% или более.

data temp; *temp is output data set name;
    set have; *have is input data set name;

    *create an array to avoid listing all variables later;
    array vars_check(*) cusesability CUSESPurchase CUSESCarry CUSESDiscuss CUSESSuggest CUSESUse CUSESMaintain CUSESEmbarrass CUSESReject CUSESUnsure CUSESConfident CUSESComfort CUSESPersuade CUSESGrace CUSESSucceed;

    *calculate percent missing;
    Percent_Missing = NMISS(of vars_check(*)) / Dim(vars_check);

    if percent_missing >= 0.8 then exclude = 'Y';
    else exclude = 'N';

 run;

Чтобы заменить средним или другим методом, PROC STDIZE может сделать это.

*temp is input data set name from previous step;
proc stdize data=temp out=temp_mean reponly method=mean;
*keep only records with more than 80%;
where exclude = 'N';

*list of vars to fill with mean;
VAR cusesability CUSESPurchase CUSESCarry CUSESDiscuss CUSESSuggest CUSESUse CUSESMaintain CUSESEmbarrass CUSESReject CUSESUnsure CUSESConfident CUSESComfort CUSESPersuade CUSESGrace CUSESSucceed;

run;

Различные методы стандартизации здесь , но это методы стандартизации, а не методы вменения.

...