比较 OMS 捕获的不同结果
Comparing different results captured by OMS
在之前的 post 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)中的 alpha 值与 CronbachsAlphaifItemDeleted(在 Item_Totals 数据集中)和 select Var1 中的值(Item_Totals 数据集),其中 CronbachsAlphaifItemDeleted <= CronbachsAlpha。一旦我可以从 Var1 捕获该列表,我希望将其放回语法中以 运行 对这些变量进行下一次可靠性分析。
下面将创建一个仅包含您指定的变量名称的宏。
首先,这将创建一些示例数据并重新创建您描述的情况(使用您的语法):
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 .
在之前的 post 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)中的 alpha 值与 CronbachsAlphaifItemDeleted(在 Item_Totals 数据集中)和 select Var1 中的值(Item_Totals 数据集),其中 CronbachsAlphaifItemDeleted <= CronbachsAlpha。一旦我可以从 Var1 捕获该列表,我希望将其放回语法中以 运行 对这些变量进行下一次可靠性分析。
下面将创建一个仅包含您指定的变量名称的宏。
首先,这将创建一些示例数据并重新创建您描述的情况(使用您的语法):
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 .