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

Python 在SPSS中运行AREG命令而不覆盖以前的输出,python,statistics,spss,Python,Statistics,Spss,我正在尝试使用SPSS中的AREG命令一次对多个主题运行Cochrane Orcutt转换。我的数据文件包含大约80名参与者(名为“V1、V2、V3、…、V80”)和一个名为“time”的时间变量(以秒为单位)。我在参与者#1上运行AREG命令的语法目前如下所示: /AREG Var1随时间变化 /方法=CO /ρ=.9 该语法的输出为我提供了所需的新“Fit”变量(以及一些我不需要的其他变量)。当我尝试运行参与者#2时,我的问题出现了: /AREG V2随时间变化 /方法=CO /ρ=.9 运

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

/AREG Var1随时间变化

/方法=CO

/ρ=.9

该语法的输出为我提供了所需的新“Fit”变量(以及一些我不需要的其他变量)。当我尝试运行参与者#2时,我的问题出现了:

/AREG V2随时间变化

/方法=CO

/ρ=.9

运行第二组语法将删除Subject 1的第一个“Fit”变量,并将其替换为Subject 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_1
FIT_2
,等等。一种不必写入(或使宏循环)70个变量的方法是使用
VARSTOCASES
重塑数据,然后使用
分割文件

*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从Y1到Y70。
只要它们在原始文件中按顺序排列。)

帮助说明您可以使用
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_1
FIT_2
,等等。一种不必写入(或使宏循环)70个变量的方法是使用
VARSTOCASES
重塑数据,然后使用
分割文件

*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从Y1到Y70。
只要它们在原始文件中按顺序排列。)

非常感谢您的时间和帮助Andy W!我不太确定如何解决像这样的特定SPSS问题,但你一针见血。继续你的宝贵工作,我们都很感激:)非常感谢你的时间和帮助安迪W!我不太确定如何解决像这样的特定SPSS问题,但你一针见血。继续你的宝贵工作,我们都很感激:)