SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 1740|回复: 7
打印 上一主题 下一主题

交叉验证(SAS),急!

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2006-7-20 17:27:05 | 只看该作者

交叉验证(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
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2006-7-22 21:53:54 | 只看该作者

gg

自己顶一下
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2006-7-26 08:46:55 | 只看该作者

不完整地回答你的问题,不过剩下的你应当会做了

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;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2006-7-31 09:21:29 | 只看该作者

hi

楼上的,我按照你给的程序,点击运行后,为什么不出现结果呢?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2006-7-31 23:05:21 | 只看该作者

Check RESULT data set in your WORK library

Check RESULT data set in your WORK library.
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
6#
 楼主| 发表于 2006-8-4 09:37:16 | 只看该作者

ggg

不好意思,你说的我还是不懂 <!-- s:wink: --><img src="{SMILIES_PATH}/icon_wink.gif" alt=":wink:" title="Wink" /><!-- s:wink: -->
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
7#
 楼主| 发表于 2006-8-4 13:17:55 | 只看该作者

回复

看样子你是个新手,简单一点,在%leaveone;的后面加上一行:

proc print data=result; run;

你可以看看会打出来什么信息。你要的关于回归的其它信息可以通过
调整PROC REG中的参数而得到。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
8#
 楼主| 发表于 2006-8-13 16:28:03 | 只看该作者

hi

多谢你了 <!-- s:wink: --><img src="{SMILIES_PATH}/icon_wink.gif" alt=":wink:" title="Wink" /><!-- s:wink: -->
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-6-10 09:49 , Processed in 0.068623 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表