【问题标题】:Running the AREG command in SPSS without overriding previous output在 SPSS 中运行 AREG 命令而不覆盖先前的输出
【发布时间】:2016-02-18 00:36:51
【问题描述】:

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

/AREG Var1 与时间

/方法=CO

/RHO=.9.

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

/AREG V2 与时间

/方法=CO

/RHO=.9.

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

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

【问题讨论】:

    标签: python statistics spss


    【解决方案1】:

    帮助说您可以使用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 重塑数据,然后使用@987654326 @。

    *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.
    

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

    【讨论】:

    • 非常感谢您抽出宝贵时间帮助 Andy W!我不太确定在哪里解决诸如此类的特定 SPSS 问题,但是您一针见血。继续你的宝贵工作,我们都很感激:)
    猜你喜欢
    • 2017-09-22
    • 2016-11-27
    • 2023-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多