购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 根据现有的变量建立新变量

下载资源:\video\第2章\2.2

下载资源:\sample\数据2\儿童生长发育指标数据、经济学院学生期末考试成绩、网购信任度调查数据一、网购信任度调查数据二、学生考试得分数据

2.2.1 通过变量计算生成新变量

有时,我们需要对变量数据进行加工。例如,在研究学生的中考成绩与IQ值之间的关系时,可能需要先将学生文化课、体育课和试验课等成绩按照一定的权重进行计算,从而得出学生的中考总成绩。SPSS提供了计算变量的功能,新变量的计算可以借助该功能完成。以本书附带的“儿童生长发育指标数据”为例,若要创建新的变量“发育”,其中体重、身高、坐高的权重各为30%、40%、30%,可通过“计算变量”命令生成新变量,步骤如下:

选择“转换|计算变量”命令,打开“计算变量”对话框,如图2.3所示。然后使用对话框中的计算器板或键盘将计算表达式输入“数字表达式”列表框中。表达式中需要用到的函数可从“函数组”中选择,双击或单击“函数和特殊变量”列表框左侧的箭头按钮,将选中的函数移入表达式栏。此时,栏中函数的自变量和参数将用“?”表示。自变量必须选用当前工作文件中的变量,可以从左侧变量清单栏中选择,选中后双击它,将其输入表达式中。本例在“数字表达式”列表框中输入“y4*0.3+y5*0.4+y6*0.3”。

图2.3 “计算变量”对话框

定义新变量及其类型。在“目标变量”文本框中输入目标变量名。本例在“目标变量”中输入“发育”,然后单击“类型和标签”按钮,弹出“计算变量:类型和标签”对话框,如图2.4所示。

图2.4 “计算变量:类型和标签”对话框

对话框深度解读

在“计算变量:类型和标签”对话框中,对于标签的设置有以下两种方式:

(1)标签:可以在该文本框中给目标变量添加自定义的标签。

(2)将表达式用作标签:使用计算目标变量的表达式作为标签,这有利于在统计分析时清晰地了解新变量的意义及运算关系。

在此对话框中,还可以对新变量的类型及宽度进行选择。本例中采取系统默认设置,单击“继续”按钮,返回“计算变量”对话框。

“计算变量:If个案”对话框的使用。有时,仅需要对满足特定条件的样本观测值进行计算。在本例中,我们首先在左侧的变量列表中选择“性别”,然后选中“在个案满足条件时包括”单选按钮,并在下面的文本框中输入“y2=2”(见图2.5),表示仅计算女童的发育情况。当条件表达式“性别=2”为真时,将计算女童的发育情况。若条件表达式为假或缺失,该观测量就不会计算这个值。对应这些观测量,新变量的值为系统缺失值。

图2.5 “计算变量:If个案”对话框

单击“继续”按钮返回“计算变量”主对话框。单击“确定”按钮,结果如图2.6所示,可以看到数据视图中已增加了“发育”变量。只有女性(y2=2)的样本观测值才有发育数据(这与我们前面对表达式的具体设置有关),男性(y2=1)的样本观测值中发育变量数据都是缺失值。

图2.6 增加“发育”变量之后的数据视图

2.2.2 通过对样本观测值计数生成新的变量

在许多情况下,我们需要对样本观测值进行计数,从而生成新的变量用于分析。例如,在某些职业资格考试中,考试科目共有5门,但只要通过3门就算合格,可以获得证书。此时,我们需要对学生各科成绩中的通过情况进行计数,统计出每位学生通过了多少门课程,进而判定其是否符合获得资格证书的要求。此处所讲述的计数,是指通过设置特定规则,例如考试成绩需要超过60分,来观察每个样本观测值(每个学生)在每个变量(每科成绩)上的“命中”(达标)情况,统计“命中”情况的总数。

本小节使用的案例为“经济学院学生期末考试成绩.sav”,需要完成以下操作:

(1)生成新的变量amount,用于统计每位学生在“高等数学”“英语”“统计学”“案例应用”“微观经济学”“宏观经济学”6门课程中的通过数量。

(2)根据学院规定,如果学生通过了4门考试即视为本学期学业达标,那么基于新生成的变量amount,采用频率分析方法计算学生的达标率。

1.通过对样本观测值计数生成新的变量

选择“转换|对个案中的值进行计数”命令,弹出“计算个案中值的出现次数”对话框,如图2.7所示。设置目标变量、目标标签和数字变量。目标变量是新生成的变量名称,目标标签是该新生成的变量标签,数字变量即用于“计算个案中值的出现次数”的依据变量。我们在“计算个案中值的出现次数”对话框中的“目标变量”文本框中输入拟生成的新变量名amount,在“目标标签”文本框中输入该新变量的标签“通过课程数量”。然后,在对话框左侧的变量列表中选择“高等数学”“英语”“统计学”“案例应用”“微观经济学”“宏观经济学”6个变量,单击 按钮将其移入“数字变量”列表框。

