全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2656 11
2014-12-21
悬赏 500 个论坛币 未解决
我有如下sas程序,但是此程序运行1次,只能求出随机抽样1次后所得的均数及标准差,必须不断变换seed的值,才能得到不同的样本样,如,我每次换一个seed的值,从1换到100,这样得到100个样本,这样工作量很大,可不可以写一个sas程序,满足如下要求:
1.我只要调整设定值n后,可以得到n个样本量(从总体aa中获得),并得到每个样本的均数及标准差。
2用随机抽样得到的每一个样本aax(x=1,2,3,4。。。)与总体(aa)t检验后得到每一个P值,并把每一个P值组成表格列出来,在结果中显示处理来。
谢谢高手!!


data aa;
do i=1 to 1000;
x=10+2*rannor(1);
output;
end;
run;


proc surveyselect data=aa out=aa1 method=srs n=100 seed=1;
run;
proc univariate data=aa1 normal ;
var x;
run;

二维码

扫码加我 拉你入群

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

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

全部回复
2014-12-22 04:56:18
data aa;
length grp $20;
do i=1 to 1000;
x=10+2*rannor(1);
grp='aa0';
output;
end;
run;

%macro test(dsn=,samplen=100,seed=,b=0);
%do i=1 %to &dsn;
%syscall ranuni(seed,b);
proc surveyselect data=aa out=aa&i method=srs n=&samplen seed=&seed;
run;
data aa&i;
        set aa&i;
        length grp $20;
        grp="aa&i";
run;
data final;
        set aa&i aa;
run;
proc ttest data=final;
class grp;
var x;
ods output ttests=stat(keep=variable variances probt) equality=vareq(keep=variable probf);
run;
data stat;
        merge stat vareq;
        by variable;
run;
data stat&i;
        set stat;
        length grp $20;
        grp="aa&i";
        if probf>0.05 then
        if upcase(variances)='EQUAL';
        else if probf<=0.05 then
        if upcase(variances)='UNEQUAL';
run;
%end;
data want;
        set %do i=1 %to &dsn; stat&i %end;;
run;
proc datasets;
   delete %do i=1 %to &dsn; stat&i %end;;

%mend;
%test(dsn=100,samplen=100,seed=123456);
二维码

扫码加我 拉你入群

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

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

2014-12-22 14:02:26
Good. thanks.
JingJu
二维码

扫码加我 拉你入群

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

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

2014-12-22 14:05:25
复制代码
二维码

扫码加我 拉你入群

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

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

2015-1-1 00:04:17
谢谢jl60156的指点,运行您给的程序后,我有疑问再请教一下:
1.你的程序里方框是什么意思。
2.我运行你的程序后,为什么未在结果的方框里见到随机生成的总体aa。
3.为什么没见到从总体aa中生成的n个样本aan(n=1.2.3.4.5.6.7.8.9......)。4.为什么没见到每个样本aan(n=1.2.3.4.5.6.7.8.9......)的均数与标准差。
5.为什么没见到从总体aa中随机抽样获得的样本aan(n=1.2.3.4.5.6.7.8.9......)与总体aa比较所得的P值。
谢谢jl60156!


二维码

扫码加我 拉你入群

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

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

2015-1-1 00:10:41
请问jl60156,您的程序复制后是下面这样子吗?谢谢!

data aa;
length grp 20;
do i=1 to 1000;
x=10+2*rannor(1);
grp='aa0';
output;
end;
run;

%macro test(dsn=,samplen=100,seed=,b=0);
%do i=1 %to &dsn;
%syscall ranuni(seed,b);
proc surveyselect data=aa out=aa&i method=srs n=&samplen seed=&seed;
run;
data aa&i;
        set aa&i;
        length grp20;
        grp="aa&i";
run;
data final;
        set aa&i aa;
run;
proc ttest data=final;
class grp;
var x;
ods output ttests=stat(keep=variable variances probt) equality=vareq(keep=variable probf);
run;
data stat;
        merge stat vareq;
        by variable;
run;
data stat&i;
        set stat;
        length grp $20;
        grp="aa&i";
        if probf>0.05 then
        if upcase(variances)='EQUAL';
        else if probf<=0.05 then
        if upcase(variances)='UNEQUAL';
run;
%end;
data want;
        set %do i=1 %to &dsn; stat&i %end;;
run;
proc datasets;
   delete %do i=1 %to &dsn; stat&i %end;;

%mend;
%test(dsn=100,samplen=100,seed=123456);
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群