SAS中的交叉验证

SAS中的交叉验证,sas,Sas,我已在SAS中将数据拆分为5倍。所以我有 s1、s2、s3、s4、s5 我想知道迭代每个折叠以执行交叉验证的最佳方法是什么。例如,第一次迭代我想使用s1作为测试集,s2,3,4,5作为训练集,第二次迭代使用s2作为测试,s1,3,4,5作为训练集,等等 SAS中的哪种循环可以实现此目标 谢谢 可能最好调用宏,使其更易于调用 %Macro Validate(cur,i) ; %Do j = 1 %to 5 ; %If &j <> &i %THEN %DO;

我已在SAS中将数据拆分为5倍。所以我有

s1、s2、s3、s4、s5

我想知道迭代每个折叠以执行交叉验证的最佳方法是什么。例如,第一次迭代我想使用s1作为测试集,s2,3,4,5作为训练集,第二次迭代使用s2作为测试,s1,3,4,5作为训练集,等等

SAS中的哪种循环可以实现此目标


谢谢

可能最好调用宏,使其更易于调用

%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;
%宏验证(cur,i);
%Do j=1%至5%;
%如果&j&i%,那么
%做;
数据和电流;
Set&cur S&j;
跑
%结束;
%结束;
%修补验证;
数据为空;
i=1到5;
调用Execute(“%Validate(s)”| | strip(i)| |“,“| | strip(i)| |;”);
结束;
跑

调用宏可能是最好的方法,以使调用宏更容易一些

%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;
%宏验证(cur,i);
%Do j=1%至5%;
%如果&j&i%,那么
%做;
数据和电流;
Set&cur S&j;
跑
%结束;
%结束;
%修补验证;
数据为空;
i=1到5;
调用Execute(“%Validate(s)”| | strip(i)| |“,“| | strip(i)| |;”);
结束;
跑

Proc gmlselect使用多种方法执行k-FOLD交叉验证,以选择最佳模型。它在9.1中是实验性的,但在9.2的生产中发布+

进一步资料


希望有帮助。

Proc gmlselect使用多种方法执行k-fold交叉验证,以选择最佳模型。它在9.1中是实验性的,但在9.2的生产中发布+

进一步资料


希望这能有所帮助。

这取决于您所说的“交叉验证”是什么意思。你能详细说明一下吗?这取决于你所说的“交叉验证”是什么意思。你能详细说明一下吗?