锚定情境法(一):有效控制变量自评偏差

发布时间:2020-10-27 阅读 89

???? 连享会主页:lianxh.cn

连享会 · 名师讲坛


???? 空间计量 专题
⌚ 2020.12.10-13

???? 主讲:杨海生 (中山大学);范巧 (兰州大学)

???? 课程主页https://gitee.com/arlionn/SP

连享会 · 计量专题


???? 因果推断-内生性 专题
⌚   2020.11.12-15

???? 主讲: 王存同 (中央财经大学);司继春(上海对外经贸大学)
???? 课程主页https://gitee.com/arlionn/YG

作者: 张沛康 (北京大学, patrick.zhang@pku.edu.cn)

连享会 Stata 暑期班-论文班助教

Source: 以下部分内容源自笔者的研究 (吴琼和张沛康,2019) 以及 Gary King 使用锚定情境法的 R 语言操作指南 (Wand J, King G 和 Lau O,2011)


目录


Notes: 以下部分需要用到 R,有关 R 的安装和介绍,参见:Rcall:Stata 与 R 的无缝对接 ( 微信版 )。

1. 背景

在问卷调查中,我们可以发现有各种类型的主观测评题,如询问受访者的健康水平、主观社会地位、幸福感、政治效能感等等。这类题目在研究中常用作关键的被解释变量,有时也会用作解释变量或控制变量。受访者在填写主观测评题时会根据自己的评价标准进行判断分析,这个评价标准可能在不同的人群中有巨大差异,有时会导致客观情况处于优势的人群自我主观评价较低的现象 (王广州和王军,2013) 。有学者认为评价标准的差异来源于不同人群采用了不同的参照群体 (李培林和张翼,2008; 吴菲和王俊秀,2017) 。根据参照群体理论,人们在进行比较时,往往会选择和他们同质的人作为参照。

基于此背景,今天笔者给大家介绍的是哈佛大学定量社会科学研究中心主任 Gary King 教授设计的锚定情境法 (Anchoring Vignette),这种方法有助于减少项目功能差异 (Response-Category Differential Item Functioning ,DIF) 导致的测量误差,改善不同群体之间的不可比性。

2. 锚定情境法的含义及应用

2.1 锚定情境法的含义及实例

具体而言,锚定情境法是通过给受访者一些与调查主题相关的假设性情境,让他们根据情境内容进行作答。以「中国家庭追踪调查」(CFPS) 的健康情境题为例,受访者需要对以下两种情境中的任务进行打分。

A 孙军在走路、跑步、活动四肢上毫无问题。他每周慢跑 2 次,每次跑 5 公里。他记不得最近一次感到身体疼痛是什么时候,因为最近一年里他都从未感到过疼痛。即使在体力劳动或者锻炼后,他也不曾感到任何身体疼痛。你认为,孙军的健康状况如何?

B 王丽走 200 米的路毫无困难。但走完一公里或爬完几层楼后,会觉得累。他的日常活动没有问题,比如从市场上买完菜拎回家。他每月都有一次头痛,吃药之后会有所缓解。头痛时,他能继续做日常工作。你认为,王丽的健康状况如何?

研究者通过受访者对情境题的回答了解受访者的评价标准,以调整不同群体在进行主观评价时的异质性,其基本原理如图 1 所示。

图1:锚定情境法的原理

锚定情境法的运用需满足两个假设:

  • 其一,应答一致性(Response Consistency),即受访者用相同的选项来回答主观题与情境题;
  • 其二,情境等值性 (Vignette Equivalence),即除了随机误差,受访者用相同的标准去理解每一个情境。在国内,「中国家庭追踪调查」 (CFPS) 、「中国健康与养老追踪调查」 (CHARLS) 和「中国劳动力动态调查」 (CLDS) 等也设置了情景题。

接下来笔者给大家介绍如何用 R 来呈现情境题的基本情况,所用的数据是 Gary King 教程中提供的数据freedom,该数据含有一道自评题和六道情境题,都是用来测量受访者对自身及六个情境人物的 political freedom 的看法。

  • 安装命令和数据
>library("anchors")
>data("freedom")
  • 情境题的描述性统计
z1 <- anchors.order(~ vign1 + vign2 + vign3 + vign4 + vign5 + vign6, freedom)

