【问题标题】:Comparing different results captured by OMS比较 OMS 捕获的不同结果
【发布时间】:2018-07-31 11:44:05
【问题描述】:

继上一篇帖子Scale Building in SPSS 之后,我正在尝试使用 Cronbach 的 alpha 和 alpha-if-deleted 来自动化规模构建过程。手动过程要求我运行可靠性分析,然后检查 alpha-if-deleted 值以查看应从量表中删除哪些变量。这可能需要多次迭代,所以我正在尝试使其自动化。到目前为止,这是我的语法:

* Make sure output tables contain variable names only...

set onumbers values ovars names tnumbers values tvars names.

* OMS to capture the alpha coefficient

DATASET DECLARE  Alpha.
OMS
  /SELECT TABLES
  /IF COMMANDS=['Reliability'] SUBTYPES=['Reliability Statistics']
  /DESTINATION FORMAT=SAV NUMBERED=TableNumber_
   OUTFILE='Alpha' VIEWER=YES.

* OMS to capture the Item_totals.

DATASET DECLARE  Item_Totals.
OMS
  /SELECT TABLES
  /IF COMMANDS=['Reliability'] SUBTYPES=['Item Total Statistics']
  /DESTINATION FORMAT=SAV NUMBERED=TableNumber_
   OUTFILE='Item_Totals' VIEWER=YES.

* Running the reliability analysis

RELIABILITY
  /VARIABLES=Binary_12085 Binary_12213 Binary_18007 Binary_19829 Binary_19830 Binary_4451 
    Binary_4465 Binary_5140 Binary_5149 Binary_8513
  /SCALE('Original Scale') ALL
  /MODEL=ALPHA
  /SUMMARY=TOTAL. 

下一步是比较 Alpha 数据集(变量名:CronbachsAlpha)和 CronbachsAlphaifItemDeleted(在 Item_Totals 数据集中)的 alpha 值,并选择 Var1(Item_Totals 数据集)中的值,其中 CronbachsAlphaifItemDeleted

【问题讨论】:

    标签: macros spss


    【解决方案1】:

    以下将创建一个仅包含您指定的变量名称的宏。

    首先,这将创建一些示例数据并重新创建您描述的情况(使用您的语法):

    data list free/Binary_12085 Binary_12213 Binary_18007 Binary_19829 Binary_19830 
        Binary_4451 Binary_4465 Binary_5140 Binary_5149 Binary_8513 (10f2).
    begin data
    1 0 1 0 1 1 1 0 1 1 0 1 0 1 0 0 1 0 0 1 1 0 1 1 1 1 1 1 0 1 0 1 0 1 1 0 1 0 1 0
    end data.
    
    ***THE FOLLOWING IS A COPY OF THE SYNTAX IN THE ORIGINAL QUESTION.**
    
    * Make sure output tables contain variable names only...
    set onumbers values ovars names tnumbers values tvars names.
    * OMS to capture the alpha coefficient
    DATASET DECLARE  Alpha.
    OMS   /SELECT TABLES   /IF COMMANDS=['Reliability'] SUBTYPES=['Reliability Statistics']
      /DESTINATION FORMAT=SAV NUMBERED=TableNumber_    OUTFILE='Alpha' VIEWER=YES.
    * OMS to capture the Item_totals.
    DATASET DECLARE  Item_Totals.
    OMS   /SELECT TABLES   /IF COMMANDS=['Reliability'] SUBTYPES=['Item Total Statistics']
      /DESTINATION FORMAT=SAV NUMBERED=TableNumber_    OUTFILE='Item_Totals' VIEWER=YES.
    * Running the reliability analysis.
    RELIABILITY   /VARIABLES=Binary_12085 Binary_12213 Binary_18007 Binary_19829 Binary_19830 
    Binary_4451 Binary_4465 Binary_5140 Binary_5149 Binary_8513
      /SCALE('Original Scale') ALL   /MODEL=ALPHA  /SUMMARY=TOTAL. 
    omsend.
    

    现在我们有两个数据集和两个结果。以下语法匹配它们,选择要保留的相关变量,然后创建一个名为 !keepers 的宏,其中包含它们的名称:

    match files/file=item_totals/table=alpha/by Command_ 
        /keep var1 CronbachsAlphaifItemDeleted CronbachsAlpha.
    select if CronbachsAlphaifItemDeleted <= CronbachsAlpha.
    flip newnames=var1.
    spssinc select variables macroname="!keepers"/PROPERTIES  PATTERN = "Binary_*".
    

    您现在可以在语法中使用变量列表,例如:

    frequency !keepers .
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-16
      • 1970-01-01
      • 2018-07-12
      • 1970-01-01
      • 2019-02-24
      • 2013-08-27
      • 2018-09-02
      • 1970-01-01
      相关资源
      最近更新 更多