2011-10-12 403 views
3

我想用SAS进行logitic回归中的标准似然比检验。我将有一个完整的逻辑模型,其中包含所有变量,名为A和嵌套逻辑模型B,它是通过从A中删除一个变量而得出的。如何执行SAS中逻辑回归的似然比检验?

如果我想测试该退出变量是否显着,我将执行模型A和模型B的似然比检验。是否有一种简单的方法在SAS中使用PROC执行此测试(本质上是卡方检验)?非常感谢你的帮助。

回答

2

如果您想执行完整模型v.s.的似然比测试,一个变量删除模型,您可以将GENMOD过程与type3选项一起使用。

脚本:

data d1; 
do z = 0 to 2; 
do y = 0 to 1; 
do x = 0 to 1; 
    input n @@; 
    output; 
end; end; end; 
cards; 
100 200 300 400 
50 100 150 200 
50 100 150 200 
; 
proc genmod data = d1; 
    class y z; 
    freq n; 
    model x = y z/error = bin link = logit type3; 
run; 

输出:

 LR Statistics For Type 3 Analysis 

          Chi- 
Source   DF  Square Pr > ChiSq 

y     1  16.09  <.0001 
z     2  0.00  1.0000 
1

我并不是逻辑回归方面的专家,但我认为您可以使用PROC LOGISTIC在MODEL语句中使用“SELECTION = SCORE”选项完成您想要完成的任务。还有其他SELECTION选项可供选择,例如STEPWISE,但我认为SCORE匹配距离您正在寻找的最近。我建议你阅读它,因为有一些相关的选项(BEST =,START = STOP =),你也可以从中受益。

+0

选择= SCORE实际上是最佳子集自动特征选择配置。这不是我正在寻找的。我想知道SAS中是否有一些PROC可以帮助我执行两个现有模型(一个嵌套另一个)的似然比测试。但非常感谢你的贡献。欣赏它。 – Steve

0

我不知道这一点,可以具体执行LRT,但你可以计算嵌套模型测试一个PROC语句。

脚本

proc ligistic data = full_model; 
model dependent_var = independent_var(s); 
ods output GlobalTests = GlobalTests_full; 
run; 

data _null_; 
set GlobalTests_full; 
if test = "Likelihood Ratio" then do; 
    call symput("ChiSq_full", ChiSq); 
    call symput("DF_full", DF); 
    end; 
run; 

proc ligistic data = reduced_model; 
model dependent_var = independent_var(s); 
ods output GlobalTests = GlobalTests_reduced; 
run; 

data _null_; 
set GlobalTests_reduced; 
if test = "Likelihood Ratio" then do; 
    call symput("ChiSq_reduced", ChiSq); 
    call symput("DF_reduced", DF); 
    end; 
run; 

data LRT_result; 
LR = &ChiSq_full - &ChiSq_reduced; 
DF = &DF_full - &DF_reduced; 
p = 1 - probchi(ChiSq,DF); 
run; 
+0

为什么要创建宏变量?你应该直接结合这两个数据集。 – Tom

+0

没有宏变量,如何识别完整和简化模型来计算它们的LR。 –

+0

使用RENAME =数据集选项。 – Tom