2014-01-27 2 views
2

Я пытаюсь написать программу в SAS, которая поддерживает процесс принятия решений при выборе лучшей формулы линейной регрессионной модели. У меня даже была одна, но в среде R. Теперь я должен реализовать его в SAS. Конечным результатом должен быть набор данных с каждой строкой, описывающей различные формулы регрессии, т.е. имена объясняющих переменных, R-квадрат, значения p для разных статистических испытаний и т. Д.Как экспортировать выбранные значения p в таблицу в SAS?

В качестве примера, одним из тестов является Durbin-Watson тест для автокорреляции. Моя цель - вставить значение p в таблицу, о которой я упоминал. Я использую код:

proc reg data=indata outest=outdata EDF ridge=0 OUTVIF; 
    model PKB = PK INV SI/DW; 
run; 
quit; 

И в результате я получаю в окне вывода:

Durbin-Watson Statistics 
Order   DW Pr < DW Pr > DW 
    1   1.2512  0.0038  0.9962 

Я хочу, чтобы вставить эти р-значения непосредственно в таблицу SAS. Я попытался найти ответ в SAS OnlineDoc и на форуме, но безуспешно.

ответ

2

ODS OUTPUT - это лучший способ получить информацию, которую вы можете распечатать на экране в наборах данных. Используйте ODS TRACE ON; перед кодом, запустите его, затем проверьте журнал; какое имя таблицы соответствует тому, что вы ищете. Затем используйте ODS OUTPUT <tablename>=<datasetname>.

Например, в этом PROC FREQ, я вижу ONEWAYFREQS - это таблица, которую я хочу.

ods trace on; 
proc freq data=sashelp.class; 
var age; 
run; 
ods trace off; 

Поэтому я использую ODS ВЫВОД:

ods output onewayfreqs=ages; 
proc freq data=sashelp.class; 
table age; 
run; 
ods output close; 

и получить хороший набор данных. (ODS TRACE не требуется, если вы знаете название таблицы, которую ищете.)

Смежные вопросы