>summary(z1, top = 10, digits = 3)

ANCHORS: SUMMARY OF VIGNETTE ORDERING

Treatment of ties: represent as sets
Number of cases with at least two distinct vignette responses: 3267
and with no violations of natural ordering: 773
and with no more than 1 violation of natural ordering: 1654
and with no more than 2 violation of natural ordering: 2299   //情境题违反客观情况的受访者数目

Proportion of cases a vignette (row) is less than another (column):
<1 <2 <3 <4 <5 <6
1 NA 0.235 0.651 0.757 0.715 0.775
2 0.321 NA 0.663 0.732 0.707 0.754
3 0.080 0.121 NA 0.457 0.363 0.575
4 0.056 0.080 0.138 NA 0.183 0.374
5 0.067 0.068 0.198 0.339 NA 0.495
6 0.055 0.070 0.081 0.100 0.103 NA   //情境题分值的两两比较

Upper tri = p*{ij} - p*{ji} (negative values suggest misorderings)
Lower tri = 1 - p*{ij} - p*{ji} (big numbers means many ties)
1 2 3 4 5 6
1 NA -0.085 0.571 0.702 0.649 0.720
2 0.444 NA 0.542 0.652 0.639 0.684
3 0.269 0.405 NA 0.320 0.165 0.494
4 0.215 0.218 0.477 NA -0.156 0.275
5 0.187 0.225 0.171 0.345 NA 0.392
6 0.188 0.440 0.176 0.526 0.402 NA   //「上三角」与「下三角」的差值

Top 10 orderings (out of 615 unique orderings):
Frequency Proportion Ndistinct Nviolation
{1,2,3,4,5,6} 233 0.0666 1 0
{1,2},{3,4,5,6} 129 0.0369 2 0
{1,2},3,{4,5,6} 113 0.0323 3 0
{1,2},{3,5},{4,6} 98 0.0280 3 1
{1,2},{3,4,5},6 97 0.0277 3 0
2,1,{3,4,5,6} 93 0.0266 3 1
{1,2},3,{4,5},6 79 0.0226 4 0
{1,2},5,{3,4,6} 63 0.0180 3 2
2,1,3,{4,5},6 58 0.0166 5 1
2,1,{3,5},{4,6} 57 0.0163 4 2   //六道情境题相对大小的各种可能性

需要注意的是,{1,2} 代表vign1=vign2。

2.2 非参数法

在对非参数法的原理进行解释时,为了便于理解,我们以刚才提到的 CFPS 的健康情景题为例。我们假设受访者 i 的自评健康为 yi,对王丽和孙军的打分分别为 zi1 和 zi2。从情境题的描述可以判断,王丽的健康水平不如孙军。实施非参数法时,我们先将 yi 和 zi1zi2 进行比较,然后构造一个变量 ci 来表示减少受访者的主观偏差后的健康水平。

当情境题的排序与假设的客观情况相符时 (zi1<zi2),ci 存在五种结果:(1) 如果 yi<zi1,即受访者认为自己的健康水平不如王丽,那么 ci=1;(2) 如果 yi=zi1,即受访者认为自己的健康水平与王丽一致,那么 ci=2; (3) 如果 zi1<yi<zi2,即受访者认为自己的健康水平介于王丽和孙军之间,那么 ci=3; (4) 如果 yi=zi2,即受访者认为自己的健康水平与孙军一致,那么 ci=4;(5) 如果 yi>zi2, 即受访者认为自己的健康水平比孙军更高,那么 ci=5。具体表示如下:

上述通过重新编码得到的 ci 都是基于情境题的排序与假设的客观情况相符的情况。但在实际调查中,我们常发现情境题的排序与假设的客观情况不符的情况 (zi1>zi2) 或出现打结点的现象 (zi1=zi2)。目前处理这些情况的方法包括直接删除法 (omitting interval values)、平均分配法 (uniform allocation within intervals) 、参数辅助法 (censored ordered probit) 和最小熵法(minimum entropy)

