NoneSas proc tabulate (freq)
У меня следующий вопрос:
Некоторые примеры данных:
data;
input id article sex count;
datalines;
1 139 1 2
2 139 2 2
3 146 2 1
4 146 2 2
5 146 1 0
6 111 2 10
6 111 1 1
;
run;
Теперь у меня есть этот код:
proc tabulate;
freq count;
class article sex;
table article, sex /misstext='0';
run;
Есть ли разница по сравнению со следующим кодом?
proc tabulate;
var count;
class article sex;
table article, sex*count;
run;
Или это точно делает то же самое? Какой из них рекомендуется?
1 ответ
Обратите внимание на результат, полученный в результате выполнения двух tabulate
вариации.
Для набора данных результаты одинаковы, представлены по-разному.
- Первый имеет клетки класса пола, которые имеют неявную частоту (
N
) вычислениеcount
взвешенный, также неявно отформатированный как целое число. Подразумевается поведение по умолчанию при отсутствии других операторов и опций. - Второй имеет ячейки полового класса, которые являются вычисленной суммой
count
, отформатированный по умолчанию 2 десятичных знака.
Если набор данных имел дополнительные var
переменные, используемые в table
статистические вычисления, которые необходимо выполнить, и роль взвешивания будут зависеть от характера презентации, которую вы делаете, и аудитории, которая ее использует. Вы можете хотеть или не хотеть 'подсчитывать' взвешивание частоты, влияющее на статистические вычисления.
Спросите 5 человек за рекомендацию, вы можете получить 6!
Из онлайн-документации, сравните детали FREQ
заявление в WEIGHT
заявление:
Обязательный аргумент
переменная
- указывает числовую переменную, значение которой представляет частоту наблюдения. Если вы используете оператор FREQ, то процедура предполагает, что каждое наблюдение представляет n наблюдений, где n - значение переменной. Если n не является целым числом, то SAS его усекает. Если n меньше 1 или отсутствует, то процедура не использует это наблюдение для вычисления статистики.
- Сумма частотной переменной представляет собой общее количество наблюдений.
а также
Обязательный аргумент
переменная
- определяет числовую переменную, значения которой взвешивают значения переменных анализа. Значения переменной не обязательно должны быть целыми числами. PROC TABULATE реагирует на значения веса в соответствии со следующей таблицей.
0
: Считает наблюдение в общем количестве наблюдений<0
: Преобразование значения в ноль и подсчет наблюдений в общем количестве наблюдений.missing
: Исключает наблюдениеЧтобы исключить наблюдения, которые содержат отрицательные и нулевые веса из анализа, используйте EXCLNPWGT. Обратите внимание, что большинство процедур SAS/STAT, таких как PROC GLM, по умолчанию исключают отрицательные и нулевые веса.
Примечание: до версии 7 SAS процедура не исключала наблюдения с недостающими весами из числа наблюдений.
ограничения
- Чтобы вычислить взвешенные квантили, используйте QMETHOD=OS в операторе PROC.
- PROC TABULATE не будет вычислять MODE, когда активна переменная веса. Вместо этого попробуйте использовать PROC UNIVARIATE, когда нужно вычислить MODE и активна переменная веса.
взаимодействие
- Если вы используете опцию WEIGHT= в операторе VAR для указания переменной веса, то вместо этого PROC TABULATE использует эту переменную для взвешивания этих переменных оператора VAR.
Чаевые
- Когда вы используете оператор WEIGHT, подумайте, какое значение параметра VARDEF= подходит. См. Обсуждение VARDEF= делитель и вычисление взвешенной статистики в разделе "Ключевые слова и формулы" этого документа.