SPSS宝典
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

5.3 变量的计算

5.3.1 变量计算的基本操作

对于复杂的统计分析问题,仅仅根据原始数据的变量值是不够的。有时需要利用已知的变量产生新变量。SPSS的“Compute Variable”过程可以完成对变量的计算并产生新的变量的任务。

利用“Compute Variable”过程进行变量计算的基本方法和操作步骤如下:

step 1 打开主对话框。

在数据编辑创窗口,选择菜单“Transform”→“Compute Variable”命令,打开“Compute Variable”(计算变量)对话框。如图5.1所示。

图5.1 “Compute Variable”(计算变量)对话框

step 2 确定目标变量名。

在对话框的左上角“Target Variable”(目标变量)窗口中输入目标变量的名称,如果输入的目标变量不是原数据文件的变量,则执行操作以后,在数据编辑窗口新产生一个变量;如果输入变量是已存在变量,则执行操作后,该变量覆盖原变量。

step 3 设置新变量的变量标签。

单击“Type & Label”按钮,出现如图5.2所示的“Compute Variable:Type and Label”对话框。该对话框用于设置目标变量标签和变量类型。

图5.2 “Compute Variable:Type and Label”对话框

“Label”窗口有两个关于值标签的单选项:

LabeI 默认选项。直接输入变量标签。

User expression as IabeI 利用计算新变量的表达式作为变量标签。例如,若选该项,图5.1中的变量值标签为:SUM(数学,语文,英语,综合)。

图5.2的“Type”(类型)窗口用于选择生成的变量类型,包括:

Numeric 数值型。

String 字符型。

设置完毕后,单击“Continue”按钮,返回“Compute Variable”主对话框。

step 4 设置变量的计算表达式。

在“Numeric Expression”(数值表达式)窗口内输入产生目标变量的数值计算表达式。输入计算表达式,可以通过左侧选择变量列表和下方的计算面板来完成。

在左侧的变量列表框中选择原始变量名后,单击右向箭头按钮,将选择的原始变量移动到“Numeric Expression”窗口中;再利用计算面板输入各种所需的操作符和计算常数。计算面板类似于计算器键盘,包含有常数、算术运算符、关系操作符、逻辑运算符。可以利用变量和各种操作符以及常量产生需要的数值表达式。

当需要SPSS函数构成表达式时,可以在对话框的右侧函数类中选择函数类,列表框中列出了SPSS函数的18个小类,单击需要的函数类后,在下方的函数列表框中会出现此类函数的函数名列表,找到所需的函数后,单击该函数名,则在中间的文本框中显示该函数的用法,再单击旁边的向上的箭头,使之出现在数值表达式窗口。

step 5 选择逻辑表达式(lf Cases)。

当满足不同条件的个案需要使用不同的表达式计算新变量的值时,新变量的值需要分步进行计算。假设在“Compute Variable”对话框已经确定了计算部分新变量值的表达式时,下面需要利用“Compute Variable:lf Cases”子对话框选择满足条件的个案。

仍在“Compute Variable”主对话框中,单击“lf”按钮,打开如图5.3所示的“Compute Variable:lf Cases”(计算变量:如果个案)对话框。

图5.3 “Compute Variable:lf Cases”(计算变量:如果个案)对话框

该对话框中给出下列选项:

IncIude aII cases 默认选项。选择此项,表示对所有的个案使用“Compute Variable”主对话框中设置的表达式计算新变量值。

IncIude if case satisfies condition 选择此项,表示只对满足条件表达式的个案计算新变量的值。选择此项后激活了条件选择框。在条件选择框中输入所需要选择个案的条件,即逻辑表达式。

逻辑表达式的输入方法:在左侧的变量列表框中选择原始变量名,单击右向箭头按钮,使选中的原始变量名出现在表达式框中。再利用计算面板输入各种所需操作符和常数,从而产生所需要的逻辑表达式。

当需要SPSS函数构成表达式的一部分时,可以在对话框的右侧“Function group”(函数类)函数分类列表框中选择函数类,列表框中列出了SPSS函数的18个小类,单击需要的函数类,这时在下方的函数列表框“Functions and Special Variables”(函数和特殊变量)中出现此类函数的函数名列表,找到所需的函数后,单击该函数名,则在中间的文本框中显示该函数的用法,再单击旁边的向上的箭头,使之粘贴在逻辑表达式窗口。

条件选择对话框“If Cases”在SPSS的其他功能中还会多次用到,应该熟悉其构成和用法。

单击“Continue”按钮,确认逻辑表达式的输入,并返回至“Compute Variable”主对话框。

step 6 执行操作。

单击“OK”按钮,执行满足条件个案的计算操作。

如果对于满足其他条件的个案,需要给出不同的计算表达式来产生变量,可以重复上述过程。

5.3.2 实例:高校提前录取名单的确定

给出一具体应用案例,说明变量计算的基本操作和计算结果。

某高校今年对部分考生采取单独出题、提前录取的招生模式。现有20名来自国内不同省市的考生报考该校,7个录取名额。考生提前录取的招生成绩表如表5.3所示,其中列出了考生的考试成绩和其他基本情况。(数据文件:compute.sav)

表5.3 考生提前录取的招生成绩表

