Есть ли способ передать все переменные, кроме одной, в качестве независимых переменных в логистической регрессии SAS?

#model #sas #logistic-regression

Вопрос:

У меня есть набор данных с примерно 58 столбцами. Мне нужно передать 57 из них (1 — зависимая переменная) в качестве независимых переменных для регрессионной модели логита. Я не хочу делать это, записывая все имена столбцов по одному. Есть ли более короткий способ сделать это?

Комментарии:

1. Находятся ли переменные в каком-то определенном порядке? Вы можете использовать обозначение — для перечисления переменных в модели. К вашему сведению, если вы просто перечислите модель, я думаю, что она использует все по умолчанию, не могу вспомнить. blogs.sas.com/content/iml/2018/05/29/…

Ответ №1:

Самый простой способ создать списки переменных из набора данных-использовать таблицы словаря.

 proc sql;
  select name 
    into :varlist separated by ' '
    from dictionary.columns
      where libname='SASHELP' and memname='CLASS' and name ne 'Name'
  ;
quit;
 

Теперь у вас есть макропеременная amp;varlist , и вы можете использовать ее в своих процедурах повторной регистрации. Очевидно, замените три поля в кавычках правильным именем libname, именем данных и именем столбца для вашей зависимой переменной. ( memname = набор данных, name = столбец). Обратите внимание, что все три из них обычно пишутся с заглавной буквы, в случае SASHELP.CLASS , если по какой — то причине имена переменных не являются таковыми, поэтому будьте осторожны, чтобы использовать upcase() или использовать правильный регистр.