2520 6

用SAS按条件来产生模拟数据 [推广有奖]

  • 0关注
  • 4粉丝

教授

13%

还不是VIP/贵宾

-

威望
0
论坛币
6762 个
通用积分
15.7510
学术水平
18 点
热心指数
24 点
信用等级
15 点
经验
407 点
帖子
1190
精华
0
在线时间
996 小时
注册时间
2013-1-20
最后登录
2024-4-1

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我想用SAS得到一组模拟数(x),一共100000个>mean+3std的数占5%(没有上限),0<x<mean-3std的数占5%,mean-3std<x<mean-2std的数占45%,mean+2std<x<mean+3std的数占45%。按这种要求来产生模拟数,可以实现么?请教大神怎么去用SAS实现呀
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:模拟数据 mean Std

沙发
intheangel 学生认证  发表于 2014-3-26 19:24:46 |只看作者 |坛友微信交流群
我觉得你可以假设均值为0,方差为1;
然后分段在>3取随机数,<-3取随机数,然后2-3,-2-----(-3)取随机数;如果数目够大的话应该差不多吧
我是一只瘦瘦的小猪~~~
╭︿︿︿╮
{/-◎◎-/}
( (oo) )
  ︶︶︶

使用道具

藤椅
jingju11 发表于 2014-3-27 09:05:29 |只看作者 |坛友微信交流群
intheangel 发表于 2014-3-26 19:24
我觉得你可以假设均值为0,方差为1;
然后分段在>3取随机数,
Make no sense. 0-3*1 =-3 <0. Never get 5% data unfortunately.
JingJu

使用道具

jingju11 发表于 2014-3-27 09:05
Make no sense. 0-3*1 =-3
mean-3std<x<mean-2std的数占45%,mean+2std<x<mean+3std的数占45%,>mean+3std的数占10%(没有上限)。这样可以实现么?

使用道具

报纸
jingju11 发表于 2014-3-29 03:23:09 |只看作者 |坛友微信交流群
我不是那个意思.我的问题是这个分布从何而来?你的意图是什么?假设一个正态分布:N(100,15^2).

  1. %macro cond(cond1, cond2);
  2.   when (c[&cond1] >0 and &cond2  ) do;
  3.     c[&cond1] +-1;
  4.     sampSize +-1;
  5.     output;
  6.     end;
  7. %mend cond;
  8. data have;
  9.   call streaminit(12345);
  10.   sampSize =100000;
  11.   array p[4] _temporary_(5 5 45 45);
  12.   array c[4] _temporary_;
  13.   do i =1 to dim(p);
  14.     c[i] =ceil(sampSize *p[i]/100);
  15.     end;
  16.   c[4] =c[4]-(sum(of c[*])-sampSize);
  17.   mean =100; std =15;
  18.   do until (sampSize <=0);
  19.     x =rand('normal', mean, std);
  20.     select;
  21.       %cond(1,%str(x>mean+3*std                 ) )
  22.       %cond(2,%str(x>0          and x<mean-3*std) )
  23.       %cond(3,%str(x>mean-3*std and x<mean-2*std) )
  24.       %cond(4,%str(x>mean+2*std and x<mean+3*std) )
  25.       otherwise;
  26.       end;
  27.     end;
  28.   stop;
  29.   run;
复制代码
京剧
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
yongyitian + 1 + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

jingju11 发表于 2014-3-29 03:23
我不是那个意思.我的问题是这个分布从何而来?你的意图是什么?假设一个正态分布:N(100,15^2).

京剧
您好,我是想这样的,产生一些异常值的模拟数据集。异常值的定义是一组测量中平均值的偏差超过两倍标准差的测量值。高度异常值的定义是与平均值的偏差超过三倍标准差的测定值。我想根据这两个定义来产生一些异常值。

使用道具

7
小宝爱波1314 发表于 2014-3-30 19:37:19 |只看作者 |坛友微信交流群
jingju11 发表于 2014-3-29 03:23
我不是那个意思.我的问题是这个分布从何而来?你的意图是什么?假设一个正态分布:N(100,15^2).

京剧
hi,您能帮我看一下下面的问题怎么写么?
我有一个birth_data的数据集。里面的变量包括patient和age,一共有N个观测。现在我想要通过SAS产生一些模拟数据集。要求如下:
1)我有一个数据集outlier,从outlier里面抽取x%*N条数据。
2) 在birth_data随机抽取x%*N条数据,这些数据将被上一步中产生的模拟数据代替。随机抽取的次数为1000次,相应地,替代的次数也为一千次。这样可以得到1000个被抽取和替代后的birth_data的模拟数据集。
3)  得到的1000个模拟数据集以后,分别计算出这些模拟数据集中age的均值和方差,并且将这些均值和方差合并入格式如下的数据集中。
Simulation degree        Simulation dataset order        mean        std
0.1        1        …..        ……
0.1        2        …….        …….
0.1        3        ……..        …….
0.1        ….        …..        ……
0.1        1000        ……        …….

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-6-14 13:34