在实际中,我们可能遇到的不只是两道情境题,而是三道甚至更多,此时 ci 的取值会更为复杂。接下来,我们尝试用 R 来熟悉非参数法的操作,所用的例子仍然是 Gary King 的教程中提供的数据 freedom。为了简化,笔者从中选取了前四道进行分析。下面的结果会给出通过这四种方法得到处理含有"情境题的排序与客观情况不符"和「打结点」这两种情况的 ci

>z2 <- anchors(self ~ vign1 + vign2 + vign3 + vign4, freedom, method = "C", combn = TRUE)
>summary(z2)

ANCHORS: SUMMARY OF RELATIVE RANK ANALYSIS:

Overview of C-ranks

Number of cases: 1216 with interval value, 2284 with scalar value

Maximum possible C-rank value: 9

Interval on C-scale: Frequency and proportions Cs to Ce
         N   Prop    MinEnt
 1 to  1 339 0.097      1
 2 to  2  48 0.014      2
 3 to  3  29 0.008      3
 4 to  4  68 0.019      4
 5 to  5 336 0.096      5
 6 to  6 148 0.042      6
 7 to  7 186 0.053      7
 8 to  8 483 0.138      8
 9 to  9 647 0.185      9
 1 to  4 121 0.035      1
 1 to  5  31 0.009      5
 1 to  6  24 0.007      5
 1 to  7   3 0.001      5
 1 to  8  33 0.009      8
 1 to  9  12 0.003      8
 2 to  4 111 0.032      4
 2 to  5  64 0.018      5
 2 to  6  40 0.011      5
 2 to  7  13 0.004      5
 2 to  8 134 0.038      8
 2 to  9  27 0.008      8
 3 to  6   4 0.001      5
 3 to  7  11 0.003      5
 3 to  8  26 0.007      8
 3 to  9  12 0.003      8
 4 to  6  14 0.004      5
 4 to  7  21 0.006      5
 4 to  8 108 0.031      8
 4 to  9  79 0.023      8
 5 to  8  62 0.018      8
 5 to  9   9 0.003      8
 6 to  8 195 0.056      8
 6 to  9  62 0.018      8      //每个 C 的取值范围的占比及最小熵

Note: MinEnt is the rank for the interval that minimizes entropy

Summary of C-ranks with ties/intervals broken:

Distribution of ranks omiting interval cases
     1     2     3    4     5     6     7     8     9
 0.148 0.021 0.013 0.03 0.147 0.065 0.081 0.211 0.283

Distribution of ranks allocating interval cases uniformly
    1     2     3     4     5     6     7     8     9
 0.11 0.051 0.049 0.073 0.135 0.098 0.104 0.186 0.195

Distribution of ranks allocating interval cases via cpolr
and conditioning on observed ranks
    1     2     3     4     5     6     7     8     9
0.120 0.035 0.022 0.073 0.157 0.080 0.090 0.223 0.200

Allocating cases to their MinEnt values produces
    1     2     3     4     5     6     7     8     9
0.131 0.014 0.008 0.051 0.160 0.042 0.053 0.355 0.185     //非参数法调整后的 C 在各取值上的比例

直播课程:实证研究设计 (2.4小时)

画图

>par(mfrow = c(2, 2))
>ylim <- c(0, 0.5)
>barplot(z2, ties = "omit", ylim = ylim, main = "Omit Tied Cases")
>barplot(z2, ties = "uniform", ylim = ylim, main = "Uniform Allocation")
>barplot(z2, ties = "cpolr", ylim = ylim, main = "Censored Ordered Probit Allocation")
>barplot(z2, ties = "minentropy", ylim = ylim, main = "Minimum Entropy Allocation")
图2:用非参数法调整后的C

图 2 是用非参数法调整主观偏差后的 ci 的分布。需要注意的是,调整前的political freedom有 5 个值,而调整后的打分有 9 个值。为了提高可比性,许多研究会将这 9 个值合并为 5 个值,例如将 1 和 2 合并、3和 4 合并、6和 7 合并、8和 9 合并。具体的合并方式需根据研究需要以及数据结构来决定。

细心的读者如果将上述结果与 Gary King 教程中呈现的结果进行对比就会发现,两者是有差异的,原因有二:第一,Gary King 选取的是 vign1、vign2、vign3 和 vign6,而笔者选取的是 vign1-vign4;第二,Gary King 调整了四道情景题的顺序,即对四个情境的 political freedom 相对大小进行了设定 (vign2<vign1<vign3<vign6)。关于情境题的选取对结果的影响,我们将在下一篇关于锚定情景法的推文中进行介绍。

