【问题标题】:sas variable not found in simulating binomial distribution在模拟二项分布时找不到 sas 变量
【发布时间】: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


【解决方案1】:

不完全了解您想要进行模拟。从您的代码中,您只需保留 1000 条记录,由于您的第一个循环结束位置,这些记录都保存在最后一个循环中;调用 streaminit 应该是第一行;你只保留X,你不能得到赢家和输家变量。

我想也许你可以试试这个。

DATA additional;
CALL STREAMINIT(1234);
DO REPEAT= 1 TO 1000;  *numbers of sample;
DO I=1 TO 100;         *size of sample;
X=RAND("BINOMIAL",0.6,10); /*NUMBER OF WINS IN TEN TOSSES*/
IF X GE 5 THEN results='WINNER';
ELSE results='LOSER';
OUTPUT;
END;
END;
RUN;

proc freq data=additional;
by repeat;
table results;
run;

编辑:您似乎想知道最终结果,您可以通过将结果更改为数字变量从上面的代码中获取它。这是修改后的代码,如果赢是+1,输是-1。

DATA additional;
CALL STREAMINIT(1234);
DO REPEAT= 1 TO 100;  *numbers of sample;
DO I=1 TO 10;         *size of sample;
X=RAND("BINOMIAL",0.6,10); /*NUMBER OF WINS IN TEN TOSSES*/
IF X GE 5 THEN results+1;
ELSE results=results-1;
OUTPUT;
END;
results=0;
END;
RUN;


proc freq data=additional;
by repeat;
table results;
run;

【讨论】:

  • 非常感谢盛林!抱歉,我没有具体说明给出的问题并导致了一些误解。我编辑了问题。所以我试图找到这个随机生成二项分布的频率。
猜你喜欢
  • 2020-06-23
  • 1970-01-01
  • 2021-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多