接着上一期的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;
/*导入宏*/
"E:\02学习\经验\02SAS代码实现\模型结果批量提取合集\logistic回归宏\logistic宏.sas"; include
/*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)其他无