楼主: Emily225928
3181 10

亲们 麻烦帮忙看一下SAS做分类变量趋势检验的程序写的对不对 非常感谢 [推广有奖]

  • 0关注
  • 0粉丝

初中生

71%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
94 点
帖子
13
精华
0
在线时间
11 小时
注册时间
2013-7-25
最后登录
2014-1-13

楼主
Emily225928 发表于 2014-1-8 20:48:39 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
data a;
do group="1","2","3";
    do response=1 to 5
            input f@@;
            output;
    end;
        cards;
2         2         1         20         5
1         7         5         10         7
11         9         1         4         5
;
run;
ods html;
proc freq data=a;
order=data;
tables group*response;
exact jt;
weight f;
run;
ods html close;


二维码

扫码加我 拉你入群

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

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

关键词:非常感谢 分类变量 response output tables tables close 程序

沙发
Emily225928 发表于 2014-1-8 20:49:14

补充说明  自变量就三个水平,分别为1  2  3 组;因变量分为:完全不,稍微,中等,较为,非常5个等级,
数据格式如下:
       全无      稍微   中等    较为   非常
1:  2 人           2人             1人         20人         5 人
2:  1                7                5         10         7  
3:  11              9                1          4          5
  

藤椅
shenweis 发表于 2014-1-8 22:17:31
%let group=3;
%let rank=5;
%let col_row=%eval(&group*&rank);
DATA _NULL_;
row=&rank;
col=&group;
ARRAY num(&rank,&group);
ARRAY cpd(&group);
ARRAY ridit(&group);
ARRAY trow(&rank);
ARRAY tcol(&group);
ARRAY y(&rank);
ARRAY ucpd(&group);
ARRAY uridit(&group);
ARRAY t(&group);
FILE PRINT;
n=0;     buf1=0;
buf4=0;  buf5=0;
INPUT num1-num&col_row;
DO j=1 TO col;
  tcol(j)=0;
  DO i=1 TO row;
   tcol(j)=tcol(j)+num(i,j);
  END;
n=n+tcol(j);
END;
buf3=n;
DO i=1 TO row;
trow(i)=0;
DO j=1 TO col;
  trow(i)=trow(i)+num(i,j);
END;
buf4=buf4+trow(i)*trow(i)*trow(i);
buf2=trow(i);
y(i)=buf3-buf1-buf2;
buf3=y(i);
buf1=trow(i);
END;
DO j=1 TO col;
cpd(j)=0;
DO i=1 TO row;
  cpd(j)=cpd(j)+num(i,j)*y(i);
END;
ridit(j)=0.5-cpd(j)/(2*tcol(j)*n);
t(j)=tcol(j)*(n+1)/2-cpd(j)/2;
  ucpd(j)=cpd(j)/sqrt(tcol(j)*(n-tcol(j))*(n*n*n-buf4)/(3*n*(n-1)));
  uridit(j)=(0.5-ridit(j))/sqrt((n*n*n-buf4)/(12*n*n*(n-1)*tcol(j)));
  buf5=buf5+t(j)*t(j)/tcol(j);  END;
Hc=(12/(n*(n+1))*buf5-3*(n+1))/(1-(buf4-n)/(n*(n*n-1)));
prob_Hc=1-PROBCHI(Hc,col-1);
PUT @27 "Kruskal-Wallis's Test"
     #3 @19 'Adjusted Chi-Square(Hc)' @49 'Prob>Hc'
     #4 @25 Hc 10.4 @50 prob_Hc 6.4;
PUT #7 @25 'Result of CPD and RIDIT Analysis'
     #9 @6 'CPD Values' @20 "CPD's U-Values"
        @40 'RIDIT Values' @60 "RIDIT's U-Values";
DO j=1 TO col;
  PUT #(j+9) @6  cpd(j)   7.4  @22 ucpd(j) 8.4
             @43 ridit(j) 7.4  @62 uridit(j) 8.4;
END;
buf1=probit(0.05/2/col);  buf2=-buf1;
buf3=probit(0.05/2);      buf4=-buf3;
PUT #(col+10) @6 "ALPHA= 0.05   CPD's Critical U-Values"
               @56 buf1 7.4 @68 buf2 7.4;
