福利3:关联性研究表格2:批量提取多暴露对二分类结局的logistic所有参数,增加暴露分组的总人数、结局发生数、结局发生率

学术   2024-08-22 23:09   陕西  

接着上一期的logit_one的宏,logit_one仅能提取下表中的OR值,无法实现每一组相应总人数、患病人数、患病率的提取;

因此,小编在logit_one基础上进一步开发了logit_two宏。可实现暴露变量每一组相应总人数、患病人数、患病率的提取,弥补logit_one宏不足功能。

    

如上表所示,这是队列研究因此展示的是发病数、发病密度、模型1和模型2是HR值。类似的,我们的横断面研究一般是患病数、患病率和OR值。

而logit_one宏仅能提取模型1和模型2这样的HR值(横断面:OR值),但不能提取冠心病发病数(横断面:患病数)、发病密度(横断面:患病率)。

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

         

 

      

 

接下来介绍宏的说明:其实logit_two和上一期logit_one宏的参数和含义一模一样。    

logit_two宏介绍:

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

方法:二分类logistic回归

宏调用:%logit_two(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=否

暴露变量

超重肥胖

2分类

1=是,0=否

暴露变量

中心性肥胖

2分类

1=是,0=否

暴露变量

目的:分别以文化程度、是否吸烟、是否饮酒、超重肥胖、中心性肥胖为暴露变量;

高血压为结局变量;

各模型均调整性别、年龄、省份、城乡、婚姻,采用2分类logistic回归分析,并提取参数结果。以及各自变量分组的总人数、高血压数和高血压患病率

数据集:data.xlsx

注意:

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

2.该宏暴露变量要求是:分类变量

实践代码:

option validvarname=any;    

/*导入数据*/

proc import datafile="E:\02学习\经验\02SAS代码实现\模型结果批量提取合集\提取多暴露多结局logistic回归宏升级版\data.xlsx"

 out=data replace;

quit;

/*导入宏*/

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

/*logit_two宏参数介绍*/

/*data:填数据集

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

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

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

  y:结局变量

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

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



本期的原始数据

logit_two宏资料.zip


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

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



End




关注我获得

更多精彩




       

 

    



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