SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 1688|回复: 5
打印 上一主题 下一主题

请问如何随机选择某条件下的一半观测?

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2008-3-24 15:22:37 | 只看该作者

请问如何随机选择某条件下的一半观测?

我有一个panel data,涉及31个国家,12个行业。
我需要进行一个simulation。一开始把系数都设为1。之后我需要对每个国家和每个行业里的一半observation的系数1加一个向上的扰动项(scale up),而另一半则scale down,以避免多元共线性。

就是说,对国家1和行业1里面,比如有100个观测,我需要随机挑50个进行scale up,另外剩下的50个进行scale down。

请问如何实现?
谢谢。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2008-3-26 04:10:59 | 只看该作者

Re: 请问如何随机选择某条件下的一半观测?

Try this:

data sample100;
do i=1 to 100;
id =i;
var1 = rannor(2345);
var2 = ranuni(6353);
output;
end;
drop i;
run;

proc sql outobs=50;
create table sample50a as
select *
  from sample100
  order by ranuni(1234);
quit;

proc print data=sample50a; run;

proc sql;
create table sample50b as
select * from sample100
except
select * from sample50a;
quit;

proc print data=sample50b; run;

Hope this helps, good luck.

YZ
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2008-3-26 21:10:18 | 只看该作者

Re: 请问如何随机选择某条件下的一半观测?

谢谢你啊。
不过我需要程序自动选择每个行业的obs的数量然后找一半的obs。所以有点复杂。
但是你的程序给我很大启发。谢谢。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2008-3-27 09:20:46 | 只看该作者

Re: 请问如何随机选择某条件下的一半观测?

用PROC SURVEYSELECT过程,其中有分层随机抽样的选择,并且随意可以限制样本大小比例。详细请参见SAS HELP。
以前也有帖子讲这个的,你可以搜一下。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2008-3-27 19:00:15 | 只看该作者

Re: 请问如何随机选择某条件下的一半观测?

[code:2cortlrx]data a;
do i=1 to 100;
output;
end;
run;

data up down;
retain k 50 n 100;
set a;
if ranuni(_n_)<=k/n then do;
output up;
k=k-1;
end;
else output down;
n=n-1;
drop k n;
run;[/code:2cortlrx]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
6#
 楼主| 发表于 2008-3-27 21:42:34 | 只看该作者

to waterlwh

Nice!!!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-4 18:10 , Processed in 0.067401 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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