SAS宏在健康素养监测数据管理中的应用

2021-11-06 05:08潘俊霞马文娟须凡帆王璐
东南大学学报(医学版) 2021年5期
关键词:宏程序监测数据问卷

潘俊霞,马文娟,须凡帆,王璐

(无锡市疾病预防控制中心/南京医科大学附属无锡疾病预防控制中心,江苏 无锡 214023)

2016年国务院印发《“健康中国2030”规划纲要》,居民健康素养水平成为健康中国建设的13个主要指标之一[1]。2012年起,居民健康素养监测成为日常监测工作,各省市采用国家统一问卷开展工作,为高质量完成该工作,江苏省率先开发出基于Andriod系统的健康素养现场调查软件,在数据收集和质量控制方面实现创新性突破[2]。但对于监测问卷数据整理,目前多采用SPSS、Excel等软件实现,其操作繁琐、可重复性差,费时费力,人为操作易发生错误。SAS作为常用数据处理及统计分析软件广泛应用于各领域,且SAS宏的高效性及便捷性能显著提高数据分析工作效率和质量[3]。本研究以全国居民健康素养监测调查问卷(2020年版)为例,运用SAS宏进行数据管理,突破问卷题目和评分标准限制,实现居民健康素养监测数据整理过程的标准化与规范化。

1 原理与方法

1.1 健康素养监测问卷构成与数据采集

全国居民健康素养监测调查问卷(2020版)由10个判断题、26个单选题、16个多选题、1个情景题(3个单选题和1个多选题)以及基本情况等5部分构成。现场调查采用基于Andriod系统的健康素养现场调查软件,问卷呈现在平板电脑(PAD)上,调查完成后调查员将数据通过PAD上传到监测后台,可导出Excel格式的数据用于进一步数据处理、统计分析等。

1.2 健康素养监测数据管理内容与判分标准

健康素养监测数据管理主要是在统计分析前按照标准答案判断问卷中题目的答案是否正确并根据国家标准生成3个维度、6大类健康问题及健康素养水平等分析变量,详见表1。健康素养问卷共56题,总分66分,答对≥80%,即得分≥53分为具备健康素养。健康素养水平用具备健康素养的居民数占被调查居民总数的百分比来衡量。

2 研究内容

采用SAS 9.4编写程序,设计思路是设计Excel参数表,将宏参数写入Excel,利用SAS与Excel结合,在程序运行时利用X命令对宏参数进行赋值[4],除底层基础宏程序外,涉及2个关键宏程序,分别是%questionexcel(datain=,answerexcel=) 和%standardexcel(datain=, standardexcel=)。利用宏程序% questionexcel(datain=,answerexcel=)实现自动、批量判断问卷中56道题目的答案是否正确并赋分,再根据国家制定的维度判断标准,利用%standardexcel(datain=,standardexcel=)计算3个维度、6大类重点健康问题及素养总得分,再判断每项是否具备素养水平,如此便可自动化生成标准的分析数据集用于后续统计分析。受篇幅所限,列出宏程序%questionexcel(datain=,answerexcel=)中主要程序,如下所示:

3 实际应用

以全国居民健康素养监测调查问卷(2020年版)为例,按照国家标准判断问卷答案是否正确并根据标准生成3个维度、6类重点健康问题及健康素养水平等分析变量,3维度及6类健康问题的划分标准和具备该维度或该健康问题素养的界值见表1。

表1 2020年国家健康素养监测题目维度划分及判断标准

proc sql noprint; select questionnum into :questionnumlist separated by "/" from_par; select newquestionnum into :newquestionnumlist separated by "/" from_par; select answer into :answerlist separated by "/" from_par; select score into :scorelist separated by "/" from_par;quit;/∗利用sql根据参数表所赋的值,生成4个需要的宏变量并赋值∗/data &datain.; set &datain.; %do p=1%to &answernobs; if%qscan(%bquote(&questionnumlist),&p,%bquote(/))="%qscan(%bquote(&answerlist),&p,%bquote(/))" then%qscan(%bquote(&newquestionnumlist),&p,%bquote(/))=%qscan(%bquote(&scorelist),&p,%bquote(/)); else%qscan(%bquote(&newquestionnumlist),&p,%bquote(/))=0; %end;run;/∗根据用户填写的参数表生成数据集,再利用条件语句循环对数据集进行计算并生成一系列分析变量∗/

