「二値データのシミュレーション方法」の編集履歴(バックアップ)一覧はこちら
「二値データのシミュレーション方法」(2006/08/11 (金) 22:23:45) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
/*
方法 (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;
/*
方法 (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;
表示オプション
横に並べて表示:
変化行の前後のみ表示: