打字猴:1.70264888e+09
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
1702648890 -glm-命令可以像Stata中的其他命令一样正常使用,但有一个地方不同:由于-glm-命令可以处理许多种线性模型,所以你必须用-family-选项(表明分布形式)来具体指定你想做的模型类别。这里,我们用“泊松”(Poisson)模型是因为泊松分布适合于因变量“频数”(count)这样的计数变量。在这里,我们具体指定了用泊松分布族(Poisson family)来处理对数线性模型。
1702648891
1702648892 在执行了-glm-命令之后,使用-gof.do-(或-gof2.do-)产生表12-6中第一行所示的系数。然后,我们对A、R和S分别与C的关联模型重复此步骤,但并不使它们的交互项和C相关(也就是所谓的三次交互项),即[ARS][AC][RC][SC]。该模型的系数如表12-6中的最后一行所示(模型8)。显然,所有判别标准都表明此模型对数据拟合得很好,事实上,这也意味着可能还可以使用更简单的模型来拟合数据。为了确定这一点,我们估计了所有的中间模型,从而得出表中其余的系数。
1702648893
1702648894 表12-6 1977年美国成年人对“是否允许共产主义者在您社区演讲”这个问题的态度,与他们的年龄、居住地和受教育程度相关的对数线性模型的拟合优度统计量
1702648895
1702648896
1702648897
1702648898
1702648899 比较这些统计量,我们看到,这些模型没有一个可以恰当地拟合数据。因此,我们将[ARS][AC][RC][SC]作为我们偏好的模型。事实上,年龄、居住地和受教育程度都影响了对共产主义演讲者的态度。为了弄清楚这些影响的程度,我们将从模型中得到的期望频数表转化成表12-7中所示的百分比(有关如何得到这些结果的细节,可参考下载文件“ch12_1.do”和“ch12_1.log”)。表中清楚地显示,在控制了其他变量之后,那些受过更好的教育、较年轻的、居住在南方之外的人更有可能支持共产主义者进社区演讲。在每种比较中,百分比差异都呈现非常明显的相同方向。
1702648900
1702648901 表12-7 1977年美国成年人按照受教育程度、年龄和居住地划分的同意“允许共产主义者在您社区演讲”的期望百分比(根据模型8计算得出)
1702648902
1702648903
1702648904
1702648905
1702648906 这里报告的是30年前的态度,这个时期也是冷战最严峻的时期。判断当代是否有同样的模式会非常有意义。如果用对数线性模型来解决这个问题,你需要根据一些近期的数据(如2006年GSS数据)再构建一个数据集,然后将第二个数据集与第一个数据集合并起来并通过一个变量(T,即“时间”变量)来区分它们,最后判断是否存在时间效应(或时间与任何两个变量关联之间的交互项)。也就是说,你需要估计[ARS][AC][RC][SC]、[ARS][AC][RC][SC][T]和[ARS][ACT][RCT][SCT],以及这些模型之间一些可能的中间模型,并且比较它们的拟合优度。如果这些模型都不如[ARS][AC][RC][SC]——依据不同时间混合在一起的数据估计的模型8——对数据拟合得好的话,你就可以得出结论认为:对待共产主义者演讲权利的态度在1977~2006年间没有变化。而如果发现[ARS][AC][RC][SC][T]是更好的模型的话,你可以得出结论认为:在支持共产主义者的民权自由方面存在一致的变化(假设支持率上升)。而如果发现[ARS][ACT][RCT][SCT]模型更好的话,你可以得出结论认为:在1977~2006年间,年龄、居住地和受教育程度各变量与支持共产主义者的民权之间的关系结构发生了变化。如果选择了一个中间模型,你可以得出结论认为:不是全部而只是部分变量之间的关系结构发生了变化。
1702648907
1702648908 对多分类变量进行对数线性分析
1702648909
1702648910 尽管我们列举的有关共产主义者的民权的例子只包含二分变量,但对数线性分析同样适用于多分类变量分析。然而,在这种情况下,我们需要对每个多分类变量构造出乘积项,即要对用来代表这个变量的k个类别的k-1个虚拟变量都构造出乘积项。为了弄清楚如何操作,我们以表12-8为例,它是按种族[R]、受教育程度[S]和志愿者协会成员身份[M]这三个类别来划分的投票行为[V]的一个四维列联表频数分布〔即Knoke和Burke(1980)文章中的表3〕。投票行为、种族和成员身份是二分变量,而受教育程度是一个三分类变量,因此需要我们创建两个虚拟变量:S2(高中毕业=1,其他=0)和S3(至少是大学=1,其他=0),那些没有高中毕业文凭的是省略类别。
1702648911
1702648912 假设我们有兴趣估计一个种族、受教育程度和成员身份影响投票行为的模型,但就像前面的例子一样,我们在这里也不关心种族、受教育程度和成员身份之间的关系,因此我们设定一个三者的三维交互项,它可以使模型的这部分完全拟合。我们的模型是[VR][VS][VM][RSM](注意,这个模型与表12-6中模型8的相似点)。我们用-glm-命令识别此模型:
1702648913
1702648914 glm count r s2 s3 m rs2 rs3 rm s2m s3m rs2m rs3m v vr vs2 vs3 vm,family(poisson)
1702648915
1702648916 这里,每个合成变量都是一个乘积项——例如,rs2=r*s2,依此类推。(有关其他模型的识别和输出结果见下载文件“ch12_1.do”和“ch12_1.log”。特别要注意我们是如何使用Stata “macros”解决在执行很长的命令时出现的冗繁问题。使用“macros”也可以极大地降低出现错误的几率。)
1702648917
1702648918 对个体数据进行对数线性分析
1702648919
1702648920 到目前为止,我们已经知道如何对已有的表格数据进行对数线性分析。然而,我们更常遇到的是分析由抽样调查或普查中的个人记录构成的数据集。因此,我们需要找到一种对个体记录的数据进行分析的方法。这在Stata中很简单,使用-collapse-命令即可实现(下载文件“ch12_1.do”中有详细说明;也可参考“ch12_1.log”文件)。
1702648921
1702648922 表12-8 按照种族、受教育程度和志愿者协会成员身份划分的投票频数分布
1702648923
1702648924
1702648925
1702648926
1702648927
1702648928
1702648929
[ 上一页 ]  [ :1.70264888e+09 ]  [ 下一页 ]