程序运行过程首先是根据标准答案计算各题目得分,可通过运行宏程序%questionexcel(datain=,answer-excel=)实现,运行参数表如图1所示。第1列questionnum为原问卷中的题号,即程序自动读取原始数据中该题的变量名;第2列newquestionnum为新生成的变量名;第3列answer为正确答案;第4列score为该题分值。故图中第2行表示题目A01,正确答案answer是2,该题是单选题,分值为1,所以score填1;如果是多选题那么answer需要填正确答案如123,分值score相应改为2。参数表填写完成并保存后即可得出相应的分析变量,即newquestionnum所对应的各题目得分,如图2所示。

图1 计算各题目分数的Excel参数表(节选)

图2 生成各题目分数SAS结果显示(节选)

其次根据标准计算3维度、6类健康问题的得分和总分,并根据界值生成是否具备素养的变量,运行宏程序%standardexcel(datain=,standardexcel=)即可实现,运行后参数表如图3所示。以第2行为例,第1列wd1为新生成变量维度一:基本知识和理念的分数;第2列formula由表1中维度一的计算公式得出,即由判断、单选、多选和情景题共22道相加得出;第3列cutoff是维度一具备素养的界值25;第4列stralabel为新生成变量wd1level,即维度一是否具备健康素养,如果维度一的分数大于等于界值25,则wd1level为1,否则为0。具体生成数据集结果如图4所示。

图3 计算3维度、6类问题分数和总分并判断是否具备素养的参数表

图4 生成3维度、6类问题分数并根据界值生成是否具备健康素养(节选)

4 讨 论

健康素养是一个社会学指标,即反映我国社会发展的综合指标[5]。为及时了解我国城乡居民健康素养水平及其变化趋势,为制订、完善卫生健康相关政策提供依据,监测数据真实可信尤其关键。SAS软件因其权威性广泛应用于医药、金融等领域,利用SAS宏对监测数据进行数据管理提升了数据真实性和可信度,未见其他常用数据处理软件应用于健康素养监测数据整理的研究报道。

本研究采用SAS与Excel参数表结合的方式编写宏程序,不受问卷评分标准改变的限制,仅须在填写Excel参数表时将计算公式、分值、变量名等根据最新的问卷题目、评分标准等进行修改而不需要修改宏程序本身就可以产生需要的统计分析数据库,如不采用Excel参数表的形式,则一旦问卷内容或者题目评分标准发生改变就需要更改程序,增加工作量,同时,该方法对于其他学科的问卷调查数据管理过程也具有参考意义,拓宽了本程序的使用范围。全国各级疾病预防控制机构每年均开展居民健康素养调查,都需要对问卷数据进行数据管理和统计分析,并逐级上报数据和统计分析结果,问卷题目有56题,如使用Excel手动计算需要逐题进行操作,耗时费力,还无法确保手工操作过程中不发生错误,利用宏程序能使监测数据管理过程快速、准确地产生标准化分析数据库,对各级监测数据复核与汇总都具有实际意义,对疾病预防控制中心专业技术人员,尤其是基层工作人员具有很好的应用价值。宏程序编译成宏包并且提供使用示例后,仅须按照示例调用宏程序和填写Excel参数表即可使用,对不熟悉SAS的工作者也易于上手,为健康素养监测数据管理规范化提供了可能,大幅提高实际分析工作中数据处理效率。对于居民健康素养监测而言,实现数据管理过程标准化后,可进一步利用SAS软件开发出统计分析宏程序包,以便实现统计分析和报表生成自动化,提高工作效率。

猜你喜欢
宏程序监测数据问卷
椭球槽宏程序编制及其Vericut仿真
宏程序在加工中心生产中的应用
数控车编程教学中宏程序嵌套的应用
浅谈环境监测垂直管理的优势
环保验收监测异常数据的分析与处理探讨
问卷大调查
问卷你做主
北京经济社会发展月度监测数据(2008年11月)