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

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

???? 连享会主页: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 是一系列控制变量的线性函数,