福利2:简单易学的SAS宏;批量提取多暴露对二分类结局的logistic所有参数,再也不用一个一个粘贴了

学术   2024-08-18 13:07   陕西  


接着上一期的logistic的宏,小编进一步开发了针对“多个暴露对某个二分类结局关联的宏”。先看下面这个表格:分析的是“睡眠因素与冠心病的关系”,睡眠因素包括8个,即8个暴露;冠心病是结局。然后作者分别以这八个暴露因素作为自变量,以冠心病作为因变量,并且八个暴露对冠心病的模型的协变量都一样的。

    

当然,这是一篇前瞻性的研究,作者采用的cox比例分析风险模型。我们本次开发的宏应用场景类似于上表,也是分析多个暴露对二分类结局的影响,方法采用的logistic回归。

首先来看看小编本期开发的宏的结果:会保存到一个excel中:

可能常用的就是OR值和置信区间的合并和P值

接下来介绍宏的说明:

logit_one宏介绍:

功能:输出多个暴露对某个二分类结局的所有结果参数;各模型调整的变量一致。

方法:二分类logistic回归

宏调用:%logit_one(data=,

xlist=,

xie=,

class=,

y=,

lujing=)    

参数说明:

data:填数据集

  xlist:所有的暴露变量,以空格隔开填写,如xlist=x1 x2

  xie:各模型的需要调整的协变量,以空格隔开填写,如xie=x3 x4

  class:填写分类变量,以空格隔开填写,如class=x1 x2

  y:结局变量

  lujing:指保存excel结果文件的路径,如lujing=E:\02学习\经验\02SAS代码实现\模型结果批量提取合集

变量赋值表

变量

变量类型

赋值

属于

性别

2分类

1=男;2=女

协变量

年龄

连续


协变量

省份

多分类

21,23,32,37,41

协变量

城乡

2分类

1=城市,2=农村

协变量

婚姻

多分类

1-5

协变量

文化程度

多分类

1-6

暴露变量

是否吸烟

2分类

1=是,0=否

暴露变量

是否饮酒

2分类

1=是,0=否

暴露变量

BMI

连续


暴露变量

腰围

连续


暴露变量

超重肥胖

2分类

1=是,0=否

暴露变量

中心性肥胖        

2分类

1=是,0=否

暴露变量

目的:分别以文化程度、是否吸烟、是否饮酒、BMI、腰围、超重肥胖、中心性肥胖为暴露变量;高血压为结局变量;各模型均调整性别、年龄、省份、城乡、婚姻,采用2分类logistic回归分析,并提取参数结果。

数据集:data.xlsx

注意:因变量赋值为1,0;本宏拟合的是因变量=1的情况。

实践代码:

/*导入数据*/

option validvarname=any;proc import datafile="E:\02学习\经验\02SAS代码实现\模型结果批量提取合集\data.xlsx" out=data replace;quit;

/*导入宏*/

%include "E:\02学习\经验\02SAS代码实现\模型结果批量提取合集\logistic回归宏\logistic宏.sas";

/*logit_one调用*/

%logit_one(data=data,xlist=文化程度 是否吸烟 是否饮酒 BMI 腰围 超重肥胖 中心性肥胖,    xie=性别 年龄 省份 城乡 婚姻,class=性别 省份 城乡 婚姻 文化程度 是否吸烟 是否饮酒 超重肥胖 中心性肥胖,y=高血压,lujing=E:\02学习\经验\02SAS代码实现\模型结果批量提取合集\提取多暴露多结局logistic回归宏);

以上运行结束后会自动生成1个excel文件:多暴露对高血压logistic回归分析结果:

解释:一般来说,可以直接复制暴露变量、分组、OR_he、p这几列就可以了。

分类暴露变量的参照组想更改如何办:

SAS默认是以最大值为参照的,那自己想设置每个暴露的参照怎么办呢?

方法同上期:在class参数这样写:

class=文化程度(ref="1") 是否吸烟(ref="0") 是否饮酒(ref="0") 超重肥胖(ref="0") 中心性肥胖(ref="0")

即class的每个变量后面增加(ref=" ")即可

/*暴露变量设置参照的方法*/    

%logit_one(data=data,xlist=文化程度 是否吸烟 是否饮酒 BMI 腰围 超重肥胖 中心性肥胖,xie=性别 年龄 省份 城乡 婚姻,class=性别 省份 城乡 婚姻 文化程度(ref="1") 是否吸烟(ref="0") 是否饮酒(ref="0") 超重肥胖(ref="0") 中心性肥胖(ref="0"),y=高血压,lujing=E:\02学习\经验\02SAS代码实现\模型结果批量提取合集\提取多暴露多结局logistic回归宏);

结果如下:可以看到文化程度展示的是2-6结果,是否吸烟、是否饮酒、超重肥胖、中心性肥胖展示的1的结果;因为被作为参照了。

注意、注意、注意点:

(1)因变量赋值为1,0;本宏拟合的是因变量=1的情况。

(2)其他无



本期的原始数据

logit_one宏资料.zip


本公众号致力于分享实用的医学科研干货和热点科研文章共享平台,如果您有任何医学科研相关问题或经验分享,可以私信我!

谢谢阅读,以上均为个人在科研实践过程中的一些做法,如有错误敬请指正!!!



End




关注我获得

更多精彩




     

 

    


流病统计与科研学习笔记
流行病与卫生统计学专业主要分享基于SAS、R以及其他统计软件实现各种统计学方法和结果绘图,提高自己的学习能力
 最新文章