背景:当我们测试已编码为虚拟变量的分类变量的显著性时,我们需要同时测试所有虚拟变量是否为0。例如,如果X取值 0、1、2、3 和 4,我将拟合级别 1-4 的虚拟变量(假设我希望 0 是基线),然后想要同时测试 B1=B2=B3=B4=0。
如果这是我数据集中的唯一变量,我可以使用整体F统计量来实现此目的。但是,如果我有其他协变量,则整体F检验不起作用。
例如,在 Stata 中,这(非常、非常)只是由testparm
命令执行为:testparm i.x
(拟合所需的回归模型后),其中i.
前缀告诉 StataX是要被视为虚拟变量的分类数据。
问题/问题:我想知道如何在 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=B3。我试图将其编码为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
有相对新手级别的知识(不幸的是,我没有找到很好的文档来帮助解决这个问题),以及为了估计而应该如何真正制定这个假设检验(我是否尝试像上面那样将其分成几部分,或者......?
从我上面的注释中,您实际上可以让 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
行是所有类效应=0 的 LR 检验。
另一种情况,PROC REG
TEST
工作(例如TEST x1=0, x2=0, x3=0, x4=0
),这并不能回答我最初的PROC GLM
问题,但如果PROC REG
为您的模型类型完成工作,则是一种选择。