楼主: jpingl1273
1610 13

SAS批量卡方检验求助 [推广有奖]

  • 1关注
  • 2粉丝

副教授

61%

还不是VIP/贵宾

-

威望
0
论坛币
3440 个
通用积分
0
学术水平
6 点
热心指数
12 点
信用等级
7 点
经验
1458 点
帖子
647
精华
0
在线时间
1154 小时
注册时间
2008-9-5
最后登录
2019-6-11

jpingl1273 发表于 2017-2-21 02:08:20 |显示全部楼层
求助各位大神,数据如下:
QQ截图20140221020615.png

求教如何一次性的批量求出变量A1到An的卡方值?group是分组,OT是结果 Ai部分是需要加权的频数。
不胜感激

stata SPSS
jpingl1273 发表于 2017-2-21 09:39:13 |显示全部楼层
自己顶一下吧,求关注,求解答!
回复

使用道具 举报

zwnSAS121 发表于 2017-2-21 09:43:45 |显示全部楼层
  1. /*解决实际问题之批量进行卡方检验*/
  2. data chisq;
  3. input group$ class$ A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12;
  4. cards;
  5. 1 1 9 100 95 54 17 1 0 1 3 69 32 70
  6. 1 2 267 176 181 222 259 275 276 275 273 207 244 206
  7. 2 1 25 131 142 89 28 1 2 0 4 111 56 108
  8. 2 2 393 287 276 329 390 417 416 418 414 307 362 310
  9. ;
  10. %macro ka(start,end);
  11. %do i=&start %to &end;
  12. proc freq data=chisq;
  13. weight A&i;
  14. table group*class/chisq nocol norow nopercent agree;
  15. title "A&i.的卡方检验";
  16. output;
  17. %end;
  18. run;
  19. %mend ka;
  20. %ka(1,12)
  21. /*12组卡方检验,结果对应的p值(>0.05)都无显著性,说明class与group无关*/
复制代码
回复

使用道具 举报

zwnSAS121 发表于 2017-2-21 09:46:10 |显示全部楼层
  1. /*解决实际问题之批量进行卡方检验*/
  2. data chisq;
  3. input group$ class$ A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12;
  4. cards;
  5. 1 1 9 100 95 54 17 1 0 1 3 69 32 70
  6. 1 2 267 176 181 222 259 275 276 275 273 207 244 206
  7. 2 1 25 131 142 89 28 1 2 0 4 111 56 108
  8. 2 2 393 287 276 329 390 417 416 418 414 307 362 310
  9. ;
  10. %macro ka(start,end);
  11. %do i=&start %to &end;
  12. proc freq data=chisq;
  13. weight A&i;
  14. table group*class/chisq nocol norow nopercent agree;
  15. title "A&i.的卡方检验";
  16. output;
  17. %end;
  18. run;
  19. %mend ka;
  20. %ka(1,12)
  21. /*12组卡方检验,结果对应的p值(>0.05)都无显著性,说明class与group无关*/
复制代码
回复

使用道具 举报

jpingl1273 发表于 2017-2-21 10:11:09 |显示全部楼层
回复

使用道具 举报

wang1839 在职认证  发表于 2017-2-21 10:30:42 |显示全部楼层
  1. data a;
  2. input group ot a1-a5;
  3. cards;
  4. 1  1   9 100  95  54  17
  5. 1  2 267 176 181 222 259
  6. 2  1  25 131 142  89  28
  7. 2  2 393 287 275 329 390
  8. ;
  9. run;

  10. proc transpose data=a out=b ;
  11. by group ot;
  12. run;

  13. data c;
  14.         set b;
  15.         order=input(compress(_name_,'a'),best.);
  16.         drop _name_;
  17. run;

  18. proc sort data=c;
  19.         by order;
  20. run;

  21. ods trace on;
  22. ods output   ChiSq=chi;
  23. proc freq data=c;
  24. by order;
  25. tables group*ot /chisq;
  26. weight col1;
  27. run;
复制代码
回复

使用道具 举报

zwnSAS121 发表于 2017-2-21 11:24:25 |显示全部楼层
  1. /*解决实际问题之批量进行卡方检验*/
  2. data chisq;
  3. input group$ class$ A1-A12;
  4. cards;
  5. 1 1 9 100 95 54 17 1 0 1 3 69 32 70
  6. 1 2 267 176 181 222 259 275 276 275 273 207 244 206
  7. 2 1 25 131 142 89 28 1 2 0 4 111 56 108
  8. 2 2 393 287 276 329 390 417 416 418 414 307 362 310
  9. ;
  10. %macro ka(start,end);
  11. %do i=&start %to &end;
  12. proc freq data=chisq;
  13. weight A&i;
  14. table group*class/chisq nocol norow nopercent agree;
  15. title "A&i.的卡方检验";
  16. output;
  17. %end;
  18. run;
  19. %mend ka;
  20. %ka(1,12)
  21. /*12组卡方检验,结果对应的p值(>0.05)都无显著性,说明class与group无关*/
复制代码
回复

使用道具 举报

jpingl1273 发表于 2017-2-21 12:00:18 |显示全部楼层
zwnSAS121 发表于 2017-2-21 09:46
谢谢您的回复,十分感谢哈,但是假如这个Ai的i是好几千的话怎么办呢?
回复

使用道具 举报

jpingl1273 发表于 2017-2-21 12:01:02 |显示全部楼层
wang1839 发表于 2017-2-21 10:30
谢谢您的回复,十分感谢哈,但是假如这个Ai的i是好几千的话怎么办呢?
回复

使用道具 举报

jpingl1273 发表于 2017-2-21 12:01:05 |显示全部楼层
wang1839 发表于 2017-2-21 10:30
谢谢您的回复,十分感谢哈,但是假如这个Ai的i是好几千的话怎么办呢?
回复

使用道具 举报

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

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

GMT+8, 2019-6-19 23:48