我有这个概率问题:
在任何一天,埃里克都要开朗(C),马马虎虎(S)或闷闷不乐(G)。
如果他今天开心,那么明天他将成为C,S或G,各自的概率为0.5,0.3,0.2。
如果他今天感觉如此,那么明天他将成为C,S或G,概率为0.3,0.4,0.3。
如果他今天闷闷不乐,那么明天他将成为C,S或G,概率为0.2,0.2,0.6。
我在R中生成了50,000个独立的伪随机数(均匀)并打印出前40个。现在,我如何使用第一个随机数随机选择初始状态X0(1/3概率为 每个州)?我知道这相当于生成一个离散的随机变量,但我仍然感到困惑。
答案 0 :(得分:0)
我假设您的随机数是0到1范围内的浮点数。如果是这样,很容易得到0到n - 1范围内的整数:只需将每个数字除以1 / n并取下(即整数部分)。
如果1是输入的可能值,则从地板(1 /(1 / n))得到n。如果这是一个问题,只需将其抛出并生成另一个随机数。
答案 1 :(得分:0)
我知道这相当于生成一个离散的随机变量,但我仍然感到困惑。
不太好
您可以直接从U(0,1)生成状态而无需进行离散采样。请将状态更改为您要在代码中使用的任何内容(整数?某些因素?)
initial_state <- function(r) {
state <- "G"
if (r < 1.0/3.0) {
state <- "C"
}
else {
if (r < 2.0/3.0)
state <- "S"
}
state
}