перекрестная проверка в SAS - PullRequest
0 голосов
/ 01 октября 2011

Я разбил свои данные на 5 раз в SAS. Итак, у меня есть

s1, s2, s3, s4, s5

Мне было интересно, каков наилучший способ перебрать все сгибы для выполнения перекрестной проверки. Например, в первой итерации я хочу использовать s1 в качестве моего тестового набора и s2,3,4,5 в качестве обучающих наборов, во второй итерации использовать s2 в качестве теста и s1,3,4,5 в качестве обучения и т. Д.

Какой цикл в SAS позволит достичь этой цели?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 04 октября 2011

Proc gmlselect выполняет перекрестную проверку в k-кратном направлении несколькими способами, чтобы выбрать лучшие модели. Он экспериментален в 9.1, но выпущен в производство для 9.2 +

Дополнительная информация здесь

Надеюсь, эта помощь.

2 голосов
/ 02 октября 2011

Вероятно, лучше всего вызывать макрос, чтобы сделать его немного проще.

%Macro Validate(cur,i) ;
%Do j = 1 %to 5 ;

  %If &j <> &i %THEN

  %DO;

  Data &Cur._&j. ;

    Set &cur S&j. ;

    <validation steps>

  Run;

  %END;

%End;

%mend Validate ;

Data _null_ ;

Do i = 1 to 5 ;

Call Execute("%Validate(s"||strip(i)||","||strip(i)||");");

End;

Run;
...