1702648840
1702648841
假设我们对年龄(39岁及以下与40岁及以上相比)、居住地(南方与南方之外相比)、受教育程度(大学与大学以下相比)和民权自由容忍度之间的关系感兴趣。民权自由容忍度通过这个问题——是否允许共产主义者在您社区演讲——来测量。根据1977年综合社会调查(GSS)数据,包含这些变量的一个多维频数分布如表12-5所示。
1702648842
1702648843
表12-5 1977年不同受教育程度、居住地和年龄的美国成年人回答“是否允许共产主义者在您社区演讲”的频数分布(N=1478)
1702648844
1702648845
1702648846
1702648847
1702648848
分析策略 对表12-5进行对数线性分析的第一步是估计一个基准模型。因为我感兴趣的是年龄、居住地和受教育程度对共产主义演讲者容忍度的影响,所以一个合理的基准模型是[C][ARS]。也就是说,我们完全拟合年龄、居住地和受教育程度三个变量之间的关系。但是,我们假设这三个变量都与对共产主义演讲者的容忍度没有关系。第二步,我们假定[CA][CR][CS][ARS]。也就是说,我们除了完全拟合三个变量之间的关系之外,还假定每个变量对共产主义演讲者的容忍度都有影响(也就是年龄、居住地和受教育程度三个变量分别和对共产主义演讲者的容忍度之间存在“交互项”)。如果第二个模型拟合得好,那么我们将试图省略两个变量之间的某些交互项来简化此模型。而如果第二个模型拟合得不好,我们将试图拟合更复杂的模型,也就是加入包含对共产主义演讲者的容忍度和其他任何一对自变量的三次交互项。
1702648849
1702648850
应用 当在Stata中使用-glm-进行分析时,我们首先将表12-5的内容作为数据集读入。这里,每个单元格是一个观测值,而变量组是每个变量相应的类别加上一个表示每个单元格频数的附加变量。因此,我们创建一个数据集“knoke.raw”:
1702648851
1702648852
1 1 1 1 72
1702648853
1702648854
1 1 1 2 71
1702648855
1702648856
1 1 2 1 55
1702648857
1702648858
1 1 2 2 22
1702648859
1702648860
1 2 1 1 161
1702648861
1702648862
1 2 1 2 92
1702648863
1702648864
1 2 2 1 157
1702648865
1702648866
1 2 2 2 25
1702648867
1702648868
2 1 1 1 65
1702648869
1702648870
2 1 1 2 162
1702648871
1702648872
2 1 2 1 23
1702648873
1702648874
2 1 2 2 23
1702648875
1702648876
2 2 1 1 197
1702648877
1702648878
2 2 1 2 214
1702648879
1702648880
2 2 2 1 107
1702648881
1702648882
2 2 2 2 32
1702648883
1702648884
接着用下面的命令将数据读入Stata:
1702648885
1702648886
infile a r s c count using knoke.raw,clear
1702648887
1702648888
前面曾提到基准模型[C][ARS]是对模型[C][A][R][S][AR][AS][RS][ARS]的缩写,因此,我们需要在模型中识别每一项。因为创建分类变量乘积项的Stata命令-xi-不能创建二维以上的乘积,我们将利用一个用户编写的-ado-命令-desmat-(Hendrickx,1999;2000;2001a;2001b)来识别这些符合要求的变量(详见下载文件“ch12_1.do”和“ch12_1.log”)。同样,因为-glm-不能提供如表12-3中所示的所有系数,并且会产生一个错误的BIC估计(我们曾提到过此问题,-glm-在计算样本数的时候用的是表中单元格的个数,而不是样本中的人数),所以我们编写了一个简单的-do-文件——-gof.do-(针对“拟合优度”),以及一个精简的版本——-gof2.do-来生成这些系数;这些-do-文件也可以在本章的下载文件包中获得。
1702648889
[
上一页 ]
[ :1.70264884e+09 ]
[
下一页 ]