python - 如何使用 Python 编写 SPSS 语法用于循环目的

标签 python spss

我有一个基线和后变量列表,我想运行描述性统计和ANCOVA。

Baseline variables = [Brief2_Inhibit_T_SELF_BL, Brief2_Completion_T_SELF_BL, Brief2_Shift_T_SELF_BL]
Post variables = [Brief2_Inhibit_T_SELF_PO, Brief2_Completion_T_SELF_PO, Brief2_Shift_T_SELF_PO]
Treatment_Group is on variable with two labels [1 - Intervention, 0- Control]

下面是每对变量的 SPSS 语法。

EXAMINE VARIABLES=Brief2_Inhibit_T_SELF_BL Brief2_Inhibit_T_SELF_PO BY Treatment_Group
  /PLOT NONE
  /STATISTICS DESCRIPTIVES
  /CINTERVAL 95
  /MISSING LISTWISE
  /NOTOTAL.

UNIANOVA Brief2_Inhibit_T_SELF_PO BY Treatment_Group WITH Brief2_Inhibit_T_SELF_BL
  /METHOD=SSTYPE(3)
  /INTERCEPT=INCLUDE
  /PRINT ETASQ DESCRIPTIVE HOMOGENEITY
  /CRITERIA=ALPHA(.05)
  /DESIGN=Brief2_Inhibit_T_SELF_BL Treatment_Group.

我从加州大学洛杉矶分校找到了一份有用的指南,可以循环遍历两个变量列表来运行回归。

begin program.
import spss, spssaux
spssaux.OpenDataFile('d:\data\elemapi2.sav')
vdict=spssaux.VariableDict()
dlist=vdict.range(start="api00", end="ell")
ilist=vdict.range(start="grad_sch", end="enroll")
ddim = len(dlist)
idim = len(ilist)

if ddim != idim: 
     print "The two sequences of variables don't have the same length."
else: 
        for i in range(ddim): 
             mydvar = dlist[i]
             myivar = ilist[i]

             spss.Submit(r"""
                    regression /dependent %s
                    /method = enter %s.
                                """ %(mydvar, myivar))
end program.

如何编辑上述列表来运行 SPSS 语法?

最佳答案

这里有一种使用简单的 SPSS 宏来完成此操作的方法:

这将是宏定义:

define !doAnalysis (!pos=!cmdend)
!do !vr !in (!1)
!let !BL=!concat(!vr,"_BL")
!let !PO=!concat(!vr,"_PO")
EXAMINE VARIABLES=!BL !PO BY Treatment_Group
  /PLOT NONE
  /STATISTICS DESCRIPTIVES
  /CINTERVAL 95
  /MISSING LISTWISE
  /NOTOTAL.
UNIANOVA !PO BY Treatment_Group WITH !BL
  /METHOD=SSTYPE(3)
  /INTERCEPT=INCLUDE
  /PRINT ETASQ DESCRIPTIVE HOMOGENEITY
  /CRITERIA=ALPHA(.05)
  /DESIGN=!BL Treatment_Group.
!doend
!enddefine.

该宏现在构建为获取项目列表,逐一循环它们,从列表中的每个项目创建两个名称 - 通过添加“BL”或“PO”,并使用这些名称来运行分析.
这将是宏调用:

!doAnalysis Brief2_Inhibit_T_SELF  Brief2_Completion_T_SELF  Brief2_Shift_T_SELF .

关于python - 如何使用 Python 编写 SPSS 语法用于循环目的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60021100/

相关文章:

mysql - 将mysql数据库导入pspp?

python - 将 SPSS 数据集导入 Python

python - Django Rest Framework 和 Angular 2 文件上传

python - 基于用户参数的输出格式

Python 嵌套 For 循环,带有两个字典,内部循环不重置

python - 如何在 python 中绘制具有多个 y 轴的分组条形图

python - 我将如何压缩多个 StringIO 文件?

frequency - 计算多个变量的频率 SPSS

spss - 创建一个表,显示两个相交变量的公共(public)值的数量