在SAS二元logistic回归中强制保留无统计学显著性的TREAT变量以分析交互效应的方法咨询
在SAS二元logistic回归中强制保留无统计学显著性的TREAT变量以分析交互效应的方法咨询
你好!针对你在SAS中运行二元logistic回归时,想要强制保留TREAT变量(即便它无统计学显著性)来分析交互效应的需求,我来给你梳理几个可行的解决办法:
一、用include参数强制保留TREAT变量
你那位资深统计学家提到的include方案确实是可行的,只是需要注意正确的语法位置。在proc logistic的model语句里,include选项通过指定变量的序号来强制其保留在模型中,具体操作如下:
- 先确认变量顺序:你当前的模型自变量列表里,TREAT是第一个变量,对应序号为
1 - 修改
model语句,加入include=1参数即可,这样在向前逐步回归过程中,TREAT会被强制保留,不会因为显著性不足被剔除
给你修改后的代码示例(以FRSTVACREC为因变量的模型为例):
proc logistic data=work.hpvboys_pre_analysis_final plots=(oddsratio(cldisplay=serifarrow)); class Treat / param=glm; model FRSTVACREC(event='1') = Treat GENDER AGE QAGE RESP RACEETH / clparm=wald link=logit lackfit technique=fisher selection=forward slentry=0.05 sle=0.10 include=1; run;
同理,你只需要把第二个模型(CMPLTSRS为因变量)的model语句也加上include=1即可。
二、添加交互效应的方法
既然你想要分析TREAT和其他协变量的交互效应,这里也给你补充两种常见的实现方式:
- 方式1:手动写出所有交互项
如果你想直接拟合包含TREAT主效应、所有协变量主效应以及所有交互项的模型,可以直接把交互项列在自变量列表中,这样TREAT自然会保留在模型里:proc logistic data=work.hpvboys_pre_analysis_final plots=(oddsratio(cldisplay=serifarrow)); class Treat / param=glm; model FRSTVACREC(event='1') = Treat GENDER AGE QAGE RESP RACEETH Treat*GENDER Treat*AGE Treat*QAGE Treat*RESP Treat*RACEETH / clparm=wald link=logit lackfit technique=fisher; run; - 方式2:结合逐步选择与交互项筛选
如果你想让程序自动筛选显著的交互项,但同时强制保留TREAT的主效应,可以用SAS的快捷符号| @2生成所有二阶交互(主效应+两两交互),再配合include=1强制保留TREAT:
这里的proc logistic data=work.hpvboys_pre_analysis_final plots=(oddsratio(cldisplay=serifarrow)); class Treat / param=glm; model FRSTVACREC(event='1') = Treat | GENDER AGE QAGE RESP RACEETH @2 / clparm=wald link=logit lackfit technique=fisher selection=forward slentry=0.05 sle=0.10 include=1; run;Treat | ... @2会自动生成TREAT与每个协变量的主效应,以及它们之间的交互项,include=1确保TREAT主效应不会被剔除,而交互项则会按照你设置的slentry和sle标准参与向前选择。
小提示
如果后续你调整了自变量的顺序,记得同步修改include后的序号——序号是严格对应model语句中自变量的排列顺序的哦。
备注:内容来源于stack exchange,提问作者Noah Chirico
相关产品推荐
相关产品推荐

