楼主: ttmei
3237 6

[原创博文] 如何从SAS运行得到的众多结果中提取想要的结果并进行分析? [推广有奖]

  • 0关注
  • 0粉丝

高中生

17%

还不是VIP/贵宾

-

威望
0
论坛币
403 个
通用积分
0
学术水平
1 点
热心指数
1 点
信用等级
1 点
经验
1997 点
帖子
23
精华
0
在线时间
14 小时
注册时间
2009-5-6
最后登录
2020-9-6

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
工作中遇到一个难题,跪求各位高手大侠的帮助,将不胜感激!数据如下;
             x1                    x2
00
00
00.194524181
00.193628445
00.324881475
00.62184472
00.620721755
00.951667341
00.950444341
01.125868305
00.947999226
0.4636299470.94677711
0.6621465891.122072013
1.3372293671.887472204
1.3349610483.191768201
1.332693454.152501155
1.8332663535.722478385
1.8308420118.047885729
3.23499386312.75743694
4.82881046616.64131955
6.23033860419.63580102
8.54071988422.39520766
10.6553850525.34358262
12.9467210927.95276074
15.4210595530.14475545
16.4612919530.70560581
17.5326275432.43165634
19.2016408934.82412985
19.7712967135.43639784
20.3492122837.32067156
22.1428949438.61075375
21.5302168939.92961874
22.1335101436.6747002
22.7454716337.95048576
22.7407338839.25470498
23.9958395441.26761358
23.9910098340.58462724
23.9861803141.26070298
23.3470773541.25724776
24.6198458540.57433489
23.9716928341.93735249
23.3327292941.24688242
23.9620354241.93039321

步骤是先对x1和x2做相关,得到R值(相关系数);然后将X2向下错一位得到新的一列n1,再做x1和n1相关,得到R1;比较R和R1,如果R1>R则将n1再错位和x1做相关,如果R1<=R则停止,最后并输出错位次数。
二维码

扫码加我 拉你入群

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

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

关键词:不胜感激 相关系数 如何 不胜感激

回帖推荐

guoluo 发表于2楼  查看完整内容

在数据集R可以找到x1和X2,n1,n2的相关系数

本帖被以下文库推荐

沙发
guoluo 发表于 2010-4-2 19:14:46 |只看作者 |坛友微信交流群
  1. data a;
  2. input x1  x2;
  3. cards;
  4. 0        0
  5. 0        0
  6. 0        0.194524181
  7. 0        0.193628445
  8. 0        0.324881475
  9. 0        0.62184472
  10. 0        0.620721755
  11. 0        0.951667341
  12. 0        0.950444341
  13. 0        1.125868305
  14. 0        0.947999226
  15. 0.463629947        0.94677711
  16. 0.662146589        1.122072013
  17. 1.337229367        1.887472204
  18. 1.334961048        3.191768201
  19. 1.33269345        4.152501155
  20. 1.833266353        5.722478385
  21. 1.830842011        8.047885729
  22. 3.234993863        12.75743694
  23. 4.828810466        16.64131955
  24. 6.230338604        19.63580102
  25. 8.540719884        22.39520766
  26. 10.65538505        25.34358262
  27. 12.94672109        27.95276074
  28. 15.42105955        30.14475545
  29. 16.46129195        30.70560581
  30. 17.53262754        32.43165634
  31. 19.20164089        34.82412985
  32. 19.77129671        35.43639784
  33. 20.34921228        37.32067156
  34. 22.14289494        38.61075375
  35. 21.53021689        39.92961874
  36. 22.13351014        36.6747002
  37. 22.74547163        37.95048576
  38. 22.74073388        39.25470498
  39. 23.99583954        41.26761358
  40. 23.99100983        40.58462724
  41. 23.98618031        41.26070298
  42. 23.34707735        41.25724776
  43. 24.61984585        40.57433489
  44. 23.97169283        41.93735249
  45. 23.33272929        41.24688242
  46. 23.96203542        41.93039321
  47. ;

  48. proc corr data=a out=R(where=(_type_='CORR')) noprint;
  49. var x1 x2;
  50. run;

  51. data R(keep=x1 _NAME_);
  52.   set R end=final;
  53.   if final then do;
  54.     call symput('R',put(x1,best.));
  55.     output;
  56.   end;
  57. run;

  58. %macro prg;
  59. %let num=1;
  60. %let lastnum=0;
  61. %let R1=1;

  62. %do %while(&R<&R1);

  63. data a;
  64.   set a;
  65.   if &num=1 then n&num=lag(x2);
  66.   else n&num=lag(n&lastnum);
  67. run;

  68. proc corr data=a out=R1(where=(_type_='CORR')) noprint;
  69. var x1 n&num;
  70. run;

  71. data R1(keep=x1 _NAME_);
  72.   set R1 end=final;
  73.   if final then do;
  74.     call symput('R1',put(x1,best.));
  75.     output;
  76.   end;
  77. run;

  78. data R;
  79.   set R R1;
  80. run;

  81. %let num=%eval(&num+1);
  82. %let lastnum=%eval(&lastnum+1);
  83. %end;

  84. %put "The number of iteration is" %eval(&num-1);

  85. %mend;

  86. %prg
