楼主: superbosslbls
4269 2

问一个关于proc iml的问题 [推广有奖]

  • 0关注
  • 0粉丝

已卖:33份资源

博士生

24%

还不是VIP/贵宾

-

威望
0
论坛币
252 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
12389 点
帖子
276
精华
0
在线时间
205 小时
注册时间
2012-12-31
最后登录
2016-1-30

楼主
superbosslbls 发表于 2013-11-22 04:04:50 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
写了一个module在proc iml下来做一个two sample t test。
proc iml;
start q4(q);
use q;
read all var {x1 x2} into x;
x1=x[*,1];
x2=x[*,2];
n=nrow(x1);
x1bar=mean(x1);
x2bar=mean(x2);
d1=x1-x1bar*j(n,1);
d2=x2-x2bar*j(n,1);
s1=d1`*d1/(n-1);
s2=d2`*d2/(n-1);
t=(n/(s1+s2))**0.5*(x1bar-x2bar);
df=2*n-2;
pvalue=2*probt(t,df);
print t,pvalue;
finish;
测试过不写module而是直接用在数据上是结果是没问题的,但是当要用module的时候出现问题了,下面是数据
data ones;
input x1 x2;
cards;
1 2
4 5
7 8
3 8
9 7
6 3
;
run;
当我把数据写在iml里面时,run q4(ones)虽然没问题但是不会出来结果;当我把数据写在iml上面时,sas告诉我ERROR: File WORK.Q.DATA does not exist。不知道怎么回事,向大家请教下
二维码

扫码加我 拉你入群

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

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

关键词:ROC module pvalue Sample finish

沙发
superbosslbls 发表于 2013-11-22 04:22:29
感觉问题就出在use q;这句话,sas好像不认为这个q是q4(q)括号里的数据集q,而应该是一个已存在的数据集q

藤椅
hardychaochao 发表于 2016-11-15 16:45:53
proc iml;
start q4;
use q;
read all var {x1 x2} into x;
x1=x[*,1];
x2=x[*,2];
n=nrow(x1);
x1bar=mean(x1);
x2bar=mean(x2);
d1=x1-x1bar*j(n,1);
d2=x2-x2bar*j(n,1);
s1=d1`*d1/(n-1);
s2=d2`*d2/(n-1);
t=(n/(s1+s2))**0.5*(x1bar-x2bar);
df=2*n-2;
pvalue=2*probt(t,df);
print t,pvalue;
finish;

submit;
data q;
input x1 x2;
cards;
1 2
4 5
7 8
3 8
9 7
6 3
;
run;
endsubmit;

run q4;

quit;
上面的代码可以运行。。。

q4()括号里填的是参数,不是数据集名字。
你没有设置参数,所以直接run这个module就可以了的。
已有 1 人评分论坛币 收起 理由
admin_kefu + 30 热心帮助其他会员

总评分: 论坛币 + 30   查看全部评分

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-22 07:42