【问题标题】:SPSS loop ROC analysis for lots of variablesSPSS循环ROC分析大量变量
【发布时间】:2018-10-11 18:15:51
【问题描述】:

在 SPSS 中,我想对大量变量 (989) 执行 ROC 分析。问题是在选择所有变量时,它给了我AUC值和曲线,但如果在任何989个变量中的任何一个缺失值中,则立即排除案例。因此,我正在考虑将单变量 ROC 分析放入循环中。但我不知道该怎么做。我已经将所有变量命名为 var1、var2、var3、...、var988、var989。

那么,如何循环 ROC 分析? (检查“将用户缺失的值视为有效”​​并不能解决问题)

谢谢!

【问题讨论】:

    标签: loops statistics spss roc


    【解决方案1】:

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

    所以这里有一个可以帮助你的框架。我非常不熟悉 ROC-Analysis,但这种通用模式适用于各种循环场景:

    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"

    如果您输入“set mprint on”。 “开始程序”上方的一行。你会在查看器中看到它的确切作用。

    【讨论】:

    • 哇!有用!非常感谢您提供此解决方法!
    猜你喜欢
    • 2011-10-21
    • 1970-01-01
    • 1970-01-01
    • 2016-05-08
    • 2015-03-06
    • 2021-07-19
    • 1970-01-01
    • 1970-01-01
    • 2016-05-29
    相关资源
    最近更新 更多