图2.7 “计算个案中值的出现次数”对话框

单击“定义值”按钮,弹出如图2.8所示的“对个案中的值进行计数:要计数的值”对话框。在该对话框中,选择“范围,从值到最高”,并在文本框中填写60,然后单击中间的“添加”按钮,即可在“要计数的值”列表框中看到“60 thru Highest”,表示当样本观测值的取值大于或等于60时,才会被计数统计。

对话框深度解读

值:在该输入框中输入具体值作为将要计数的目标。

系统缺失值:将系统指定缺失的值作为计数的目标。

系统缺失值或用户缺失值:将系统缺失值或用户指定的缺失值作为计数的目标。

范围:输入一个取值范围,在这个范围内的值都是计数的目标。

范围,从最低到值:输入一个值,计数的范围是从个案中的最小值到该值。

范围,从值到最高:输入一个值,计数的范围是从这个值到个案中的最大值。

设置完毕后,单击“继续”按钮返回主对话框,再单击“确定”按钮等待输出结果。最终结果如图2.9所示。从数据文件中可以看到新生成了amount字段。以第一个学生为例(数据文件的第1行数据),该学生“高等数学”“英语”“统计学”“案例应用”“微观经济学”“宏观经济学”6门课程的成绩都在60分以上,因此amount的取值为6。

图2.8 “对个案中的值进行计数:要计数的值”对话框

图2.9 输出结果

2.采用频率分析方法计算学生的达标率

选择“分析|描述统计|频率”命令,弹出如图2.10所示的“频率”对话框。在“频率”对话框的左侧列表框中选择“通过课程数量[amount]”选项,单击中间的 按钮将其加入“变量”列表框。在“频率”对话框左下角勾选“显示频率表”复选框,要求输出频率表格。单击“确定”按钮以生成输出结果。

图2.10 “频率”对话框

本例中对频率分析的介绍较为简单,详细介绍请参见5.1节内容。图2.11显示了统计表,其中有效样本数为200个,缺失值为0个。图2.12展示了按照课程数量的频率分布,该表从左到右依次列出有效的样本值、频率、频率占总数的百分比、有效频率占总数的百分比和累计百分比。如果学院规定通过4门考试即算作本学期学业达标,那么变量“通过课程数量”取值为4、5、6时可判定为达标,学生的达标率=(16.0%+14.0%+15.5%)=45.5%。

图2.11 统计表

图2.12 通过课程数量的频率分布

2.2.3 量表得分或分类变量重新编码操作

如果我们收集的数据来自问卷调查,通常会遇到正向问题和反向问题交织出现的情况。此时,我们无法直接使用原始数据,需要对反向问题进行重新编码(也可以选择重新编码正向问题,确保一致即可),然后基于统一后的数据进行分析。

本小节使用“网购信任度调查数据一.sav”,如图2.13所示。假设在设计的调查问卷中,只有“卖方信用处罚制度[baozhang1]”与“历史交易满意度[fankui1]”两个变量对应的是反向问题,其他变量均为正向问题。具体来说,针对正向问题,“非常同意”“同意”“不一定”“不同意”和“非常不同意”这5个选项对应的值分别为5、4、3、2、1;而对于反向问题,这5个选项对应的值分别为1、2、3、4、5。

图2.13 “网购信任度调查数据一.sav”数据视图

本例将对“卖方信用处罚制度[baozhang1]”和“历史交易满意度[fankui1]”两个变量重新编码。有两种编码方法:重新编码为相同的变量和重新编码为不同变量。

1.重新编码为相同的变量

重新编码为相同变量是指重新编码后的数据会自动覆盖原始变量数据,即变量名称和其他属性保持不变,仅样本观测值的数据发生了变化,被转换成新编码的数据。步骤如下:

打开“网购信任度调查数据一”,选择“转换|重新编码为相同的变量”命令,弹出如图2.14所示的对话框。在左侧列表框中,选择“卖方信用处罚制度[baozhang1]”与“历史交易满意度[fankui1]”,并单击 按钮将其加入“数字变量”列表框。

图2.14 “重新编码为相同的变量”对话框

单击“旧值和新值”按钮,弹出如图2.15所示的“重新编码为相同的变量:旧值和新值”对话框。在“旧值”选项列表中选择“值”,并在下面的文本框中输入1;然后在“新值”选项列表中选择“值”,并在下面的文本框中输入5。接着单击下方的“添加”按钮,即可在“旧->新”列表框中看到“1→5”的编码映射。按照类似的操作方法,依次完成“2->4”“3->3”“4->2”“5->1”的旧值向新值的重新编码映射。

