在 SPSS 中运行 AREG 命令而不覆盖以前的输出



我正在尝试使用SPSS中的AREG命令一次对多个主题运行Cochrane-Orcutt变换。我的数据文件包含大约 80 个参与者(名为"V1、V2、V3、...、V80"(,以及一个名为"Time"的时间变量(以秒为单位(。我在参与者 #1 上运行 AREG 命令的语法目前如下所示:

/AREG Var1 with Time

/方法=CO

/RHO=.9。

此语法的输出为我提供了我想要的新"Fit"变量(以及我不需要的其他几个变量(。当我尝试运行参与者#2时,我的问题出现了:

/AREG V2 与时间

/方法=CO

/RHO=.9。

运行第二组语法会删除使用者 1 的第一个"Fit"变量,并将其替换为使用者 2 的新"Fit"变量。我想为参与者 #1 和参与者 #2 保留第一个"Fit"变量(不要每次都覆盖输出(有没有办法在 SPSS 中使用宏/循环/等一次运行参与者 #1-80 并为每个主题设置一个唯一的"Fit"变量?我试图避免在运行下一个变量之前为我运行的每个新参与者复制和粘贴每个新的"Fit"变量(我总共有大约 100 个数据集,每个数据集有 ~80 个参与者,所以这将需要几天时间(。也许有一种更简单的方法可以用Python做到这一点?

非常感谢您的帮助和时间!

帮助说您可以使用TSET NEWVARS=ALL每次都编写新变量。

DATA LIST FREE / Ord X Y1 Y2.
BEGIN DATA
1 1 2 2.5
2 2 3.5 3.0
3 4 6.2 5.4
4 1 3.0 2.7
5 6 9 9
6 10 3 4
7 11 15 6
8 14 12 13
END DATA.
*Creates new variables.
TSET NEWVAR=ALL.
AREG Y1 WITH X.
AREG Y2 WITH X.

所以这就产生了FIT_1FIT_2等。不过,一种不必编写(或制作宏来循环(70 个变量的方法是使用 VARSTOCASES 重塑数据,然后使用 SPLIT FILE

*Reshape wide to long.
ADD FILES FILE = * /DROP ERR_1 TO SEP_1 ERR_2 TO SEP_2.
VARSTOCASES 
  /MAKE Y FROM Y1 Y2 
  /MAKE FitOrig FROM FIT_1 FIT_2
  /INDEX YOrig (Y).
SORT CASES BY YOrig Ord.
SPLIT FILE BY YOrig.
AREG Y WITH X.
SPLIT FILE OFF.

您可以看到,这将生成拟合值的等效估计值。(请注意,在您的用例中,您可以使用TO来指定VARSTOCASES上的顺序变量,例如,您可以使用VARSTOCASES /MAKE Y FROM Y1 TO Y70.,只要它们在原始文件中按顺序排序即可。

最新更新