1.7 变量转换
在统计分析中,很多时候需要对变量值进行转换,达到统计分析的要求再进行分析,比如在回归分析中经常要对数据进行对数化处理,也就是将原数据转换为取对数后的数据。另外,有时需要根据现有数据列生成新的数据列,比如在处理时间序列问题时经常需要得到滞后一阶或多阶的时间序列数据,此时也需要用到变量转换。
1.7.1 变量计算
建立的数据文件中包含的数据可能来自统计调查的原始测量结果,统计分析要通过研究变量之间的关系来揭示现象的内在数量规律。例如,统计学中大量相对指标的指标值是不可能通过实际测量得到的,而需要利用有联系的变量的比值计算出来,计算所得的数值就成为新变量的观测值。SPSS提供了强大的计算变量功能,新变量的计算可以借助计算变量功能来完成。利用“计算变量”命令计算新变量的步骤如下:
01 打开数据文件,选择“转换︱计算变量”命令,打开“计算变量”对话框,如图1-48所示。
02 输入计算表达式。使用计算器板或键盘将计算表达式输入到“数字表达式”列表框中。表达式中需要用到的SPSS函数可从函数组中选择,用鼠标双击或单击“函数和特殊变量”列表框左侧的箭头按钮,将选中的函数移入表达式栏。这时,栏中函数的自变量和参数用“?”表示,自变量必须选用当前工作文件中的变量,可以从左侧变量清单栏中选择,选中后用鼠标双击以便将它输入到表达式中。
03 定义新变量及其类型。在“目标变量”文本框中输入目标变量名,它可以是一个新变量名,也可以是已经定义的变量名,甚至可以是表达式中使用的自变量本身。单击“类型和标签”按钮,弹出“计算变量:类型和标签”对话框,如图1-49所示。
图1-48 “计算变量”对话框
图1-49 “计算变量:类型和标签”对话框
对话框选项设置/说明
对于标签的设置有以下两种方式:
● 标签:可以在该文本框中给目标变量添加自定义的标签。
● 将表达式用作标签:使用计算目标变量的表达式作为标签,这有利于统计分析时清晰地了解新变量的意义及运算关系。
在该对话框中,还可以对新变量的类型及宽度进行选择。选择确认后,单击“继续”按钮,返回“计算变量”对话框。
04 条件表达式(如果…)及其对话框的使用。有时候,仅仅需要对一些符合某些特定条件的自变量的观察值进行计算。例如,在记录某年级7班和8班学生成绩的数据文件中,我们只需要了解7班女同学的学习情况,需要计算她们各门功课的平均成绩,即须选择满足条件“sex=0 & class=7”(即7班的女同学)的观测值来计算。当条件表达式“sex=0”和“class=7”同时为真时,将计算出7班女同学的平均成绩。使条件表达式为假的或缺失的观测量就不会计算这个值,对应于这些观测量,新变量的值为系统缺失值。在“计算变量”对话框中单击“如果…”按钮,弹出“计算变量:If个案”对话框,如图1-50所示。
05 单击“继续”按钮对设定的条件表达式加以确认,返回“计算变量”对话框。条件表达式的建立规则是:条件表达式中至少要包括一个关系运算符,也可以使用逻辑运算符,并且可以通过关系(或逻辑)运算符连接多个条件表达式。各项选择确认后,单击“确定”按钮,系统将根据表达式和条件计算新变量的值,并且将其结果显示到数据窗口的工作文件中。
图1-50 “计算变量:If个案”对话框
1.7.2 生成新的时间序列
时间序列是指观测或记录到的一列按时间顺序排列的统计数据。实际数据的时间序列展示了研究对象在一段时期内发展变化的过程,对时间序列的分析与研究,寻找现象内在的发展变化特征、趋势和规律是统计工作的重要内容之一。根据已有的时间序列数据文件,SPSS提供了产生新时间序列的功能。根据已有时间序列生成新时间序列的操作步骤如下:
01 任意打开一个时间序列数据文件,以SPSS 25.0自带的stocks.sav数据文件为例,然后选择“转换︱创建时间序列”命令,弹出“创建时间序列”对话框,如图1-51所示。
图1-51 “创建时间序列”对话框
02 从左侧变量框里选择准备产生新时间序列的变量,单击按钮将其选入“变量→新名称”列表框中,这时“变量→新名称”列表框里显示形如“变量名_1=转换函数简名(变量名n)”格式的表达式。其中“变量名”为选定变量名或它的前6个字符,n为阶数或跨度。在“名称和函数”选项组中,“名称”文本框中显示系统默认的变量名,重命名后需单击“更改”按钮确认。“函数”下拉列表中显示系统默认的函数差值,“顺序”为1。如果系统默认的设置符合要求,单击“确定”按钮后,则系统将在数据窗口内显示出默认的新变量依照变差函数计算出来的各变量值,这一列变量值就是新产生的时间序列。
03 如果需要使用其他转换函数计算新变量的值,则可展开“函数”下拉列表进行选择。“函数”下拉列表中包括如下时间序列转换函数。
● 差异函数:产生原变量值序列的相邻值之间的变差,指定顺序框的数值(大于等于1的整数),可以计算相应阶的变差。
● 季节性差分函数:适用于具有季节性变动的时间序列,季节变差函数将产生与原时间序列相距一定周期值的观测量之间的变差。
● 中心移动平均函数:将原变量值序列的观测值以指定的跨度计算移动平均,产生移动平均时间序列,如指定跨度值为奇数n,选择中心移动平均后,产生的新序列首尾将各减少(n-1)/2个数值;跨度值为偶数n,选择中心移动平均后,需要将产生的平均值序列的每相邻的两个值再平均一次,产生的新序列首尾将各减少n/2个数值。
● 先前移动平均函数:将原变量值序列的观测值以指定的跨度计算移动平均,各平均值顺着时间向前的方向列在新变量列里,产生新的时间序列。新变量列中观测值向前移动的时段长度正好等于指定的跨度值。
● 运行中位数函数:与居中移动平均相同,只不过是将原变量值序列的观测值以指定的跨度确定其中位数,列在新变量列里,产生新的时间序列。
● 累计求和函数:从原变量值序列的第一个值开始逐项累积求和,求和所得到的数值依次作为新变量值,产生新的时间序列。
● 滞后函数和提前函数:分别将原变量值序列的各项观测值按指定的顺序向前和向后平移。对于新变量,将首尾缺少的观测值作为缺失值来对待。
● 平滑函数:使用该函数将按照一种称之为T4253H的方法对原变量值序列的各项观测值进行平滑或修匀处理,产生新的时间序列。
04 更改了所选转换函数的顺序或跨度值的设置之后,需要单击“更改”按钮确认,这样新变量栏里的显示结果才能更新。单击“确定”按钮以确认各选项,系统将产生的新时间序列输出到数据窗口中。
1.7.3 缺失值的替换
观测值的缺失往往会给统计分析带来许多麻烦,尤其在时间序列分析中更是如此,时间序列里如果存在缺失的观测值,则可能会导致一些变量的计算不能进行。例如在计算环比发展速度和定基发展速度时,若时间序列里有缺失值(系统将数据文件数值型变量的缺失值视为0),则计算中会出现0做除数的情况,因此有必要对时间序列里的缺失值进行替换,以保证统计计算和分析得以顺利进行。SPSS 25.0中的缺失值替换功能针对含有缺失值的变量,使用系统提供的替换方法产生一个新的时间序列。这项功能的操作步骤如下:
01 打开一个有缺失值的数据文件,选择“转换︱替换缺失值”命令,打开“替换缺失值”对话框,如图1-52所示。
图1-52 “替换缺失值”对话框
02 从源变量框中选择含有缺失值且需要替代缺失值的变量移至“新变量”框中,“新变量”框中显示形如“变量名_l=替代的估计方法简名(变量名)”格式的变量转换表达式。其中“变量名”为所选变量的名称或它的前6个字符。在“名称和方法”选项组中,“名称”文本框中显示系统默认的变量名,重命名后需单击“变化量”按钮确认;“方法”下拉列表中显示系统默认的序列均值。如果系统默认的设置符合要求,可单击“确定”按钮。系统将依照默认的估计方法计算出估计值,用它替代序列中的缺失值,并将替代后的时间序列作为新变量的观测值显示于数据窗口中。
03 如果要使用其他估计方法计算缺失值的估计值,可在“方法”下拉列表中进行选择。“方法”下拉列表中包括如下估计方法。
● 序列平均值:用整个序列有效数值的平均值作为缺失值的估计值。
● 邻近点的平均值:如果选择此方法,则“邻近点的跨度”下的“数值”和“全部”单选按钮被激活。若选择前者,输入数值指定缺失值上下邻近点的点数,则将这些点数的有效数值的均值作为缺失值的估计值。若邻近点的点数达不到指定的数值,则缺失值仍然保留。若选择后者,则用全部有效观测值的均值作为缺失值的估计值,效果与选用序列平均值法相同。
● 临近点的中间值:选择此法与临近点的平均值一样将用缺失值上下邻近点指定跨度范围内的有效数值或全部有效数值的中位数作为缺失值的估计值。
● 线性插值:对缺失值之前最后—个和其后第一个有效值使用线性插值法计算估计值。如果序列的第一个或最后一个观测值缺失,则不能用这种方法替代这些缺失值。
● 邻近点的线性趋势:对原序列以序号为自变量,以选择变量为因变量求出线性回归方程,再用回归方程计算各缺失值处的趋势预测值,并用预测值作为替代相应的缺失值。当选择的替代方法、数值等项设置进行更换后,都需要单击“更改”按钮确认。
04 新变量名、替代缺失值的估计方法确认以后,单击“确定”按钮,提交系统执行。系统将依照默认的估计方法计算出估计值,用它替代序列中的缺失值,并将替代后的时间序列作为新变量的观测值显示于数据窗口中。