图2.15 “重新编码为相同变量:旧值和新值”对话框

单击“继续”按钮返回“重新编码为相同的变量”对话框,在该对话框中单击“确定”按钮,最终结果如图2.16所示,所有样本观测值的“卖方信用处罚制度[baozhang1]”和“历史交易满意度[fankui1]”两个变量已成功完成重新编码。

图2.16 输出结果

2.重新编码为不同变量

重新编码为不同变量是指重新编码后的数据会生成新的变量,而原始变量的数据将继续保留。如果我们需要保留编码前的原始变量信息,就应使用该编码方式。具体步骤如下:

打开“网购信任度调查数据一”,选择“转换|重新编码为不同变量”命令,弹出如图2.17所示的对话框。在左侧列表框中,选择“卖方信用处罚制度[baozhang1]”与“历史交易满意度[fankui1]”,并单击 按钮选入“数字变量->输出变量”列表框。

图2.17 “重新编码为不同变量”对话框

设置输出变量的名称及标签。首先,单击“数字变量->输出变量”列表框中的“baozhang1->?”,然后在“输出变量”下方的“名称”文本框中填写“newbaozhang1”,在“标签”文本框中填写“卖方信用处罚制度1”,并单击“变化量”按钮进行确认。按照类似的操作方式,单击“数字变量->输出变量”列表框中的“fankui1->?”,然后在“输出变量”下方的“名称”文本框中填写“newfankui1”,在“标签”文本框中填写“历史交易满意度1”,并单击“变化量”按钮进行确认。设置完成后结果如图2.18所示。

图2.18 设置结果

在“重新编码为不同变量”对话框中,单击“旧值和新值”按钮,弹出如图2.19所示的“重新编码为不同变量:旧值和新值”对话框。在“重新编码为不同变量:旧值和新值”对话框中,在“旧值”选项列表中选择“值”,并在下面的文本框中填写1;然后,在“新值”选项列表中选择“值”,并在下面的文本框中填写5;接着,单击下方的“添加”按钮,即可在“旧->新”列表框中看到“1->5”的编码映射。按照类似的操作方法,依次完成“2->4”“3->3”“4->2”“5->1”的旧值向新值的重新编码映射。设置完毕后,单击“继续”按钮返回主对话框,再单击“确定”按钮,等待输出结果。

图2.19 “重新编码为不同变量:旧值和新值”对话框

输出结果如图2.20所示,在“重新编码为不同变量”模式下,系统新生成了“newbaozhang1”“newfankui1”两个变量,同时保留了“baozhang1”和“fankui1”两个原始变量。对比“newbaozhang1”和“newfankui1”两个新生成的变量与原始变量“baozhang1”和“fankui1”的差异,可以发现,所有样本观测值的“卖方信用处罚制度[baozhang1]”和“历史交易满意度[fankui1]”两个变量均已顺利完成重新编码。然后,切换到“变量视图”窗口,设置新生成的两个变量的属性,比如将小数位数设置为0,将测量方式设置为标度等,以保持原始变量的属性一致,具体操作不再赘述。

图2.20 输出结果

2.2.4 连续变量编码为分类变量

在许多情况下,我们需要将连续变量转换为分类变量。例如,在开展问卷调查时,收集的是被调查者的具体年龄,但在实际的分析研究中,我们可能希望按照年龄将被调查者分组,以研究不同年龄段被调查者对某项研究问题的看法。这时,就需要将年龄这一连续型变量转换为类似于“老年”“中年”“青年”等分组的分类变量。再如,在研究上市公司净资产收益率(ROE)时,数据中很可能存在较多的极端异常值。我们可以将上市公司的净资产收益率(ROE)分为大于100%、50%~100%、20%~50%、0~20%以及小于0五类。对于数量不多且研究价值不大但范围跨度较大的净资产收益率(ROE)为负值的公司,无论其负值的程度有多深,都统一归为“ROE<0”这一类,从而排除极端异常值的影响,提升数据统计分析的稳定性。

本小节使用的案例是“网购信任度调查数据二.sav”。与2.2.3节中的“网购信任度调查数据一.sav”不同,该数据集中的变量nianling是客户的真实年龄数据,为连续型变量数据,如图2.21所示。

图2.21 “网购信任度调查数据二.sav”数据视图

接下来,将连续变量nianling编码为分类变量。我们将30岁及以下的被调查者编码为1,将31~45岁的被调查者编码为2,将46岁以上的被调查者编码为3。编码方法与2.2.3节中提到的“重新编码为相同的变量”和“重新编码为不同变量”两种方法相同。

1.重新编码为相同的变量

打开数据文件,选择“转换|重新编码为相同的变量”命令,弹出如图2.22所示的对话框。在左侧列表框中,选择“年龄[nianling]”并单击 按钮,将其移至“数字变量”列表框。

