У меня есть данные с изменением состояния в США. Теперь я хочу создать много манекенов для управления эффектом исправления состояния. В stata это простая работа, в то время как в sas мне кажется, что я должен создать все манекены вручную. Однако регрессия logit с исправлениями довольно медленная в stata. Интересно, существует ли более эффективный способ создания манекена из переменных char (не числовых, которые я знаю несколько методов для применения) в sas, так как у меня слишком много переменных char, которые нужно создать как соски. Cheers, EvaСоздайте макет, используя более эффективные переменные категории в SAS
ответ
proc logistic
поддерживает заявление class
. Поместите переменные в оператор class
, и вы также можете указать тип параметризации, который вам нужен. Наиболее распространенным методом является ссылочное кодирование.
proc logistic data=sashelp.heart;
class sex bp_status/param=ref;
model status = sex ageAtStart height weight bp_status;
run;
Не все проки поддерживают class
заявление, в тех случаях, вы можете использовать proc glmmod
или различные другой метод для создания фиктивных переменных.
http://blogs.sas.com/content/iml/2016/02/22/create-dummy-variables-in-sas.html
Крошечное исправление: REF следует использовать без кавычек – vasja
Если вам абсолютно необходимо вручную создать фиктивные переменные, которые вы можете использовать макрос, как этот. Вам нужно будет вызвать его для каждой переменной.
%macro create_dummy(dataset=, var=);
%* Save Distinct Values and Dummy Variable Names;
proc sql noprint;
select distinct
&var,
tranwrd(tranwrd(trim(&var), " ", "_"), ".", "")
into
:value1-,
:name1-
from
&dataset
;
select
count(distinct(&var))
into
:total
from
&dataset
;
quit;
%* Create Dummy Variables;
data &dataset;
set &dataset;
%do i=1 %to &total;
if &var = "&&value&i" then &&name&i = 1; else &&name&i = 0;
%end;
run;
%mend create_dummy;
Вы можете добавить петлю в макрос, если хотите вызвать макрос только один раз. Добавьте петлю do вверху:
%macro create_dummy(dataset=, var=);
%do l %to %sysfunc(countw(&var));
%let var1 = %scan(&var, &l);
%* Save Distinct Values and Dummy Variable Names;
proc sql noprint;
select distinct
&var1,
tranwrd(tranwrd(trim(&var1), " ", "_"), ".", "")
into
:value1-,
:name1-
from
&dataset
;
select
count(distinct(&var1))
into
:total
from
&dataset
;
quit;
%* Create Dummy Variables;
data &dataset;
set &dataset;
%do i=1 %to &total;
if &var1 = "&&value&i" then &&name&i = 1; else &&name&i = 0;
%end;
run;
%end;
%mend create_dummy;
- 1. SAS: отдельные переменные измерения Condense в категории
- 2. Эффективные переменные Dummy Collapse
- 3. Более эффективные Nav Effects
- 4. Создайте набор данных SAS, используя строку «Пуск» в файле Excel?
- 5. Более эффективные вычислительные вероятности
- 6. Более эффективные sql-запросы
- 7. SAS добавляет переменные, используя команду ввода
- 8. Как отредактировать макет категории?
- 9. SAS всего «на» категории
- 10. Создайте петлю в SAS, которая одновременно фильтрует 2 переменные
- 11. Более быстрые/более эффективные альтернативы маршалу Руби?
- 12. Даммические переменные в SAS
- 13. Более эффективные способы сделать это
- 14. Макет для пользовательской категории
- 15. TYPO3 tx_news макет категории
- 16. Есть ли более эффективные или эффективные способы кодирования длинных текстов?
- 17. SAS переменные метки в макросе
- 18. SAS: Создайте частотную переменную
- 19. Создайте повторяющийся подробный макет программно, используя в фоновом режиме
- 20. Передать переменные в макет
- 21. более эффективные скрипты на Python в Blender3D
- 22. Более эффективные карты накладки в Android
- 23. Как включить более эффективные ошибки в браузере?
- 24. В mysql хранятся более эффективные процедуры?
- 25. Более эффективные триггеры удаления в PostgreSQL
- 26. SAS import excel Определенные переменные
- 27. SAS: связанные переменные
- 28. SAS найти переменные порядка
- 29. SAS - переменные переименования
- 30. SAS Catx 50 + переменные
Какой PROC вы используете? Вы использовали инструкцию CLASS? – Tom