Все маюсь с той же
задачей. По настоятельной рекоммендации начальства пытаюсь разобраться с таксометрической фунцкией
MAMBAC. Для справки - это метод описания распределения как имеющего или не имеющего категорий по переменным А и Б. Идея в том, что нужно рассортировать выборку по переменной А, а потом разделить выборку на две части для каждого значения А и посчитать среднее значение переменной Б для обоих частей выборки (ниже и выше текущего значения А). И полученные значения записать в файл. Сам по себе, кстати, довольно любопытный метод и полезный для каких-то случаев.
Ну так вот. Я использую macro для создания цикла и OMS для записи в файл. У меня 4222 значения А. То есть цикл должен гоняться 4220 раз (на самом-то деле чуть меньше, но не суть). Занимает работа полтора-два часа. А если пытаюсь гонять для выборки в 10 раз большей (40000), то SPSS работает 15 часов, а потом летит в тартарары. Может, что-то не так с кодом? Вроде, это не должно занимать СТОЛЬКО времени.
Set MITERATE = 41000.
EXECUTE .
SORT CASES BY sort_variable(A).
COMPUTE rank=$CASENUM.
EXECUTE
define !my_macro()
!do !split= 16 !to 4207
SPLIT FILE OFF.
COMPUTE group= rank > !split.
EXECUTE.
SORT CASES BY group.
SPLIT FILE LAYERED BY group.
DESCRIPTIVES VARIABLES=secondvariable
/STATISTICS=MEAN.
!doend
!enddefine.
*//////////////////////////////////////
***first OMS command just suppresses Viewer output***.
*OMS /DESTINATION VIEWER=NO /TAG='suppressall'.
DATASET DECLARE MAMBACcoeff.
OMS /SELECT TABLES
/IF COMMANDS=['DESCRIPTIVES'] SUBTYPES=['Descriptive Statistics']
/DESTINATION FORMAT=SAV OUTFILE='MAMBACcoeff'.
!my_macro.
OMSEND.