Advertisement
Guest User

Untitled

a guest
Jun 17th, 2018
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SAS 4.70 KB | None | 0 0
  1. /* Antonija Ðuriæ */
  2. /* 1191227212 */
  3.  
  4.                                         /* ZADATAK 2 */
  5.  
  6.  
  7.  
  8.  data  pizza;
  9.  input tijesto $ kvaliteta @@;
  10.  datalines;
  11. s 4.5 s 4.7 s 3.8 s 4.2 s 5.2 s 4.6 s 4.6
  12. n 5.3 n 4.8 n 5.4 n 4.9 n 5.0 s 4.7
  13. ;
  14. run;
  15.  
  16.  
  17.  
  18. /* A */
  19.  
  20. proc ttest data=pizza;
  21.  var kvaliteta;
  22.  class tijesto;
  23.  run;
  24.  
  25.  
  26. /* B */
  27.    
  28. /*** Bootstrap uzorkovanje za testiranje hipoteze H0: mi1=mi2 (jednakost sredina 2 nezavisna uzorka) ***/
  29.  
  30. data grupa1;
  31.   set pizza;
  32.   where tijesto="n";
  33.   ;
  34. data grupa2;
  35.   set pizza;
  36.   where tijesto="s";
  37.   ;
  38. data grupe;
  39.  set grupa1 (in=a) grupa2;
  40.  if a then grupa=1; else grupa=2;
  41.  id=_N_;
  42.  run;
  43.  
  44. /*** Prosjeèna vrijednost efikasnosti po grupama ***/
  45.  
  46.  proc means data=grupe nway noprint;
  47.   var kvaliteta;
  48.   class grupa;
  49.   output out=out mean=mean;
  50.  run;
  51.  
  52.  data _NULL_;
  53.   set out;
  54.   if grupa=1 then call symput("mean1",mean);
  55.   else            call symput("mean2",mean);
  56.   run;
  57.  
  58.   %put mean1=&mean1 mean2=&mean2;
  59.  
  60. /*** Centriranje (x-mean) unutar grupa ***/
  61.  
  62.   data grupa1_centrirana;
  63.    set grupa1;
  64.    kvaliteta=kvaliteta-&mean1;
  65.    run;
  66.   data grupa2_centrirana;
  67.    set grupa2;
  68.    kvaliteta=kvaliteta-&mean2;
  69.    run;
  70.  
  71. /*** Neparametarski bootstrap (path mora biti postavljen izvoðenjem autoexec programa) ***/
  72.  
  73. %include "&path\Programs\jackboot1.sas";                                                                                                              
  74.  
  75. /*** GRUPA 1 ***/
  76.  
  77. %let var=kvaliteta;
  78. %let dat=grupa1_centrirana;
  79. %let seed=1278;  *za grupu 1 (lijek="A");
  80.  
  81. %let bsamples=500;
  82. %let alph=0.05;
  83.  
  84.  
  85. %macro analyze(data=,out=);                                                                                                                  
  86. proc means data=&data noprint  nway;                                                                                
  87.    var &var;                                                                                                                          
  88.    output out=&out(drop=_freq_ _type_) mean=mean1 stderr=stde1;
  89.  
  90.    %bystmt;      
  91.  run;    
  92.  %mend;                                                                                                                                    
  93.  
  94.  %boot(data=&dat,random=&seed, stat=mean1,samples=&bsamples )      
  95.  
  96.  
  97. data boot_grupa1;
  98.  set bootdist;
  99.  run;
  100.  
  101. proc means data=grupa1 noprint  nway;                                                                                
  102.    var &var;                                                                                                                          
  103.    output out=actual_grupa1(drop=_freq_ _type_) mean=mean1 stderr=stde1;
  104.  
  105.  run;    
  106.  
  107.  
  108. /*** GRUPA 2 ***/
  109.  
  110. %let var=kvaliteta;
  111. %let dat=grupa2_centrirana;
  112. %let seed= 4156; *za grupu 2 (lijek="B");
  113. %let bsamples=500;
  114. %let alph=0.05;
  115.  
  116.  
  117.  
  118. %macro analyze(data=,out=);                                                                                                                  
  119. proc means data=&data noprint  nway;                                                                                
  120.    var &var;                                                                                                                          
  121.    output out=&out(drop=_freq_ _type_) mean=mean2 stderr=stde2;
  122.  
  123.    %bystmt;      
  124.  run;    
  125.  %mend;                                                                                                                                    
  126.  
  127.  %boot(data=&dat,random=&seed, stat=mean2,samples=&bsamples )      
  128.  
  129.  
  130. data boot_grupa2;
  131.  set bootdist;
  132.  run;
  133.  
  134.  
  135.  
  136. proc means data=grupa2 noprint  nway;                                                                                
  137.    var &var;                                                                                                                          
  138.    output out=actual_grupa2(drop=_freq_ _type_) mean=mean2 stderr=stde2;
  139.  
  140.  run;    
  141.  
  142. data actual_Welch_t;
  143.   merge actual_grupa1 actual_grupa2;
  144.   Welch_t_actual=(mean1-mean2)/sqrt(stde1**2 + stde2**2);
  145.   keep Welch_t_actual;
  146.   run;
  147.  
  148.  
  149. data boot_Welch_t;
  150.    merge  boot_grupa1 boot_grupa2;
  151.    by _sample_;
  152.    if _N_=1 then set actual_Welch_t;
  153.    Welch_t=(mean1-mean2)/sqrt(stde1**2 + stde2**2);
  154.  
  155.    prob_left =(Welch_t < -abs(Welch_t_actual));
  156.    prob_right=(Welch_t > abs(Welch_t_actual));
  157.  
  158.    prob=sum(prob_left,prob_right);
  159.    run;
  160.  
  161.  
  162. ods html;
  163. proc means data=boot_Welch_t mean p5 p95;
  164.  var Welch_t;
  165.  run;
  166.  
  167. /*** Dvostrani test, pa je rješenje mean za varijablu prob ***/
  168.  
  169.    proc means data= boot_Welch_t mean;
  170.     var prob_left prob_right prob;
  171.     output out=nesto mean=mean;
  172.     run;
  173.  
  174. /*
  175. Variable        Mean
  176. prob_left       0.0120000
  177. prob_right      0.0060000
  178. prob            0.0180000
  179.    
  180.  */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement