【问题标题】:Automatically increase number of random cases selected with SPSS syntax and macros自动增加使用 SPSS 语法和宏选择的随机案例的数量
【发布时间】:2016-10-02 05:01:33
【问题描述】:

我正试图强制 SPSS 进行伪蒙特卡洛研究。现实世界的数据是如此离奇,以至于我无法可靠地模拟它(如果您有兴趣,它是用于测试伤害严重程度分数)。因此,我使用了一个包含大约 50 万个真实世界数据观察结果的数据集,然后基本上从越来越大的随机样本中引导结果。目标是找出假设正态性所需的组大小(在什么组大小下 t 检验和 Mann-Whitney U 检验可靠地一致;换句话说,我什么时候可以依靠中心极限定理)。

我的计划是使用宏的组合来重复两次测试 100 次(但运行 150 次以防随机选择导致组大小为零),然后使用 OMS 命令导出结果大量测试到一个单独的数据文件中。

到目前为止,一切正常,但我想添加另一个循环命令以再次运行该过程,但选择更多随机案例。因此,它将运行 150 次,每次选择 10 个随机案例,然后,在运行前 150 个之后,它将再运行 150 个但选择 20 个随机案例。最好是这样:


随机选择 10 个案例

运行 t 检验和 Mann-Whitney U 检验

重复 150 次

随机选择 20 个案例

运行 t 检验和 Mann-Whitney U 检验

重复 150 次

...

(运行200个案例后,现在增加50个)

选择 250 个随机案例

运行 t 检验和 Mann-Whitney U 检验

重复 150 次

随机选择 300 个案例

...

选择 800 个随机案例

运行 t 检验和 Mann-Whitney U 检验

重复 150 次

(运行 800 例后停止)

使用 OMS 保存所有这些结果


以下语法中的所有内容都完美运行,除了一个小问题,我不知道如何让它增加随机样本的大小,我不想手动这样做。

即使我必须手动执行,有没有办法将最新结果附加到现有文件而不是替换现有文件?

DEFINE !repeater().
!DO !i=1 !TO 150.
*repeat the below processes 150 times


*select a random sample from the dataset
DATASET ACTIVATE DataSet1.
USE ALL.
do if $casenum=1.
compute #s_$_1=10.
compute #s_$_2=565518.
* 565518 is the total number of cases
end if.
do if  #s_$_2 > 0.
compute filter_$=uniform(1)* #s_$_2 < #s_$_1.
compute #s_$_1=#s_$_1 - filter_$.
compute #s_$_2=#s_$_2 - 1.
else.
compute filter_$=0.
end if.
VARIABLE LABELS filter_$ 'x random cases (SAMPLE)'.
FORMATS filter_$ (f1.0).
FILTER  BY filter_$.
EXECUTE.

*run a non-parametric test
NPAR TESTS
  /M-W= issloc BY TwoGroups(0 1)
  /MISSING ANALYSIS.


*run a parametric test
T-TEST GROUPS=TwoGroups(0 1)
  /MISSING=ANALYSIS
  /VARIABLES=issloc
  /CRITERIA=CI(.95).

!DOEND.
!ENDDEFINE.



*use OMS to extract the reported descriptives and results from the viewer
*and save them to a file
OMS /SELECT TABLES
/DESTINATION FORMAT = SAV OUTFILE = 'folder/folder/OMS file.sav'
/IF SUBTYPES=['Mann Whitney Ranks' 'Mann Whitney Test Statistics' 'Group Statistics' 'Independent Samples Test'] 
/COLUMNS SEQUENCE = [RALL CALL LALL].

!repeater.
OMSEND.

【问题讨论】:

    标签: spss


    【解决方案1】:

    没关系。答案是如此明显,我完全错过了它。我只需要在宏中定义样本大小选择。 *掌心

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-30
      • 2012-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多