如何使用stata清洗问卷数据

使用公司内部问卷系统来发送问卷,回收问卷后会有诸多错漏。因此问卷回收之后,首先要进行数据清洗,清洗完毕后才可进行分析。问卷清洗的工具有多种,如Excel、SPSS、stata等。我常用的清洗工具是stata,它既简单又快捷。本文我将总结使用stata清洗问卷数据的几个常用的简单步骤,供大家学习参考。

第一步:剔除问卷回答时长过短的问卷

一份问卷的题目长度一般在10-25道题间,一般以多选题为主。一个用户完成这样一份问卷,至少需要一分钟。为了剔除那些不认真填答的用户,有必要在问卷发出时就设置答卷时长统计。假如答卷时长的字段名称为“time”,那么在回收问卷后,可以在stata中用以下命令剔除这些用户:drop if time<60

第二步:删除内部员工数据

我们在发布问卷时,为了测试问卷是否能正常送达、是否能正常填答,通常会把几名内部人员的手机号/后台ID也放进问卷调研样本中。所以在回收问卷时,有几份问卷是内部人员填答的,是需要剔除的。假如此次给内部人员123、234、345都发放了问卷,可以在stata中用以下命令剔除这三个内部用户:drop if id=123 | id=234 | id=345

第三步:对年龄和职业进行交叉剔除

许多调研为了统计用户的人口特征,都会在问卷最后附上人口学相关的单选题(如年龄、职业、收入)。然而,有部分用户填答问卷时不够认真,会盲选答案,为了保证问卷结果的可信度,可以考虑是否有必要把这些用户剔除掉。

下面我举一个例子来说明:

e2为年龄题:

e4为职业题:

按照常理,我们都知道人们一般在60岁后退休,50岁以下退休的人极为少见。当样本量足够的情况下,可以考虑把选择了50岁以下退休的用户数据剔除,即是把年龄选了50岁以下且e4的职业选了“12退休”的用户剔除,剔除命令如下:

drop if e2==1 & e4==12

drop if e2==2 & e4==12

drop if e2==3 & e4==12

drop if e2==4 & e4==12

drop if e2==5 & e4==12

drop if e2==6 & e4==12

drop if e2==6 & e4==11

drop if e2==7 & e4==11

第四步:根据排他项逻辑补充数据

排他项是多选题中常见的选项,如下题:

第9个选项是明显的排他项,当选择了9时,其他选项都会变为不可选择的状态。一些问卷系统在导出选择了排他项的数据时,无法自动补充其他选项的数据,导出后会显示如下:

由图可见,除了f9补充了数字1,其余选项都是空白,这种数据是无法统计的,必须把f1-f8的数据补充为0才可以统计。补充命令如下:replace f1=0 if f9==1。(以f1为例)

补充完毕后,数据会显示如下:

第五步:处理多选题的其他项

在多选题中出现其他项时,默认会让用户填写文本内容。当用户填写了其他项的文本内容时,数据导出后会直接显示文本内容。要知道,文本内容是无法直接统计的,统计工具只能统计数字。

如下图,g9是一个其他项。

当用户选择了g9,导出的问卷数据可能会显示如下:

g9的数据是无法统计的,因此需要根据g9来新建一个变量g9_other来计算。命令如下:

gen g9_other=.

replace g9_other=1 if g9!="0"&g9!=.

replace g9_other=0 if g9=="0"

label var g9_other "其它项(0/1)"

执行命令后,数据显示如下:

第六步:定义权重

在实际的问卷统计过程中,时常会用到加权的概念。所谓加权,就是当样本的构成跟总体的构成不一致时,可能会导致回收的问卷结果无法反应总体的特征,这时候就需要使用加权,让样本乘以一个加权系数,使得样本构成与总体构成一致(由于统计要求不同,对加权系数的计算也会不同,这里对加权系数就不展开论述了)。

例如,h题为性别题,选项1为男性,选项2为女性。男性的加权系数为1.6,女性的加权系数0.4,这时需要给数据新增一个加权变量,命令如下:

gen weight=.

replace weight=1.6 if h==1

replace weight=0.4 if h==2

执行命令完毕后就会看到原始数据多了一列名为“weight”变量的数据。

推荐阅读更多精彩内容

  • pdf下载地址:Java面试宝典 第一章内容介绍 20 第二章JavaSE基础 21 一、Java面向对象 21 ...
    王震阳阅读 88,926评论 26 538
  • 因为每个月会分析部门内部各个小团队的平均加班时长,以评估大家的工作量,每次手工分析纯粹是重复逻辑工作,做多了之后便...
    miyasz阅读 935评论 0 2
  • 作者:谢作翰 | 连玉君 | (知乎 | 简书 | 码云) 编者按: 从本期开始,Stata 连享会将推出「St...
    谢作翰阅读 5,500评论 0 8
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    会飞的鱼69阅读 23,529评论 18 391
  • 曾经本是美好的历程,只因一个荒唐的选择,如今才有这个不堪的结局。 在父母,朋友,同学的眼里我是一位严于律己,不会让...
    小研子阅读 96评论 0 0