大量变量的SPSS循环ROC分析

时间:2018-10-11 18:15:52

标签: loops statistics spss roc

在SPSS中,我想对许多变量(989)进行ROC分析。问题是,在选择所有变量时,会给出AUC值和曲线,但如果在989个变量中的任何一个中都缺少一个值,则会立即排除这种情况。因此,我正在考虑将单变量ROC分析放入循环中。但是我不知道该怎么做。我已经将所有变量命名为var1,var2,var3,...,var988,var989。

那么,我该如何循环进行ROC分析? (选中“将用户缺失的值视为有效”​​不会解决问题)

谢谢!

1 个答案:

答案 0 :(得分:1)

这听起来像是python的工作。它通常是SPSS中此类工作的最佳解决方案。

因此,这可能会对您有所帮助。我非常不熟悉ROC分析,但是这种通用模式适用于各种循环场景:

begin program. 
import spss

for i in range(spss.GetVariableCount()): 
    var = spss.GetVariableName(i)
    cmd = r'''
* your variable-wise analysis goes here --> use spss syntax, beetween the three ' no     
* indentation is needed. since I dont know what your syntax looks like, we'll just 
* run descriptives and frequencies for all your variables as an example
descriptives %(var)s
/sta mean stddev min max. 
fre %(var)s. 
'''%locals()
    spss.Submit(cmd)
end program. 

只是快速检查一下它的作用:在第4行中,我们告诉spss执行以下操作的次数与活动数据集中的变量的次数相同,在您的情况下为989。在第5行中,我们定义了一个名为var的(python)变量,该变量包含索引i(0到988-数据集中索引为0的第一个变量)的变量名称。然后我们定义一个命令让spss执行。我喜欢将其放在原始字符串中,因为这可以简化诸如提供目录之类的事情。原始字符串由r'''定义,并以'''结尾。在第12行中,“ spss.Submit(cmd)”将在“ cmd =”之后定义的命令提供给spss以执行。不过,最重要的是,只要变量名称出现在语法中,就用“%(var)s”代替

如果您将“设置mprint设置为开”。 “开始程序”上方的一行。您会在查看器中确切看到它的作用。