【问题标题】:CONTRAST for CLASS variable with more than two levels in PROC GLMPROC GLM 中具有两个以上级别的 CLASS 变量的 CONTRAST
【发布时间】:2014-02-13 02:35:34
【问题描述】:

背景:当我们测试一个已经编码为虚拟变量的分类变量的显着性时,我们需要同时测试所有虚拟变量为0。例如,如果X em> 取值 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 =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 有相对新手级别的知识(不幸的是还没有找到很好的文档来帮助解决这个问题),以及为了估计而应该如何真正制定这个假设检验(我是否尝试拆分它像我上面做的那样分解成碎片,或者......?)。

【问题讨论】:

  • 你可以使用 LR 测试吗?我很确定您可以使用 GLM 进行 MLE,并从有和没有虚拟变量的拟合中获得对数似然。

标签: sas contrast categorical-data


【解决方案1】:

根据我上面的说明,您实际上可以使用 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 所在行是所有类 effects=0 的 LR 测试。

【讨论】:

  • 感谢您的回复,我愿意接受使用其他程序的“变通办法”。然而,我只是想知道使用 CONTRAST 语句的更“通用”方式,这样理论上我可以使用任何支持 CONTRAST 语句的过程来完成测试。
  • 我从来没有真正使用过 CONTRAST 语句,所以我无法给出建议。
【解决方案2】:

PROC REGTEST 有效的另一种情况(例如,TEST x1=0, x2=0, x3=0, x4=0),它没有回答我对PROC GLM 的最初问题,但如果PROC REG 可以为您的类型完成工作,这是一个选项的模型。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-25
    • 1970-01-01
    • 2018-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-20
    相关资源
    最近更新 更多