在PROC GLM中具有两个以上级别的CLASS变量的CONTRAST

时间:2014-02-13 02:35:35

标签: sas contrast categorical-data

背景:当我们测试已编码为虚拟变量的分类变量的重要性时,我们需要同时测试所有虚拟变量为0.例如,如果 X 取0,1,2,3和4的值,我将适合1-4级的虚拟变量(假设我想要0为基线),然后想要同时测试B1 = B2 = B3 = B4 = 0 。

如果这是我数据集中唯一的变量,我可以使用整体 F -statistic来实现这一目标。但是,如果我有其他协变量,整体 F - 测试不起作用。

例如,在Stata中,这是(非常,非常)简单地由testparm命令执行的: testparm i.x(在拟合了所需的回归模型之后),i.前缀告诉Stata X 是一个被视为虚拟变量的分类数据。

问题/问题:我想知道如何使用CONTRAST(或ESTIMATE?)语句在SAS中执行此操作,同时使用{{拟合回归模型1}}因为我已经浏览过互联网而没有找到我正在寻找的东西,我猜我错过了一些非常明显的东西。但是,我看到的所有示例都不是分类(PROC GLM.)变量,而是两个独立的(比如连续的)变量。在这种情况下,对比语句就像是

class

否则,它们用于计算假设,如H_0:B1-B2 = 0。

我觉得我需要将假设分解成更小的部分并确定定义整个关系的集合,但我没有正确地做到这一点。例如,对于B1 = B2 = B3 = B4 = 0,我想我可能会说B1 = B2 = B3 = -B4,然后定义(1)B1 = -B4,(2)B2 = -B4和(3)B2 = B3。我试图将此代码编码为CONTRAST 'Contrast1' y 1 z 1;语句(例如 X 在数据集中按降序排列:4-0):

CONTRAST

我知道这是不正确的,我尝试了很多很多变化以及我能想到的任何随机逻辑。我的问题是我有CONTRAST 'Contrast' x -1 0 0 1 0 x -1 0 1 0 0 x 0 1 1 0 0; 的相对新手级别的知识(并且遗憾的是没有找到很好的文档来帮助解决这个问题)以及为了估计而应该如何制定这个假设检验(我是否尝试过像我上面那样把它分成几块,或者......?)。

2 个答案:

答案 0 :(得分:2)

从上面的注释中,您实际上可以通过PROC GENMODCLASS声明以及TYPE3规范让SAS为您执行此操作。

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

在上面的示例中,我的班级水平位于classvar变量中。 othervar是我的另一个协变量。

在输出结尾处,您会看到标有LR Statistics For Type 3 Analysis的表格。 classvar的行是所有类效果的LR测试= 0。

答案 1 :(得分:0)

PROC REGTEST合作的另一种情况(TEST x1=0, x2=0, x3=0, x4=0,例如),它没有回答我PROC GLM的初始问题,但如果{{{} 1}}为您的模型类型完成工作。