APP下载

CSPro软件在中国总膳食调查研究数据库构建中的应用*

2012-03-11东南大学公共卫生学院流行病与卫生统计学系210009李万庆王灿楠蒋文瀚

中国卫生统计 2012年4期
关键词:数据项字典表格

东南大学公共卫生学院流行病与卫生统计学系(210009) 李万庆 闵 捷 刘 沛 王灿楠 田 野 蒋文瀚

普查与调查数据处理系统(The Census and Survey Processing System,CSPro)是由美国普查局开发、中国国家统计局计算中心进行汉化移植的一个免费应用软件。该软件具有数据录入、核查、双份比较、合并、数据转出且与其他软件兼容等优良特性,当某些复杂调查由多级调查问卷组成时,CSPro可以用树形结构显示隶属关系,同时通过后台编程使数据录入质量得到很好地保证,比较适合由多级调查问卷组成且调查对象较多的现场调查。本文以2011年中国总膳食调查研究数据库构建为例,介绍CSPro软件及其在中国总膳食调查研究数据库构建中的具体使用方法。

编写数据字典

1.CSPro的数据字典,通过对级(level)、记录(record)、数据项(item)和值集的定义来显示所有表与表之间、表与变量之间的隶属结构关系以及每个变量的输入类型、输入范围和输入值限制,以便将来生成结构清晰的三级调查表格数据库〔1〕。一个数据字典可有n个级为第一级,每级有n个记录为第二级,所有记录的第一个均为id项,每个记录有n个数据项为第三级,每级可由符号‘+’‘-’展开。图1为我们构建的中国总膳食调查研究的多级整体结构示意图,它包括总膳食研究、食物编码、recipecodes三个并列的数据字典,总膳食研究数据字典是总库,食物编码和cecipecodes数据字典为质量控制关联子库。其中,总膳食研究数据字典包含第一级总膳食研究questionnaire,总膳食研究questionnaire又包含第二级id、访问时间、完成质量、家庭实物量登记表、家庭成员每人每日用餐登记表、三日家庭成员每日膳食询问表等记录。而每个记录又包含第三级多个数据项,如id记录下包含省份、城市、农村、市、县、居委会、村、调查户等数据项。

2.在级的水平下对每个记录项进行设置,见图2,列出级下四个记录的设置,Type Value取不同的值区分不同类型的记录,Required选Yes代表该记录项为必填项目,Max取值表示每张表行数最大值,即四个记录以4张表格形式出现,每个表格的行数分别为4行,1行,60行和20行。

图1 中国总膳食调查研究数据字典多级整体结构示意

图2 部分记录的定义示意

3.每个记录项下都包含n个数据项,对于每个数据项可以从左到右依次定义变量标签,变量名,变量在总表中起始位数、变量长度、变量类型(有Alpha和Num型)、变量类别、变量重复次数、有无小数点、小数点是否显示、空值是否用0补齐〔1〕。如图3对调查对象id记录下的各数据项进行变量设置。

4.我们可以对每一个数据项的集值进行设置。如图4中对生理状态的输入范围进行设置,正常可用0替代,孕妇可用1替代,乳母可用2替代,如果允许空缺,可设置missing,否则special选项设为空。设置好后在录入时如果输入其他值时就会显示出错提示信息。

图3 部分数据项的定义示意

图4 数据项输入值设定示意

生成表格

1.三级数据字典编好后,点edit-generate forms,自动形成三级调查表格。中国总膳食研究调查数据库的部分表单如图1所示,可以清晰的看到它们之间的隶属关系,每张表分别与上述数据字典一一对应。

2.中国总膳食调查研究数据库中家庭食物登记表部分见图5,因为在数据字典中我们对家庭食物登记表这一纪录的最大行数max定义为60,故生成的该表格有60行,而且该记录下每个数据项都有60行。

图5 家庭食物登记表中信息输入形式示意

编辑逻辑代码程序