PUT #(col+11) @6 "              RIDIT's Critical U-Values"
               @56 buf3 7.4 @68 buf4 7.4;
buf1=probit(0.01/2/col);  buf2=-buf1;
buf3=probit(0.01/2);      buf4=-buf3;
PUT #(col+12) @6 "ALPHA= 0.01   CPD's Critical U-values"
               @56 buf1 7.4 @68 buf2 7.4;
PUT #(col+13) @6 "              RIDIT's Critical U-Values"
               @56 buf3 7.4 @68 buf4 7.4;
CARDS;
5  7  5
20 10 4
1 5 1
2 7 9
2 1 11
;
RUN;

板凳
shenweis 发表于 2014-1-8 22:20:38
这个资料应是单向有序资料的RIDIT分析吧,或者CPD分析也可以,我把你的数据倒了一下,先入的后面的。不知道对不对。
结果如下图:
2014-01-08_222104.png

报纸
Emily225928 发表于 2014-1-9 00:04:51
shenweis 发表于 2014-1-8 22:20
这个资料应是单向有序资料的RIDIT分析吧,或者CPD分析也可以,我把你的数据倒了一下,先入的后面的。不知道 ...
太感谢啦  请问能不能加下QQ   有不明白的问题还想跟你请教   一共有六组数据的话  要怎么改程序  感觉看的不是很明白   多谢你。我的QQ835553293   如果不打扰的话 能不能加我一下 。

地板
Emily225928 发表于 2014-1-9 00:09:33
shenweis 发表于 2014-1-8 22:20
这个资料应是单向有序资料的RIDIT分析吧,或者CPD分析也可以,我把你的数据倒了一下,先入的后面的。不知道 ...
只改CARDS下面的数据就好了吗

7
shenweis 发表于 2014-1-9 09:02:27
%let group=3;
%let rank=5;
最上面的需要改,第一行是水平数,第二行是分类结果数。
其它改最后面的数据就可以了。注意数据的行列。

8
shenweis 发表于 2014-1-9 11:45:52
再给出单一ridit分析:
ods html;
%let group=3;
%let rank=5;
%let col_row=%eval(&group*&rank);
DATA QQTJFX16_3;
row=&rank;
col=&group;
ARRAY num(&rank,&group);
ARRAY cpd(&group);
ARRAY ridit(&group);
ARRAY trow(&rank);
ARRAY tcol(&group);
ARRAY y(&rank);
ARRAY ucpd(&group);
ARRAY uridit(&group);
ARRAY t(&group);
ARRAY stde(&group);
ARRAY lowci(&group);
ARRAY uppci(&group);
ARRAY lowc9(&group);
ARRAY uppc9(&group);
  FILE PRINT;
n=0;     buf1=0;
buf4=0;  buf5=0;
INPUT num1-num&col_row;
DO j=1 TO col;
  tcol(j)=0;
  DO i=1 TO row;
   tcol(j)=tcol(j)+num(i,j);
  END;
n=n+tcol(j);
END;
buf3=n;
DO i=1 TO row;
trow(i)=0;
DO j=1 TO col;
  trow(i)=trow(i)+num(i,j);
END;
buf4=buf4+trow(i)*trow(i)*trow(i);
buf2=trow(i);
y(i)=buf3-buf1-buf2;
buf3=y(i);
buf1=trow(i);
END;
DO j=1 TO col;
cpd(j)=0;
DO i=1 TO row;
  cpd(j)=cpd(j)+num(i,j)*y(i);
