2012-03-25 2 views
5

Я совершенно не знаком с SAS, и я в отчаянии.
Итак, мой код:Тесты на нормальность в SAS

DATA abc; 
INPUT AA BB CC DD EE; 
CARDS; 

; 
RUN; 

PROC PRINT DATA = abc; 
TITLE "My_Data"; 
RUN; 

PROC UNIVARIATE DATA = abc OUTTABLE = Table NOPRINT; 
VAR AA BB CC DD EE; 
RUN; 

PROC PRINT DATA = Table LABEL NOOBS; 
TITLE "Univariate Normality Tests per Variable"; 
VAR _VAR_ _NORMAL_ _PROBN_; 
LABEL _VAR_ = 'VARIABLE'; 
RUN; 

У меня есть проблема с «Одномерные нормальности Тесты на Variable» таблицы - содержит нули. Мое желание состоит в том, чтобы иметь только таблицу статистики нормальности для каждой переменной, чтобы сравнить их, как это рекомендуется (т. Е. here). Я реализовал SAS macro, но он содержит только один такой тест. Пожалуйста, помогите мне.

ответ

3

Если вы просто хотите статистику теста нормальности в одной таблице для всех переменных, я предложил бы использовать ODS.

например.

ods listing close; 
ods output TestsForNormality=NormaliltyTest; 
PROC UNIVARIATE DATA = abc normal; 
VAR AA BB CC DD EE; 
RUN; 

ods listing; 
PROC PRINT DATA = NormaliltyTest LABEL NOOBS; 
TITLE "Univariate Normality Tests per Variable"; 
RUN; 
+0

cmjohns: большое спасибо :)! теперь у меня есть статистика! но все еще есть много таблиц ... – stan

+0

Однако не одна таблица, а только соответствующие: 'PROC UNIVARIATE DATA = abc NORMALTEST; VAR AA BB CC DD EE; ODS ИСКЛЮЧАЮТ CIBASIC BASICMEASURES TESTSFORLOCATION EXTREMEOBS MODES MOMENTS QUANTILES; RUN; ' – stan

1

Похоже, вам нужен параметр NORMAL в инструкции PROC UNIVARIATE.

PROC UNIVARIATE DATA = abc OUTTABLE = Table NORMAL NOPRINT; 
VAR AA BB CC DD EE; 
RUN; 

Это не выводит тест для каждой переменной на тест, но это старт.

PROC UNIVARIATE Documentation

+0

Justin за подсказку. Я уже изучил руководство. Я проверил ваш код - в моей руке он не представил статистику, о которой идет речь ... Я хочу подавить вывод, за исключением тестов на нормальность для каждой переменной, имеющейся у меня в моем наборе данных. Еще раз спасибо – stan