SAS中文论坛

标题: 交叉验证(SAS),急! [打印本页]

作者: shiyiming    时间: 2006-7-20 17:27
标题: 交叉验证(SAS),急!
各位虫虫,谁会用SAS进行leave-one-out cross validation,麻烦把程序写给我,多谢了。
数据如下,y为因变量,x为自变量,建立y=aX+b 的关系,对预测的y值进行交叉验证,最终应该能给出a±ts,b±ts,r2,SE,F值,RMSEC,RMSECV,RMSECVi (root mean square error of cross-validation for interpolated data)
y        x
2.13        -0.06253171
4.06        0.846195112
3.15        0.521265622
2.19        -0.239203819
0.8        -0.833758902
1.97        -0.340576056
0.59        -1.106478725
0.88        -0.655765137
1.83        -0.210944311
2.64        0.162656522
1.46        -0.71985126
1.85        -0.236822352
1.39        -0.376534943
1.37        -0.397246195
2.99        0.447767154
1.88        -0.408791418
2.89        0.345347288
2.47        0.03446819
0.84        -1.074592843
4.179        0.848529688
2.73        0.237400184
3.3        0.692394396
4.45        0.944468837
4.11        0.958481519
3.45        0.661323018
3.66        0.811659442
2.37        0.189801058
作者: shiyiming    时间: 2006-7-22 21:53
标题: gg
自己顶一下
作者: shiyiming    时间: 2006-7-26 08:46
标题: 不完整地回答你的问题,不过剩下的你应当会做了
data test;
input y x;
datalines;
2.13 -0.06253171
4.06 0.846195112
3.15 0.521265622
2.19 -0.239203819
0.8 -0.833758902
1.97 -0.340576056
0.59 -1.106478725
0.88 -0.655765137
1.83 -0.210944311
2.64 0.162656522
1.46 -0.71985126
1.85 -0.236822352
1.39 -0.376534943
1.37 -0.397246195
2.99 0.447767154
1.88 -0.408791418
2.89 0.345347288
2.47 0.03446819
0.84 -1.074592843
4.179 0.848529688
2.73 0.237400184
3.3 0.692394396
4.45 0.944468837
4.11 0.958481519
3.45 0.661323018
3.66 0.811659442
2.37 0.189801058
;
run;

options mprint;

%macro leaveone;

%do i=1 %to 27;

data temp;
set test;
if _n_=&i then delete;
run;

proc reg data=temp outest=out noprint;
model y=x;
quit;

%if &i=1 %then %do;
data result;
set out;
run;
%end;
%else %do;
proc append base=result data=out;
run;
%end;

%end;

%mend;

%leaveone;
作者: shiyiming    时间: 2006-7-31 09:21
标题: hi
楼上的,我按照你给的程序,点击运行后,为什么不出现结果呢?
作者: shiyiming    时间: 2006-7-31 23:05
标题: Check RESULT data set in your WORK library
Check RESULT data set in your WORK library.
作者: shiyiming    时间: 2006-8-4 09:37
标题: ggg
不好意思,你说的我还是不懂 <!-- s:wink: --><img src="{SMILIES_PATH}/icon_wink.gif" alt=":wink:" title="Wink" /><!-- s:wink: -->
作者: shiyiming    时间: 2006-8-4 13:17
标题: 回复
看样子你是个新手,简单一点,在%leaveone;的后面加上一行:

proc print data=result; run;

你可以看看会打出来什么信息。你要的关于回归的其它信息可以通过
调整PROC REG中的参数而得到。
作者: shiyiming    时间: 2006-8-13 16:28
标题: hi
多谢你了 <!-- s:wink: --><img src="{SMILIES_PATH}/icon_wink.gif" alt=":wink:" title="Wink" /><!-- s:wink: -->




欢迎光临 SAS中文论坛 (http://mysas.net/forum/) Powered by Discuz! X3.2