「二値データのシミュレーション方法」の編集履歴(バックアップ)一覧に戻る

二値データのシミュレーション方法 - (2006/08/11 (金) 22:20:40) のソース

 /*
 方法 (1) 簡易版
   PR = ...;
   DV = 0; 
   IF PR >= 0.5 THEN DV = 1;
 
 方法 (2)
   PR = ...;
   DV = 0;
   R = RANUNI();
   IF R <= PR THEN DV = 1;
 */
 
 %LET NSIM = 1000; *** 1 群 (1 用量) あたりのシミュレーション回数 ***;
 %LET SEED = 2601; *** 乱数の種 ***;
 
 DATA p;
   *** Group = 1 ~ 9, それぞれ母確率 10%, ..., 90% に対応させる ***;
   DO Group = 1 TO 9;
     DO i = 1 TO &NSIM;
       *** +/- 50% のばらつきを持たせる ***;
       pr = Group / 10 + RANUNI(&SEED) - 0.5;
 
       *** pr: 確率 probability ***;
       *** 0 <= pr <= 1 にする ***;
       IF pr < 0 THEN pr = 0;
       IF pr > 1 THEN pr = 1;
 
       *** 方法 (1) 簡易版 ***;
       DV_simple = 0;
       *** pr >= 0.5 だったら「有効」とする ***;
       IF pr >= 0.5 THEN DV_simple = 1;
 
       DV = 0;
       *** 確率 pr に応じて有効/無効を生成する ***;
       IF RANUNI(&SEED) <= pr THEN DV = 1;
 
       OUTPUT;
     END;
   END;
 RUN;
 
 PROC FREQ DATA=p;
   TITLE1 '方法 (1) 簡易版';
   TABLES DV_simple * Group / NOPERCENT NOROW NOFREQ;
 RUN;
 PROC FREQ DATA=p;
   TITLE1 '方法 (2)';
   TABLES DV        * Group / NOPERCENT NOROW NOFREQ;
 RUN;
 
 TITLE1;
人気記事ランキング
目安箱バナー