该校制定了如下录取原则:

◆ 文化课成绩由数学、语文、英语和综合4门成绩组成。文化课成绩制定最低录取分数线:400分。

◆ 个人档案中若有“不良记录”,不予录取。

◆ 对西部考生和少数民族考生,给予加分优惠。少数民族考生加20分,西部考生加10分。

◆ 对参加过省以上竞赛并取得三等奖以上名次的考生,每项加10分。

◆ 文化课成绩和加分总和构成综合分,综合排名前7者录取。

下面利用SPSS软件,按照5.3.1节的方法,给出成绩排名的操作步骤:

step 1 建立数据文件。

原始数据文件名为compute.sav,包括12个变量,20个个案。为便于计算,除“姓名”为字符型变量外,其他变量都为数值型,其中“出生年月”为日期型,其余为标准型。下面定义变量值标签:

性别:1=“男”,2=“女”;

民族:1=“汉”,2=“回”,3=“蒙”,4=“维”,5=“其他少数民族”;

省份:0=“非西部考生”,1=“西部考生”。

step 2 对所有考生计算文化课总成绩。

选择菜单“Transform”→“Compute Variable”(计算变量)命令,打开“Compute Variable”对话框,如图5.1所示。在“Target Variable”(目标变量)窗口中输入新变量名“总成绩”,在变量名标签中输入“总成绩包括数学、语文、英语和综合成绩”。

在“Numeric Expression”(数值表达式)窗口中输入数值表达式:SUM(数学,语文,英语,综合),这里,SUM是SPSS函数,表示求括号内4个变量的和,SUM函数可以通过在“Function group”(函数组)窗口中选择“Statistical”统计函数类,然后,再选择“Statistical”类中的“Sum”函数得到。当然,此表达式也可以直接表示为“数学+语文+英语+综合”。

单击“OK”按钮,执行计算总成绩的操作。于是,在当前的数据编辑窗口中,增添一变量名为“总成绩”的变量,其变量值为考生文化课总成绩。

step 3 定义“录取成绩”变量和计算表达式。

在当前数据编辑窗口,再次选择菜单“Transform”→“Compute Variable”命令,打开“Compute Variable”主对话框,如图5.4所示。

图5.4 “Compute Variable”主对话框

首先,单击“Reset”按钮,清除先前使用该对话框定义的内容;然后,在对话框“Target Variable”框中,输入新变量名“录取成绩”。在变量名标签“Label”栏中输入“录取成绩由文化课总成绩和加分构成”。

在“Numeric Expression”(数值表达式)窗口中输入数值表达式:总成绩+(民族>=1)*20+省份*10+奖项*10。

数值表达式中可以含有关系表达式,例如此例中的“民族>=1”就是关系表达式,返回值为一逻辑值。当表达式为真时,返回值为1;当表达式为假时,返回值为0。这里的逻辑值0或1参与后续的数值计算。民族>=1时,根据“民族”变量的变量值标签含义可知,此时必为少数民族。

step 4 利用“lf Cases”对话框选择满足录取基本条件的考生。

在“Compute Variable”主对话框中,单击“lf”按钮,打开如图5.3所示的“Compute Variable:lf Cases”对话框。

选择“lnclude if case satisfies condition”选项,在激活的窗口内输入满足录取基本条件的表达式:不良记录< 1 & 总成绩 >= 400。单击“Continue”按钮,确认逻辑表达式的输入,并返回“Compute Variable”主对话框。

单击“OK”按钮,执行满足条件个案的计算操作。于是,在当前数据编辑窗口,增加变量“录取成绩”,不满足条件的变量值为缺失值。

step 5 对录取成绩排序。

在成绩表中,按录取成绩由高至低排名,在录取成绩排名相同的情况下,按总成绩决定先后。操作步骤如下:

选择菜单“Data”→“Sort Cases”,显示如图5.5所示的“Sort Cases”(个案排序)对话框。在左侧变量列表框中先选择变量“录取成绩”,单击右向箭头按钮,将其移动到“Sort by”框中,并在“Sort Order”框中选择该变量的排序方式:Descending(降序);再选取“总成绩”进入“Sort by”框中,排序方式选择:Descending(降序)。单击“OK”按钮,执行排序操作。

图5.5 “Sort Cases”(个案排序)对话框

图5.6显示的是提前招生录取排序表。从表中可以看出,20位考生中共有9位满足录取基本条件,在“录取成绩”列中,取前7名作为最后录取结果。

图5.6 提前招生录取排序表

step 6 “Paste”得到的Syntax语句程序如下:

          /* 计算总成绩.
          COMPUTE 总成绩 = SUM(数学,语文,英语,综合) .
          VARIABLE LABELS 总成绩 '总成绩包括数学、英语、语文、综合' .
          EXECUTE .

          /* 计算录取成绩.
          IF (不良记录 < 1 & 总成绩 >= 400) 录取成绩 = 总成绩+(民族>=1)*20+省份*10 +奖项
          *10 .
          VARIABLE LABELS 录取成绩 '录取成绩由文化课总成绩和加分构成' .
          EXECUTE .

          /* 录取成绩排序.
          SORT CASES BY
            录取成绩 (D) 总成绩 (D) .