(8)如何用stata处理multiple responses多选题

多选题是问卷处理中一个相对比较麻烦的问题,让许多人头疼,不知该如何处理。在 spss 的分析菜单中专门为多选题提供了 multiple response(中文常译作 "多重响应",即可以有多种回答的题目,虽然翻译的并不好。O.O。) 的功能,只需要先定义一个多重响应集,然后就可以进行频数分析和列联表分析。

遗憾的是在 stata 中,官方并未提供相应的命令来处理这个问题,但是还好我们有强大的外部命令来弥补。B. Jann 2005年发表在 《stata journal》 上的一篇文章 Tabulation of multiple responses 提供了以 mrtab 为核心的一系列命令专门用来处理多选题的问题。本文基本学习自这篇文章,感谢前人的付出,有兴趣的可以去找原文看。

Note:本文使用的案例 data 和 dofile 见文末。若链接失效,请私信,看到会复,谢谢。

在分析之前我们必须先了解多选题数据存储的两种模式:the indicator mode(二分变量式) 和 the polytomous mode(多分类模式).

封闭式多选题、半开放式多选题

1、二分类的编码模式(the indicator mode):我们应该都很熟悉,在对类别变量的处理中经常会用到,即虚拟变量(0/1变量,“是”=1,“否”=0)的编码方式,将每一个选项都作为一个单独的变量,有多少个选项就有多少个虚拟变量,被访者选了该选项便编码为1,未选该项则编为0.如下图所示:

二分类编码模式示例

2、多分类的编码模式(the polytomous mode):也较容易理解,即直接对每一个选项按照1、2、3、4、5.....的顺序编码,有多少个选项就给多少个编码。这种编码方式的好处在于:对于半开放式的多选题尤为实用,因为在半开放式的多选题中,研究者无法预知除了自己设定的答案选项以外还会出现多少个新答案,当在某个 responser 处出现一个新答案时,研究者只需要在其后新增一个编码即可,非常方便。(此外,使用多分类的编码后 mrtab + gen 的 option 可以快速转换成二分类的编码方式,这个后面再说)如下图示例:

多分类编码_未加值标签
多分类编码模式_加上指标签

当然,我们似乎可以在二分类的编码模式下用 tab 命令对各项逐个进行统计,再汇总,但是这种办法显然不够便利,我们需要的是一步到位的简单办法。

多选题分析的主命令为 mrtab ,其基本的语法如下:

基本命令语法
案例使用的主要命令

下面对其中涉及的命令及一些主要的 options 进行解释,至于其他的可以自行阅读 help 文件。

主命令 mrtab :如果采用的是二分类的编码模式,则可以直接用 mrtab 加上所有的题项进行列表统计。stata 默认的是 1 表示“选中该项”,0 表示“未选中该项”。得出的结果如下:

mrtab jiaotong1-jiaotong4

poly & response:作为 option 两个需要搭配使用,poly 告诉 stata 我的编码方式为多分类编码模式,而response 则指定所有选项的编码,例如在案例中 1、2、3、4 覆盖了所有的编码,那么只需要加上 reponse(1/4) 或者 response(1 2 3 4)即可,告诉stata 1、2、3、4 是我的选项,所有不在这个 list 里面的值都会作为未选或者缺失。结果如下图:

sort :按照 frequency 的大小排序显示,在双变量的 mrtab 中还可以指定以哪一列为基准排序,如sort(1)即以第一列为基准排序,同理 sort(#)。

title:指定统计表的标题,中文都支持,如 title("Way to work"),可自行尝试。

generate( ):将多分类的编码模式转换成二分类的编码模式。mrtab vehicle1-vehicel4,poly response(1/4)  gen(jiaotong),在gen( )括号里自定义一个前缀名就行,例如我这里用jiaotong,就会转换成 jiaotong1 - jiaotong4 四个二分类变量。


mrtab vehicle1- vehicle4,poly  response(1 2 3 4) sort title("Way to work")

by:在多选题与其他类别变量做双变量列联统计的时候使用,by(另一类别变量 ),在本例中,我自己设置了一个 prof 职业变量,三类,1、教师;2、公务员;3、公司职员。所以只需要添加一个option——by(prof) 即可完成双变量列表统计。

双变量列表统计:只需添加一个 by(prof)

row & column :与普通的 tab 命令的row col 类似,在tab中是行百分比和列百分比,在这里差不多意思,col 表示计算百分比时分母的base是 column total of observations,row表示计算cell的百分比时的 base是row total of responses; this is equal to the row total of observations。可以自行尝试之后观察下。下面是加上 column之后的结果:

mrtab 加上column 的option 结果

chi2 & lrchi2:在双变量统计中常用,检验行列之间是否独立。使用的是卡方检验或者似然比卡方检验likelihood-ratio χ2 statistic。至于为什么用似然比卡方,作者给出的解释是 as an alternative to chi2,结果:

卡方独立性检验

mrgraph bar:多选题的柱状图绘图命令,与列表统计命令无太大区别,与普通的 graph bar 对于绘图设置的一些选项基本也都是通用的,例如改变 bar 的颜色,改变Y轴刻度标签 等等。具体可以查阅 graph bar 的 options,示例

mrgraph bar vehicle1- vehicle4,poly response(1 2 3 4) sort title(Way to work) ///

bar(1,color(green)) intensity(*0.8)  /*intensity填充颜色透明度为原来的80%*/


mrgraph bar

双变量的绘图:

mrgraph bar vehicle1- vehicle4,poly by(prof,separate ) response(1 2 3 4) ///

sort title("Way to work") bar(1,color(green)) bar(2,color(red)) ///

bar(3,color(purple)) intensity(*0.9) ylabel(0(3)18,angle(0)) ytitle("频率") ///

legend(row(3) position(11)  ring(0))

双变量绘图

横版绘图:只需要将命令中的 bar 改成 hbar 表示 horizontal 显示,然后再将图例的position修改为1点钟方向显示即可。

横版绘图

本文 data 和 dofile 文件:百度网盘链接:http://pan.baidu.com/s/1c1GtsPy 密码:gxbb

Referrence:B. Jann,《stata journal》2005,Tabulation of multiple responses

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,594评论 18 139
  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一种新的协议。它实...
    香橙柚子阅读 23,690评论 8 183
  • 可乐鸡翅: -水烧开,放入鸡翅焯水(滴少许料酒)烧开,盛出鸡翅沥干水 -葱段、姜片、八角、味极鲜爆香,加入鸡翅煎炒...
    开在夜里的花儿阅读 236评论 25 13
  • p/s :这就算是个回忆录,人物名字都会有所更动(不然被发现了的话会很尴尬的呀~),内容会有一些些地修改吧,不过主...
    小灵儿_阅读 264评论 0 0
  • 我眼中的优格(一) 2015年12月7日,入职优格的第一天。并不是自己的第一份工作,但是是坚持了最久的,在我看来半...
    _小辣椒YY阅读 1,146评论 0 3