【发布时间】:2016-06-29 18:11:26
【问题描述】:
我是 SAS 新手,我想知道如何解决在创建二项分布时找不到变量的问题?
DATA additional (KEEP=X);
DO REPEAT = 1 TO 1000;
CALL STREAMINIT(1234);
DO I=1 TO 1000;
X=RAND("BINOMIAL",0.6,10); /*NUMBER OF WINS IN TEN TOSSES*/
END;
IF X GE 5 THEN WINNER + 1;
ELSE LOSER + 1;
OUTPUT;
END;
RUN;
PROC PRINT DATA=additional;
VAR WINNER LOSER;
RUN;
我正在创建一个二项式随机变量,如果 x 大于 5,则获胜者为 1,如果小于 5,则失败者为 1,问题是要找出获胜者的次数和次数是失败者。我不断收到未找到变量的错误。我在生成二项分布时做错了吗?
/进一步编辑/这是我遇到的问题。
给你 10 美元。让变量money = 10。 你玩游戏 10 次。你赢得一场比赛的概率是 0.4, 你输掉一场比赛的概率是0.6。 如果您赢了一场比赛,您将赢得 1 美元。如果您输掉一场比赛,您将损失 1 美元。因此,如果 你赢了第一局,钱变成了 11。但是如果你输了第一局 游戏,钱变成9。 在你玩了 10 次之后,金钱就是你所获得的金额 带回家。如果您最终获得至少 10 美元,请称自己为赢家。 否则,称自己为失败者。将变量结果定义为获胜者 或失败者。
(a) 编写一个数据步骤来生成随机数并模拟你的 结果1000次。这样我就可以轻松检查您的输出,使用 1234 作为随机数生成器的种子。 (你不 需要向我展示 1000 个结果。)
(b) 编写一个 proc 步骤以显示您获胜的次数,以及 多少次你是个失败者。
【问题讨论】:
-
由于您告诉第一个数据步骤它应该只保留变量 X,因此您不能告诉 PROC PRINT 打印变量 WINNER 和 LOSER,因为它们没有写入数据集。
-
您希望输出 1,000 个观察值还是 1,000,000 个?您当前的循环将生成 1,000 个 X 值并忽略其中的前 999 个。
-
谢谢汤姆!是的,我正在尝试获得 1000 次观察的输出。
标签: sas