1.逻辑限制 CSPro有自己的编程语言,点viewlogic,进入逻辑代码编辑页面,可以对每一个变量进行进一步逻辑限制,并设置输入纠错提示。如在家庭成员每日用餐表中对调查人员的描述,当性别为男时,生理状态就不能为乳母或孕妇,对生理状态v28定义的程序如下:

Proc v28if$=2 or 3&a2=1 then errmsg(“男性生理状态不能为乳母或孕妇”);reenter;endif;

其中,$指代当前定义变量生理状态v28,v28=2 or 3指代生理状态孕妇或乳母,a2=1指性别为男性,errmsg()函数能够实现在录入过程中数据输入不符合要求时显示括号内的提示内容。

2.变量间的自动运算 如在家庭食物量登记表中已经依次输入第一、二、三日购进量,则三日总购进量会自动计算并填入。程序如下:

Proc v20apostproc v20a=v24a+v24b+v24c;

其中 v20a、v24a、v24b、v24c 分别为三日总购进量、第一、二、三日购进量。

3.跳转的设置 当一张表需要输入的内容已经输完,但表格行数的设置常大于等于需要的行数,就需要进行跳转设置,我们在中国总膳食研究调查数据库中设置为当该表的前两个变量均输入为空时跳转至下一张表格。程序如下:

Proc v2aif$=missing&a1b=missing then skip to va1;endif;

其中,v2a和a1b均为当前表的前两个变量,va1为下张表的第一个变量。

4.通过关联的质控文件进行限制〔2〕在总膳食调查数据库构建中,对所有要输入的食物编码,我们以杨月欣编撰的2002、2004中国食物营养成份表中的编码为依据进行输入限制。同编辑总库一样再编辑一个食物编码子库,定义数据字典,形成录入表格后,进入录入界面,输入所有编码,也可以从已有的电子文件中提取食物编码,以文本文件形式导入到食物编码子库中,再将总膳食研究与食物编码子库连接,就可以对总库中的食物编码变量v14进行logic限制〔2〕,如果输入的食品编码在子库定义的食物编码范围内,我们认为是正确的,否则,输入时会自动提示“食物编码不符合”。程序如下:

Proc v14postproc foodcode=$;if loadcase(foodcode_dict,foodcode)=0 then errmsg(食物编码不符合);reenter;endif;

当输入到食物编码变量时会自动装载foodcode子库中的值并与当前输入值进行比对,如果不符合则自动跳出“食物编码不符合”提示框。

从编写数据字典对各级level,各记录record,各数据项item进行数据库名称、各表格行数、变量名、数值类型、长度、小数点位数、取值范围等进行定义,到自动生成表格,再到logic中对变量进行逻辑限制和自动运算,一个完整严格的调查数据库就建立了。

讨 论

CSPro尤其适用于设计复杂的多级表格数据库。CSPro表格中每一列在构建数据字典时只需要设置一个变量,如食品编码v14,并设置该列有60行,CSPro会自动为每一行格子从v14_01到v14_60依次自动分配变量,并可对其进行逻辑编辑。其次,CSPro在逻辑核查中可调用外部数据集文件进行比对。在复杂调查由多级调查问卷组成时,CSPro可用树形结构显示其隶属关系,并通过变量编辑、各种逻辑限制和及时的输入纠错提示功能等确保一次录入就有较高的准确度,相信以后在公共卫生调查研究中会逐步得到更广泛的应用。

1.美国普查局国际项目中心,中国国家统计局计算中心.CSPro快速入门教程.http://www.stats.gov.cn/tdjt/xgzlxz/.

2.International Programs Center Population Division U.S.Census Bureau.CSPro User Guide Version 4.1.http://www.census.gov/population/international/software/cspro/.

猜你喜欢

数据项字典表格
国六柴油车远程排放监测数据项间相关性特征研究*
《现代临床医学》来稿表格要求
基于相似度的蚁群聚类算法∗
统计表格的要求
非完整数据库Skyline-join查询*
基于Python的Asterix Cat 021数据格式解析分析与实现
字典的由来
履历表格这样填
大头熊的字典
表格图的妙用