如何对样本进行加权?
Weighting(加权)主要用于两种情况:一、如果原始样本是 Probability Non—Proportionate to Size (NPPS,或非等比随机抽样),如我曾参与过的一个中国女记者调查,为了比较,需要同时抽取男记者,而根据人事部登记资料,当时全国男女记者之比大约为2:1,如果采用PPS (Probability Proportionate to Size,等比随机抽样), 那么在抽取的样本中我们的主要研究对象(女记者)只有三分之一,显然没有很好的利用资源。因此我们在抽样时用NPPS,将男女比例反过来为1:2,抽取样本中三分之二为女性。当我们在计算中国记者(即男女全在内)的基本情况,如教育程度、工作经验、担任职务、跳槽意向等等时,必须先将样本按总体参数(在本例中是人事部记者登记资料中的男女之比)进行加权.我2000-02年在北京和广州做互联网使用调查时,用了一种更复杂的NPPS抽样方法,其结果也一定要先加权(以后有机会详细介绍那个抽样过程)。
需要加权的另一种情况是原始样本为PPS而产生,但因为成功率不高而其导致样本的某些阶层过少另些阶层(相对)过多.以下是这次调查的年龄分布与总体相应参数之比较:
表一、样本年龄分布与总体年龄分布之比较
Age | 1. Population | 2. Sample N | 3. Sample % | 4。 S/P (=3/1) | 5. P/S (=1/3) | 6. Weighted Sample N (=2X5) | 7。 Weight Sample % |
18 — 19 | 3.3% | 110 | 10.5% | 3。16 | 0。316 | 35 | 3。3% |
20 - 24 | 8.7% | 140 | 13。4% | 1.53 | 0。655 | 92 | 8.7% |
25 - 29 | 9。5% | 119 | 11.4% | 1。20 | 0.836 | 99 | 9.5% |
30 — 34 | 10。4% | 101 | 9。6% | 0.93 | 1.077 | 109 | 10。4% |
35 - 39 | 10。9% | 96 | 9。2% | 0。84 | 1.188 | 114 | 10.9% |
40 — 44 | 12。6% | 149 | 14。2% | 1。13 | 0。886 | 132 | 12.6% |
45 - 49 | 12。4% | 107 | 10.2% | 0。82 | 1.217 | 130 | 12.4% |
50 - 54 | 10。3% | 82 | 7。8% | 0。76 | 1.321 | 108 | 10.3% |
55 — 59 | 8.2% | 51 | 4。9% | 0。60 | 1.677 | 86 | 8.2% |
60 - 64 | 4.9% | 37 | 3.5% | 0.73 | 1.376 | 51 | 4.9% |
65 — 69 | 4.4% | 27 | 2。6% | 0.58 | 1.724 | 47 | 4。4% |
70 — 74 | 4。4% | 29 | 2.8% | 0.63 | 1。577 | 46 | 4.4% |
Total | 100。0% | 1048 | 100.0% | 1.0* | 1.0* | 1048 | 100.0% |
* Weighted Mean |
| | | | | | | |
上表第4列 (S/P) 是用各年龄组在样本中占的比例除以其在总体中占的比例,其值越接近1、说明该年龄组在样本中的比重越合适(如30-34岁、40—44岁等);反之,其值越背离1,其在样本中的比重越不合适(如18-19岁、20-24岁等过多,55岁以上过少)。
是否需要对其进行调整 (adjustment or re—scaling) 呢?应该而且可以。这种调整,就是加权。首先要确定加权的起点是什么?这里有三种选择:
A. 以S/P的最大值(如本例的3.2)为起点,将其他组的S/P值都提高到这个水平(具体做法暂不介绍),这种策略叫做Scale—up weighting(“水高船涨”法)。其结果也就是将原来的样本放大S/P最大值倍(本例3。16倍,原样本1048人,加权后会增至3312人),可见水分太大,不可取。
B。 以S/P的最小值(本例0。58)为起点,将其他组的S/P值都降低到这个水平,因此叫做Scale-down weighting(“水落石出”法)。其结果是将原样本缩小S/P最小值倍(本例0。58,原样本1048人,加权后减至608),放水过多,也不合适。
C. 以S/P的加权平均值(不用算,一定是1)为起点,将大于1的S/P值调低至1而将小于1的
S/P值调高至1,因此叫做Zero—sum weighting(“有增有减但总数不变”法).加权后的样本数与原样本相同、还是1048(见表一第6列)。可见这种方法相比之下最合理,学术界和调查业界通常都用它来加权.
具体操作共有四步:
1. 计算总体有关参数(如表一第2列总体年龄分布P),如果没有这种参数,则无法加权;
2. 计算样本相应统计量(如表一第3列样本年龄分布S);
3。 计算S与P之比(即表一第4列S/P值)的倒数(其实就是第5列的P/S),这就是我们将的weighting factor (“权重”或“权数”);
4. 对样本每一个案,按其年龄组的值,乘以权数。
第1至3步需要手工在Excel中算好(当然,如果你会写SPSS syntax并知道如何使用其中aggregate、match files等技巧,也可以在SPSS中算好;我一直用后者做的,但比较复杂,暂不推荐)。第4步可以而且必须在SPSS中做。以下是有关操作(假定年龄组变量名为AGEGROUP、样本数据中已存在;权数取名为W,但样本数据中还没有这个变量):
4a. 点击Transform/Compute,在Target Variable中输入“W”,在Numeric Expression中输入”0.316”(是18-19岁组的权数),并点击If 。。。 (optional ca lection condition) (见图一),
4b。 选择Include if ca lection condition、再选AGEGROUP、输入 "=” 和 ”1"(即年龄等于18-19岁组)(见图二),然后Continue、OK。
4a和4b创建了一个新变量W、并赋予18—19岁组的每一个案一个相同的权数(0。316)。
你需要对其他年龄组分别重复4a和4b。很不好玩,而且很容易出错。如你懂写syntax,整个过程可以用上述几句就可以完成:
IF AGEGROUP=1 W=0.316。
IF AGEGROUP=2 W=0.655。
...
IF AGEGROUP=12 W=1。577。
4c。 有了权数,就可以对样本加权了。点击Data/Weight Cas,点击Weight cas by .。。,选择W,再OK,就大功告成 (图三)。
如果写syntax,那就更简单:
WEIGHT BY W.
如果有需要取消加权,只需回答图三,点击“Do not weight cas”,或者写一句
WEIGHT OFF.
这是W还在你的数据中,只是没有被启用而已。
最后需要记住以下几个注意事项:
一、加权不是神丹妙药,加权只能调整样本各组之间的相对比例、并不会产生任何新的信息。所以,如果样本中某些组是研究重点(如我前面提到的女记者或互联网用户),绝不应该通过加权的方法来提高其在样本中的比重(反之可以)。
二、与之有关的一个重要细节是如果S/P值中有小于0.5(也即P/S值或权数大于2)的,则不能靠过分灌水来解决问题。这时的对策有三:增加那些under—sampled组别的个案数(上策);用Scale-down的策略来加权(最保守、浪费资源、但不犯type I错误);前两者的结合,
即增加部分个案数然后按新的最小S/P值来个水落石出。
三、与此相仿的是如果那些under-sampled的组个案数太少(一般说来不能少于30),需要按同样的原则来处理.
四、为了便于解释,上述例子只涉及一个变量(年龄)的加权。实际上,除了年龄,性别、教育程度和职业也很重要。所以需要用多个变量同时加权 (weighted by veral variables simultaneously)。所谓”同时加权“是计算样本和总体的有关多变量交叉分布,然后算出各自S/P值及其倒数。以年龄和性别的双变量同时加权为例,表一中就应该有24行(即12个年龄组 X 2个性别组)。我对本例数据的加权就是用年龄和性别的交叉分布来做的。