Каков правильный порядок для Somers' D при использовании PROC FREQ?
Я хочу произвести Somers' D, используя Proc Freq, используя следующий код:
DATA HAVE;
DO I = 1 TO 1000;
Y = RANUNI(0);
X = RANUNI(1) * 10;
OUTPUT;
END;
RUN;
PROC FREQ
DATA=have
NOPRINT;
TABLES y * x / MEASURES;
OUTPUT OUT=somersd
(KEEP = _SMDCR_
RENAME = (_SMDCR_ = somers_d))
MEASURES;
RUN; /*This is somers' D for Somers’ D(C|R)*/
Я прочитал из документации, что приведенный выше код проверяет соответствие Y в качестве столбца и X в качестве строки, но я хотел убедиться, что это так:
Теперь, какой правильный способ проверки на соответствие это
y * x
или же
x * y
Любая помощь будет оценена
0 ответов
Запрос состоит из одного имени переменной или нескольких имен переменных, разделенных звездочками. Чтобы запросить одностороннюю таблицу частот, используйте одну переменную. Чтобы запросить таблицу двусторонней кросс-таблицы, используйте звездочку между двумя переменными. Чтобы запросить многостороннюю таблицу (n-стороннюю таблицу, где n>2), разделите желаемые переменные звездочками. Уникальные значения этих переменных образуют строки, столбцы и слои таблицы.
Это не очень понятно, но по сути первая переменная соответствует переменной индекса строки, а вторая - значению индекса столбца. Будьте осторожны - значения индекса строки - это значения, расположенные вдоль вертикальной оси, а значения индекса столбца - это значения, расположенные вдоль горизонтальной оси. Это часто приводит к непреднамеренному инвертированию строк и столбцов, поскольку значения индекса строки образуют столбец, а значения индекса столбца образуют строку!
В твоем случае,
PROC FREQ DATA=have;
TABLES y * x / MEASURES;
RUN;
вычислит Somers' D(C|R), предполагая, что X - независимая переменная, а Y - зависимая переменная, что, я думаю, вам и нужно.