END;
ridit(j)=0.5-cpd(j)/(2*tcol(j)*n);
t(j)=tcol(j)*(n+1)/2-cpd(j)/2;
stde(j)=sqrt((n*n*n-buf4)/
(12*n*n*(n-1)*tcol(j)));
ucpd(j)=cpd(j)/sqrt(tcol(j)*
(n-tcol(j))*(n*n*n-buf4)/(3*n*(n-1)));
uridit(j)=(0.5-ridit(j))/
sqrt((n*n*n-buf4)/
(12*n*n*(n-1)*tcol(j)));
buf5=buf5+t(j)*t(j)/tcol(j);
lowci(j)=ridit(j)-1.96*stde(j);
uppci(j)=ridit(j)+1.96*stde(j);
lowci(j)=ROUND(lowci(j), 0.0001);
uppci(j)=ROUND(uppci(j), 0.0001);
lowc9(j)=ridit(j)-2.576*stde(j);
uppc9(j)=ridit(j)+2.576*stde(j);
lowc9(j)=ROUND(lowc9(j), 0.0001);
uppc9(j)=ROUND(uppc9(j), 0.0001);
END;
Hc=(12/(n*(n+1))*buf5-3*(n+1))/
(1-(buf4-n)/(n*(n*n-1)));
prob_Hc=1-PROBCHI(Hc,col-1);
PUT @25 "Kruskal-Wallis's Test"
#3 @14 'Adjusted Chi-Square(Hc)'
@49 'Prob>Hc'
#4 @20 Hc 10.4 @50 prob_Hc 6.4;
PUT #6 @25 'Result of RIDIT Analysis'
#8 @5 'Means of RIDIT' @22 '%95  C.I. of'
@40 '99%  C.I. of'  @56 "RIDIT's"
#9 @5 '   Values'    @22 'RIDIT Values' @40 'RIDIT Values'  @56 "U-Values";
DO j=1 TO col;
PUT #(j+10) @7 ridit(j) 7.4 @21
lowci(j) '--' uppci(j)
@39 lowc9(j) '--' uppc9(j) @55
uridit(j) 8.4;
END;
buf1=probit(0.05/2/col);  
buf2=-buf1;
buf3=probit(0.05/2);      
buf4=-buf3;
PUT #(col+12) @5 "ALPHA=0.05  
RIDIT's Critical U-Values"
@45 buf3 7.4 @56 buf4 7.4;
buf1=probit(0.01/2/col);  
buf2=-buf1;
buf3=probit(0.01/2);     
buf4=-buf3;
PUT #(col+13) @5 "ALPHA=0.01  
RIDIT's Critical U-Values"
@45 buf3 7.4 @56 buf4 7.4;
CARDS;
5 7 5
20 10 4
1 5 1
2 7 9
2 1 11
;
RUN;
ods html close;

9
shenweis 发表于 2014-1-9 11:46:26
结果:
Kruskal-Wallis's Test                                                      
                                                                                                   
             Adjusted Chi-Square(Hc)            Prob>Hc                                            
                      13.1476                    0.0014                                            
                                                                                                   
                        Result of RIDIT Analysis                                                   
                                                                                                   
    Means of RIDIT   %95  C.I. of      99%  C.I. of    RIDIT's                                    
       Values        RIDIT Values      RIDIT Values    U-Values                                    
                                                                                                   
       0.3989       0.2989 --0.4989   0.2674 --0.5303   1.9813                                    
       0.4533       0.3533 --0.5534   0.3219 --0.5848   0.9145                                    
       0.6478       0.5478 --0.7478   0.5163 --0.7792  -2.8958                                    
                                                                                                   
    ALPHA=0.05 RIDIT's Critical U-Values    -1.9600     1.9600                                    
    ALPHA=0.01 RIDIT's Critical U-Values    -2.5758     2.5758                                    

10
shenweis 发表于 2014-1-9 12:01:17
如果和你的数据一致,则为:
CARDS;
2 1 11
2 7 9
1 5 1
20 10 4
5 7 5
;
RUN;
ods html close;

分析结果为:
Kruskal-Wallis's Test                                                      
                                                                                                   
             Adjusted Chi-Square(Hc)            Prob>Hc                                            
                      13.1476                    0.0014                                            
                                                                                                   
                        Result of RIDIT Analysis                                                   
                                                                                                   
    Means of RIDIT   %95  C.I. of      99%  C.I. of    RIDIT's                                    
       Values        RIDIT Values      RIDIT Values    U-Values                                    
                                                                                                   
       0.6011       0.5011 --0.7011   0.4697 --0.7326  -1.9813                                    
       0.5467       0.4466 --0.6467   0.4152 --0.6781  -0.9145                                    
       0.3522       0.2522 --0.4522   0.2208 --0.4837   2.8958                                    
                                                                                                   
    ALPHA=0.05 RIDIT's Critical U-Values    -1.9600     1.9600                                    
    ALPHA=0.01 RIDIT's Critical U-Values    -2.5758     2.5758                                    

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

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