我在SAS中将数据拆分为5倍。所以我有
S1,S2,S3,S4,S5
我想知道迭代每个折叠以执行交叉验证的最佳方法是什么。例如,第一次迭代我想使用s1作为我的测试集,s2,3,4,5作为训练集,第二次迭代使用s2作为测试,s1,3,4,5作为训练等。
SAS中的哪种循环可以实现这一目标?
谢谢!
答案 0 :(得分:2)
可能最好调用一个宏来让它更容易调用。
%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;
答案 1 :(得分:2)