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.前缀告诉 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 GENMODCLASS语句以及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 REGTEST工作(例如TEST x1=0, x2=0, x3=0, x4=0),这并不能回答我最初的PROC GLM问题,但如果PROC REG为您的模型类型完成工作,则是一种选择。

最新更新