复制代码
在数据集R可以找到x1和X2,n1,n2的相关系数
已有 2 人评分经验 论坛币 学术水平 热心指数 收起 理由
bakoll + 3 + 3 精彩帖子
crackman + 100 + 1 + 1 精彩帖子

总评分: 经验 + 3  论坛币 + 103  学术水平 + 1  热心指数 + 1   查看全部评分

使用道具

藤椅
ttmei 发表于 2010-4-2 20:03:54 |只看作者 |坛友微信交流群
这位高人真是大好人,太感谢了!再次谢谢您!

使用道具

板凳
crackman 发表于 2010-4-2 20:21:07 |只看作者 |坛友微信交流群
data crackman;
input x1 x2@;
%num(&num.-1);
cards;
0 0
0 0
0 0.194524181
0 0.193628445
0 0.324881475
0 0.62184472
0 0.620721755
0 0.951667341
0 0.950444341
0 1.125868305
0 0.947999226
0.463629947 0.94677711
0.662146589 1.122072013
1.337229367 1.887472204
1.334961048 3.191768201
1.33269345 4.152501155
1.833266353 5.722478385
1.830842011 8.047885729
3.234993863 12.75743694
4.828810466 16.64131955
6.230338604 19.63580102
8.540719884 22.39520766
10.65538505 25.34358262
12.94672109 27.95276074
15.42105955 30.14475545
16.46129195 30.70560581
17.53262754 32.43165634
19.20164089 34.82412985
19.77129671 35.43639784
20.34921228 37.32067156
22.14289494 38.61075375
21.53021689 39.92961874
22.13351014 36.6747002
22.74547163 37.95048576
22.74073388 39.25470498
23.99583954 41.26761358
23.99100983 40.58462724
23.98618031 41.26070298
23.34707735 41.25724776
24.61984585 40.57433489
23.97169283 41.93735249
23.33272929 41.24688242
23.96203542 41.93039321
;
run;
proc sql;
select count(*) as num into:num from crackman;
quit;
proc corr data=crackman out=a(keep=x1 where=(x1<=1));
var _all_;
run;
proc sql ;
select x1 into:nu from a where _name_='x2';
quit;
data b;
set a;
n=&nu;
m=n-x1;
if m<0 then group+0 ;
else group+1;
obs=_n_-2;
where group=1;
run;
proc print data=b;
run;
%macro num(num);
%do i=1 %to &num.;
%let j=%eval(&i.+2);
x&j.=lag&i.(x2);
%end;
output;
%mend num;

使用道具

报纸
crackman 发表于 2010-4-2 20:22:11 |只看作者 |坛友微信交流群
结果里面的X1为R值
OBS为错位次数
是5

使用道具

地板
jingju11 发表于 2010-4-3 01:13:11 |只看作者 |坛友微信交流群
5# crackman

方法虽然不尽相同但总是大同小异.

使用道具

7
crackman 发表于 2010-4-3 11:11:27 |只看作者 |坛友微信交流群
二楼兄弟写的程序比我的好
没有额外的数据集

使用道具

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

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

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

GMT+8, 2024-9-20 17:15