CONTRAST для переменной CLASS с более чем двумя уровнями в PROC GLM

Предыстория. Когда мы проверяем значимость категориальной переменной, закодированной как фиктивные переменные, нам необходимо одновременно проверить, что все фиктивные переменные равны 0. Например, если X принимает для значений 0, 1, 2, 3 и 4 я бы подогнал фиктивные переменные для уровней 1-4 (при условии, что я хочу, чтобы 0 был базовым уровнем), а затем хочу одновременно проверить B1 = B2 = B3 = B4 = 0.

Если это единственная переменная в моем наборе данных, я могу использовать общую F-статистику для достижения этого. Однако, если у меня есть другие ковариаты, общий F-критерий не работает.

В Stata, например, это (очень, очень) просто выполняется командой testparm как: testparm i.x (после подбора желаемой модели регрессии), где префикс i. сообщает, что Stata X является категориальными данными рассматриваться как фиктивные переменные.

Вопрос/проблема: мне интересно, как я могу сделать это в SAS с оператором CONTRAST (или ESTIMATE?) при подгонке регрессионной модели с помощью PROC GLM., так как я прошерстил Интернет и не нашел, что Я ищу, я предполагаю, что упускаю что-то очень очевидное. Однако все примеры, которые я видел, относятся НЕ к категориальным (class) переменным, а скорее к двум отдельным (скажем, непрерывным) переменным. Противоположное утверждение в этом случае будет просто чем-то вроде

CONTRAST 'Contrast1' y 1 z 1;

В противном случае они предназначены для расчета гипотез типа H_0: B1-B2=0.

Я чувствую, что мне нужно разбить гипотезы на более мелкие части и определить тот набор, который определяет все отношения, но я делаю это неправильно. Например, для B1=B2=B3=B4=0 я подумал, что могу сказать B1=B2=B3=-B4, а затем определить (1) B1=-B4, (2) B2=-B4 и (3) B2. =В3. Я пытался закодировать это как оператор CONTRAST как (скажем, X находится в порядке убывания в наборе данных: 4-0):

CONTRAST 'Contrast' x -1 0 0 1 0
                    x -1 0 1 0 0
                    x 0 1 1 0 0;

Я знаю, что это неправильно, и я пробовал много-много вариантов и любую случайную логику, которую мог придумать. Моя проблема в том, что у меня относительно начальные знания о CONTRAST (и, к сожалению, я не нашел отличной документации, которая помогла бы с этим), а также о том, как на самом деле должна быть сформулирована эта проверка гипотезы для оценки (пытаюсь ли я разделить ее на штук, как я сделал выше, или...?).


person Meg    schedule 13.02.2014    source источник
comment
Можете ли вы использовать тест LR? Я почти уверен, что вы можете использовать GLM для выполнения MLE и получить логарифмическую вероятность от подгонки с вашими фиктивными переменными и без них.   -  person DomPazz    schedule 13.02.2014


Ответы (2)


Из моего примечания выше вы действительно можете заставить SAS сделать это за вас с помощью PROC GENMOD и оператора CLASS и спецификации TYPE3.

proc genmod data=input;
class classvar ;
model slope= classvar othervar/  type3;
run;
quit;

В приведенном выше примере уровни моих классов находятся в переменной classvar. othervar — моя вторая ковариата.

В конце вывода вы видите таблицу с пометкой LR Statistics For Type 3 Analysis. Строка для classvar — это тест LR всех эффектов класса = 0.

person DomPazz    schedule 13.02.2014
comment
Спасибо за ваш ответ, и я открыт для работы в смысле использования других процедур. Мне просто интересно, однако, более общий способ использования операторов CONTRAST, чтобы теоретически я мог завершить тест с любой процедурой, поддерживающей операторы CONTRAST. - person Meg; 13.02.2014
comment
На самом деле я никогда не использовал оператор CONTRAST, поэтому не могу дать совет по этому поводу. - person DomPazz; 13.02.2014

Другой случай, когда PROC REG с TEST работает (например, TEST x1=0, x2=0, x3=0, x4=0), что не отвечает на мой первоначальный вопрос о PROC GLM, но является вариантом, если PROC REG выполняет работу для вашего типа модели.

person Meg    schedule 13.02.2014