楼主: akoug
1980 6

又来麻烦版上各位大牛了,一个按概率抽样的问题 [推广有奖]

  • 0关注
  • 5粉丝

已卖:2214份资源

博士生

4%

还不是VIP/贵宾

-

威望
0
论坛币
6293 个
通用积分
338.9038
学术水平
21 点
热心指数
20 点
信用等级
14 点
经验
3045 点
帖子
87
精华
0
在线时间
242 小时
注册时间
2007-12-20
最后登录
2025-5-3

楼主
akoug 学生认证  发表于 2010-8-14 09:23:34 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
现在有如下两个数据集合:
data one:
content      group_id     group_prob_i;
123            1                 0.1
456            1                 0.9
789            2                 0.5
101            2                 0.5
...........................
............................

data two:
group_id         sample_size;
1                     4
2                     5
............................
.............................

data one里的三列是:content 是该次观测的实际内容值,那些123和456就是具体的值; group_id是指这次观测所在的组,1就是组1,2就是组2;group_prob_i是指该次观测值在其所在的组内按其表示的概率被抽到。第一行的0.1就是说,当抽样的时候,123这个值在组1中按照0.1的概率被抽到。

data two里的两列是:group_id还是指组的编号,sample_size是指对该组抽几次样。第一行里 group_id是1,就是针对组1;sample_size是4,就是进行四次抽样。结合data one的要求综合起来说就是:对组1按照data one里的概率进行4次抽样。这里抽样都是有放回的。

不知道各位大牛是否有什么好的办法。

先谢谢啦
二维码

扫码加我 拉你入群

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

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

关键词:Content Sample Group Data size 概率 麻烦

回帖推荐

akoug 发表于7楼  查看完整内容

以下是我的code,呵呵,献丑献丑 proc iml; sm=10000000; prob={0.2 0.3 0.1 0.4}; yuan=t(prob); prob=0||prob; length=ncol(prob); do i=2 to length; prob=prob+prob; end; nn={0 0 0 0}; nn=t(nn); do n=1 to sm; x=uniform(0); in=0; ii=1; iii=1; *b=0; do while(in=prob&x

本帖被以下文库推荐

沙发
jingju11 发表于 2010-8-14 12:18:11
1# akoug

也就是说第一个观测的被抽取一次的概率也不大,是吧?以为10次才有一次机会

藤椅
akoug 学生认证  发表于 2010-8-14 12:28:15
0.1其实不代表十次里就能抽中一次吧............
写0.1只是帮助明确一下那个变量的含义,也即每个组其实都有相应的选取概率

板凳
jingju11 发表于 2010-8-14 21:34:02
akoug 发表于 2010-8-14 09:23
现在有如下两个数据集合:
data one:
content      group_id     group_prob_i;
123            1                 0.1
456            1                 0.9
789            2                 0.5
101            2                 0.5
...........................
............................

data two:
group_id         sample_size;
1                     4
2                     5
............................
.............................

data one里的三列是:content 是该次观测的实际内容值,那些123和456就是具体的值; group_id是指这次观测所在的组,1就是组1,2就是组2;group_prob_i是指该次观测值在其所在的组内按其表示的概率被抽到。第一行的0.1就是说,当抽样的时候,123这个值在组1中按照0.1的概率被抽到。

data two里的两列是:group_id还是指组的编号,sample_size是指对该组抽几次样。第一行里 group_id是1,就是针对组1;sample_size是4,就是进行四次抽样。结合data one的要求综合起来说就是:对组1按照data one里的概率进行4次抽样。这里抽样都是有放回的。

不知道各位大牛是否有什么好的办法。

先谢谢啦

  1. data one_;
  2.   set one;
  3.   by group_id notsorted;
  4.   retain rL rR;
  5.   if first. group_id then do;
  6.     rL = 0; rR = group_prob_i;
  7.   end;
  8.   else do;
  9.     rL = rR;
  10.     rR = rL + group_prob_i;
  11.   end;
  12. run;
  13. data two_;
  14.   set two;
  15.   do sample = 1 to sample_size;
  16.     r = ranuni(11);
  17.     output;
  18.   end;
  19. run;
  20. proc sql;
  21.   create table Final as
  22.     select _1. group_id, _1. group_prob_i, _2. sample_size, _1. content
  23.       from one_ _1, two_ _2
  24.         where _1. group_id = _2. group_id and
  25.           rL < r <= rR;
  26. quit;
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
hopewell + 1 + 1 + 1 我很赞同

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

报纸
akoug 学生认证  发表于 2010-8-14 23:32:05
十分感谢jingju11 大牛啊
鞠躬
不过我用iml写了一个用矩阵算的意思差不多的code
敢问在处理大一点的数据上,效率有什么差别么

地板
jingju11 发表于 2010-8-14 23:49:54
akoug 发表于 2010-8-14 23:32
十分感谢jingju11 大牛啊
鞠躬
不过我用iml写了一个用矩阵算的意思差不多的code
敢问在处理大一点的数据上,效率有什么差别么
说实话,不知道。不过有人认为,如果要处理矩阵的话,iml既简洁又高效。我看你的抽样类似于bootstrap,所以必定要做后续计算。所以,为什么不一直用iml?如果只是sampling,才有比较之必要。
另外,为什么不把你的iml贴出来呢?也好让大家学习。。。

7
akoug 学生认证  发表于 2010-8-15 11:39:45
以下是我的code,呵呵,献丑献丑

proc iml;
sm=10000000;

prob={0.2 0.3 0.1 0.4};

yuan=t(prob);
prob=0||prob;
length=ncol(prob);
do i=2 to length;
prob[i]=prob[i]+prob[i-1];
end;


nn={0 0 0 0};
nn=t(nn);
do n=1 to sm;

x=uniform(0);
in=0;
ii=1;
iii=1;
*b=0;

do while(in<1);

if x>=prob[ii]&x<=prob[ii+1] then
do;
b=iii;
in=1;

end;

iii=iii+1;

ii=ii+1;

end;

nn[b]=nn[b]+1;

end;
nn=nn/sm;
print prob;
print nn yuan;
run;
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-21 20:21