2.3 参数法

参数法是通过 CHOPIT 模型来调整个体的评价标准,CHOPIT模型是在「分层顺序概率模型」 (hierarchical ordered probit, HOPIT) 的基础上发展而来的模型。我们假设个体 i 的真实健康状况 Yi 是一个连续变量,服从正态分布 Yi~N(μi,1); μi 是一系列控制变量的线性函数,μi=Xiβ+ηi 为服从正态分布的随机效应,ηi~N(0,ω2)。个体 i 的自评健康 yi 由真实值 Yi 在连续尺度上的截点值所决定的,截点值由受访者自身的变量 Vi 所决定:

$$\tau_{i-1}^{k}使用 CHOPIT 模型得出的结果表示的是调整主观偏差后的结果。我们还需要以主观题为被解释变量,受访者个体特征为解释变量,用 Ordered Probit 模型进行分析,得出调整主观偏差前的结果,接着对调整前后的结果进行分析。参数法与非参数法的一个区别是,用参数法进行调整时需要考虑受访者的个体特征。在经济学领域的研究中,Arie Kapteyn et al. (2007) 已经尝试用锚定情境法降低了工作伤残 (work disability) 的主观偏差。

以下为用 R 操作的 CHOPIT 模型的代码及估计结果。

>fo <- list(self = self ~ sex + educ + factor(country),
>vign = cbind(vign1, vign2, vign3, vign4, vign5, vign6) ~ 1,
>tau = ~ sex + factor(country))
>cout <- chopit(fo, data = freedom)
>summary(cout)

ANCHORS: SUMMARY OF RELATIVE CHOPIT ANALYSIS:

Model formula:
$`self`
self ~ sex + educ + factor(country)

$vign
cbind(vign1, vign2, vign3, vign4, vign5, vign6) ~ 1

$tau
~sex + factor(country)

$cpolr
~1
<environment: 0x0000000006b31f00>

Coefficients:
                                    coeff   se
gamma.cut1.(Intercept)            -1.7165 0.0532
gamma.cut1.sex                     0.0546 0.0227
gamma.cut1.factor(country)Eurasia  0.0405 0.0503
gamma.cut1.factor(country)Oceania -0.1411 0.0307
gamma.cut2.(Intercept)             0.6789 0.0200
gamma.cut2.sex                    -0.0422 0.0205
gamma.cut2.factor(country)Eurasia -0.0211 0.0450
gamma.cut2.factor(country)Oceania  0.0297 0.0273
gamma.cut3.(Intercept)             0.7384 0.0178
gamma.cut3.sex                    -0.0265 0.0166
gamma.cut3.factor(country)Eurasia  0.0336 0.0373
gamma.cut3.factor(country)Oceania -0.0997 0.0216
gamma.cut4.(Intercept)             0.6691 0.0165
gamma.cut4.sex                     0.0442 0.0158
gamma.cut4.factor(country)Eurasia  0.0510 0.0361
gamma.cut4.factor(country)Oceania  0.0220 0.0209
sigma.random.effect                1.0000    NaN
sigma.self                         1.0000    NaN
sigma.vign1                        0.8006 0.0183
sigma.vign2                        1.0030 0.0239
sigma.vign3                        0.7561 0.0173
sigma.vign4                        0.8354 0.0208
sigma.vign5                        0.7299 0.0172
sigma.vign6                        1.3247 0.0414
theta.vign1                       -1.0567 0.0502
theta.vign2                       -1.1747 0.0520
theta.vign3                       -0.2165 0.0482
theta.vign4                        0.1994 0.0497
theta.vign5                       -0.0240 0.0483
theta.vign6                        0.9754 0.0634
beta.(Intercept)                   0.0000    NaN
beta.sex                           0.1352 0.0387
beta.educ                         -0.0696 0.0109
beta.factor(country)Eurasia        0.4685 0.0895
beta.factor(country)Oceania       -0.7167 0.0513

-Log-likelihood of CHOPIT:  32870.53

Partition of CHOPIT -Log-likelihood by question:
              -LL     N
