示例 2: 检验相关系数

虽然该程序提供了大量不同的统计过程,但某些专门操作需要使用 COMPUTE 语句。 例如,您可能希望对照总体相关系数检验样本相关系数。 当总体系数非零时,您可以计算 Z 统计量以检验样本和总体值相等的假设。

The formula for <inlinetag type="italic">Z</inlinetag> is:

图 1。 Z 的公式
Z 的公式

假设您要检验从 30 个个案的样本中获得的 0.66 的 r 相对于总体系数 0.85。 下图显示了用于显示 Z 及其双尾概率的命令。

图 2。 用于计算 Z 统计信息的命令
DATA LIST FREE / R N P.

BEGIN DATA
.66 30 .85
END DATA.

COMPUTE #ZR = .5* (LN ((1 + R) / (1 - R))).
COMPUTE #ZP = .5* (LN ((1 + P) / (1 - P))).

COMPUTE Z = (#ZR-#ZP)/(1/(SQRT(N-3))).
COMPUTE PROB = 2*(1-CDFNORM(ABS(Z))).

FORMAT PROB (F8.3).
LIST.
  • DATA LIST 定义包含样本相关系数 ( R) ,样本大小 (N)和总体相关系数 (P)的变量。
  • BEGIN DATAEND DATA 指示数据是内联的。
  • COMPUTE 语句计算 Z 及其概率。 变量 #ZR#ZP 是在计算的中间步骤中使用的临时变量。
  • LIST 命令输出如下所示。 由于 Z 的绝对值较大且概率较小,因此我们拒绝从相关系数为 0.85的总体中抽取样本的假设。
图 3。 Z 统计及其概率
  R       N     P       Z   PROB
.66   30.00   .85   -2.41   .016

如果频繁使用 Z 测试,那么可能要构造如下所示的宏。 !CORRTST 宏计算指定为关键字自变量值的样本相关系数,样本大小和总体系数的 Z 和概率值。

图 4.!CORRTST 宏
DEFINE !CORRTST ( R = !TOKENS(1)
                  /N = !TOKENS(1)
                  /P = !TOKENS(1)).
INPUT PROGRAM.
- END CASE.
- END FILE.
END INPUT PROGRAM.

COMPUTE #ZR = .5* (LN ((1 + !R) / (1 - !R))).
COMPUTE #ZP = .5* (LN ((1 + !P) / (1 - !P))).

COMPUTE Z = (#ZR-#ZP) / (1/(SQRT(!N-3))).
COMPUTE PROB = 2*(1-CDFNORM(ABS(Z))).
FORMAT PROB(F8.3).

TITLE SAMPLE R=!R, N=!N, POPULATION COEFFICIENT=!P.

LIST.

!ENDDEFINE.

!CORRTST R=.66 N=30 P=.85.
!CORRTST R=.50 N=50 P=.85.
  • DEFINE 将宏命名为 !CORRTST ,并声明样本相关系数 (R),样本大小 (N)和总体相关系数 (P)) 的自变量。
  • !TOKENS(1) 指定自变量的值是一个字符串,该字符串跟在宏调用中自变量的名称之后。 因此,第一个宏调用为 RN,P指定值 0.66, 30 和 0.85 。
  • INPUT PROGRAMEND INPUT PROGRAM 之间的命令创建具有一个个案的活动数据集。 COMPUTE 语句使用宏自变量 RNP的值计算 Z 统计及其概率。 (如果 COMPUTE 语句对现有文件或内联数据中的值 (而不是宏自变量) 执行操作,那么不需要INPUT PROGRAM 命令。)
  • 定制的 TITLE 显示了在计算 Z中使用的宏自变量的值。
  • LIST 命令显示 Z 及其概率。
  • 调用 !CORRTST 宏两次。 第一次调用针对总体系数 0.85 (这将生成与先前所示相同的 Z 值和概率) ,从 30 个观测值的样本中检验 r 为 0.66 。 第二个宏调用根据相同的总体相关系数,从 50 个个案的样本中检验 0.50 的 r 。 下面显示了这些宏调用的输出。
图 5。 输出自!公司
SAMPLE R= .66 , N= 30 , POPULATION COEFFICIENT= .85

       Z     PROB
   -2.41     .016


SAMPLE R= .50 , N= 50 , POPULATION COEFFICIENT= .85

       Z     PROB
   -4.85      .000

下图显示了一个已修改的 !CORRTST 宏,可用于针对总体系数的 列表 中的每个系数检验样本 r

图 6.!具有列表处理循环的 CORRTST 宏
DEFINE !CORRTST (R = !TOKENS(1)
                 /N = !TOKENS(1)
                 /P = !CMDEND).
- INPUT PROGRAM.
-   END CASE.
-   END FILE.
- END INPUT PROGRAM.

!DO !I !IN (!P).
- COMPUTE #ZR = .5* (LN ((1 + !R) / (1 - !R))).
- COMPUTE #ZP = .5* (LN ((1 + !I) / (1 - !I))).

- COMPUTE Z = (#ZR-#ZP)/(1/(SQRT(!N-3))).

- COMPUTE PROB=2*(1-CDFNORM(ABS(Z))).
- FORMAT PROB(F8.3).
- TITLE SAMPLE R=!R, N=!N, POPULATION COEFFICIENT=!I.
- LIST.
!DOEND.

!ENDDEFINE.

!CORRTST R=.66 N=30 P=.20 .40 .60 .80 .85 .90.
  • DEFINE 将宏命名为 !CORRTST ,并声明样本相关系数 (R),样本大小 (N)) 和总体相关系数 (P)) 的自变量。
  • !TOKENS(1) 指定自变量的值是一个字符串,该字符串跟在宏调用中自变量的名称之后。 因此,宏调用将 R 的值指定为 0.66 ,将 N 指定为 0.30。
  • !CMDEND 指示 P 的值是宏调用中的剩余文本。 因此, P 的值是包含元素 0.20, 0.40, 0.60, 0.80, 0.85和 0.90的列表。
  • 命令 !DO !IN!DOEND 定义 列表处理循环。 循环中的命令为总体系数列表中的每个元素计算一个 Z 统计。 例如,在第一次迭代中, Z 使用 0.20 作为总体系数进行计算。 在第二次迭代中,将使用 0.40 。 对于每个 Z 统计信息,将使用相同的样本大小 (30) 和 r 值 (0.66)。
  • 下面显示了宏调用的输出。 针对每个总体系数显示一个 Z 统计。
图 7。 来自已修改的输出!CORRTST 宏
SAMPLE R= .66 , N= 30 , POPULATION COEFFICIENT= .20

       Z     PROB
    3.07     .002


SAMPLE R= .66 , N= 30 , POPULATION COEFFICIENT= .40

       Z     PROB
    1.92     .055


SAMPLE R= .66 , N= 30 , POPULATION COEFFICIENT= .60

       Z     PROB
     .52     .605


SAMPLE R= .66 , N= 30 , POPULATION COEFFICIENT= .80

       Z     PROB
   -1.59     .112


SAMPLE R= .66 , N= 30 , POPULATION COEFFICIENT= .85

       Z     PROB
   -2.41     .016


SAMPLE R= .66 , N= 30 , POPULATION COEFFICIENT= .90

       Z     PROB
   -3.53     .000