图2.22 “重新编码为相同的变量”对话框

单击“旧值和新值”按钮,弹出如图2.23所示的“重新编码为相同的变量:旧值和新值”对话框。在“旧值”选项列表中选择“范围,从最低到值”,并在下面的文本框中填入30;然后,在“新值”选项列表中选择“值”,并在下面的文本框中填入1;接着,单击下方的“添加”按钮,即可在“旧->新”列表框中看到“Lowest thru 30->1”的编码映射,将30岁及以下的被调查者编码为1。

图2.23 “重新编码为相同变量:旧值和新值”对话框

在“旧值”选项列表中选择“范围”,并在下面两个文本框中分别填写31和45;在“新值”选项列表中选择“值”,并在下面文本框中填入2。单击下方“添加”按钮,即可在“旧->新”列表框中看到“31 thru 45->2”的编码映射,将31~45岁的被调查者编码为2。在“旧值”选项列表中选择“范围,从值到最高”,并在下面文本框中填入46;在“新值”选项列表中选择“值”,并在下面的文本框中填入3。单击下方的“添加”按钮,即可在“旧->新”列表框中看到“46 thru Highest->3”的编码映射,将46岁以上的被调查者编码为3。

设置完毕后,单击“继续”按钮返回主对话框,单击“确定”按钮,等待输出结果,最终结果如图2.24所示,可以看到,所有样本观测值的nianling变量数据已顺利完成重新编码。

图2.24 输出结果

2.重新编码为不同变量

选择“转换|重新编码为不同变量”命令,弹出如图2.25所示的对话框。在左侧列表框中,选择“年龄[nianling]”并单击 按钮,将其移至“数字变量->输出变量”列表框。单击“数字变量->输出变量”列表框中的“nianling->?”,在“输出变量”下方的“名称”文本框中输入newnianling,在“标签”文本框中输入“年龄”,然后单击“变化量”按钮进行确认。

图2.25 “重新编码为不同变量”对话框

单击“旧值和新值”按钮,弹出如图2.26所示的“重新编码为不同变量:旧值和新值”对话框。在“旧值”选项列表中选择“范围,从最低到值”,并在下面的文本框中输入30;在“新值”选项列表中选择“值”,并在下面的文本框中输入1;单击“添加”按钮,即可在“旧->新”列表框中看到“Lowest thru 30->1”的编码映射,把30岁及以下的被调查者编码为1。

在“旧值”选项列表中选择“范围”,并在下面两个文本框中分别填写31和45;在“新值”选项列表中选择“值”,并在下面的文本框中输入2;单击下方的“添加”按钮,即可在“旧->新”列表框中看到“31 thru 45->2”的编码映射,将31~45岁的被调查者编码为2。

接着,在“旧值”选项列表中选择“范围,从值到最高”,并在下面的文本框中输入46;在“新值”选项列表中选择“值”,并在下面的文本框中输入3;单击下方的“添加”按钮,即可在“旧->新”列表框中看到“46 thru Highest->3”的编码映射,将46岁以上的被调查者编码为3。

图2.26 “重新编码为不同变量:旧值和新值”对话框

单击“继续”按钮返回主对话框,单击“确定”按钮,等待输出结果,最终结果如图2.27所示。

图2.27 输出结果

在“重新编码为不同变量”模式下,系统新生成了newnianling变量,同时保留了原始的nianling变量。对比新生成的newnianling变量和原始nianling变量的差异,可以发现,所有样本观测值均已顺利完成分类变量编码。然后,切换到“变量视图”窗口,对新生成的newnianling变量进行属性设置,如将小数位数设置为0,将测量方式设置为有序等,以便更好地契合变量的实际特征,具体操作在此不再赘述。

2.2.5 生成虚拟变量

虚拟变量,也称为“哑变量”,在很多情况下,我们需要针对分类变量生成多个虚拟变量,以便用于后续分析。以本书附带的“儿童生长发育指标数据”为例,下面是针对“性别”生成虚拟变量的步骤:

选择“转换|创建虚变量”命令,打开“创建虚变量”对话框,如图2.28所示。将“性别[y2]”从“变量”列表中选入“针对下列变量创建虚变量”列表中,然后在下方的“主效应虚变量”选项组中勾选“创建主效应虚变量”复选框,并在“根名称(每个选定变量各一个)”中填写“y2”,最后,单击“确定”按钮。创建变量后的“儿童生长发育指标数据”如图2.29所示。

图2.28 “创建虚变量”对话框

图2.29 创建变量后的“儿童生长发育指标数据” RF5FZ5I7/Gy9uRifySaS+r1PmDtanAIbfSKLkDrBSE3mu/8wsROih01gGJ0EM6Bb

点击中间区域
呼出菜单
上一章
目录
下一章
×