Self (self) 5185.373 3467
vign1       5116.043 3496
vign2       5288.353 3496
vign3       4843.890 3496
vign4       4397.889 3496
vign5       4562.675 3496
vign6       3476.309 3496

Number of cases that contribute at least partially to likelihoods:
   a) in self-responses: 3467
   b) in vign-responses: 3496

在将 CHOPIT 模型与 Ordered Probit 模型进行比较时,我们主要关注的是 β 的系数和标准误。  

3. 使用锚定情境法时的注意事项

3.1 情境题的设置

不同调查数据的情境题的评价领域、题目数量、受访者范围选项类别均有所差异。以 CFPS2012、CHARLS2011 和 PISA2012 为例,表 1 是各调查数据的情境题的具体情况。

表1:调查数据的情境题特征

由表 1 可知,比较特别的是,在情境题数量方面,CFPS2012 只有两道情境题;在受访者范围中,CHARLS2011 和 PISA2012 没有让全部受访者进行情境题的打分;在选项类别中,CFPS2012 的健康情境题中,「一般」选项的打分为 4 而非 3,PISA2012 没有中间等级的打分。因此在使用情境题的时候,我们需要留意不同数据在各方面的差异,选取符合研究需要的题目。

3.2 情境题的应答质量

实际上在进行调查时,受访者并非能完全理解情境题的含义。笔者基于 CFPS、CHARLS 和 PISA 的一项研究显示,教育水平和认知水平 (如字词记忆能力、数列能力等方面) 较低的受访者,难以正确对假设的情境做出合理的判断,从而在给情境题的打分时更容易出现乱序无区分的情况。因此,上文给出的用 R 进行描述性统计的方法,可以帮助我们分析乱序和无区分数据的具体情况,从而判断情境题的应答质量,有助于选取合适的方法进行调整。

参考文献

  • 吴菲, 王俊秀. 相对收入与主观幸福感: 检验农民工的多重参照群体[J]. 社会, 2017,37(02): 74-105. -Link-
  • 吴琼, 张沛康. 问卷调查中情境题的应答质量及其与认知功能的关系[J]. 统计研究,2019,36(05):45-53. -Link-
  • 王广州, 王军. 中国家庭幸福感测量[J].社会,2013,33(06):139-160. -Link-
  • 李培林, 张翼. 中国中产阶级的规模、认同和社会态度[J].社会,2008(02):1-19+220. -Link-
  • Kapteyn A, Smith J P, Van Soest A, et al. Vignettes and self-reports of work disability in the United States and the Netherlands[J]. The American Economic Review, 2007, 97(1): 461-473. -Link-
  • Wand J, King G, Lau O, et al. anchors: Software for Anchoring Vignette Data[J]. Journal of Statistical Software, 2011, 42(1): 1-25. -Link-

相关课程

连享会-直播课 上线了!
http://lianxh.duanshu.com

免费公开课:


课程一览

支持回看,所有课程可以随时购买观看。

专题 嘉宾 直播/回看视频
最新专题 DSGE, 因果推断, 空间计量等
Stata数据清洗 游万海 直播, 2 小时,已上线
研究设计 连玉君 我的特斯拉-实证研究设计-幻灯片-
面板模型 连玉君 动态面板模型-幻灯片-
面板模型 连玉君 直击面板数据模型 [免费公开课,2小时]

Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。


关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。直播间 有很多视频课程,可以随时观看。
  • 连享会-主页知乎专栏,300+ 推文,实证分析不再抓狂。
  • 公众号推文分类: 计量专题 | 分类推文 | 资源工具。推文分成 内生性 | 空间计量 | 时序面板 | 结果输出 | 交乘调节 五类,主流方法介绍一目了然:DID, RDD, IV, GMM, FE, Probit 等。
  • 公众号关键词搜索/回复 功能已经上线。大家可以在公众号左下角点击键盘图标,输入简要关键词,以便快速呈现历史推文,获取工具软件和数据下载。常见关键词:课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法

连享会主页  lianxh.cn
连享会主页 lianxh.cn

连享会小程序:扫一扫,看推文,看视频……

扫码加入连享会微信群,提问交流更方便

✏ 连享会学习群-常见问题解答汇总:
https://gitee.com/arlionn/WD