问题描述
因此,我试图证明当X〜Geo(X)时,期望值等于:E [X] = p /(1-p)
p <- 0.50
#1 Exact
(p/(1 - p))
nrRuns <- 100000
#1 Simulation
x <- rep(0,nrRuns)
for (i in 1:nrRuns){
x[i]=rgeom(n = 1,prob = p)
}
mean(x)
在p = 0.50时,精确计算得出1,并且模拟输出如预期的那样为1.00134,但是当我将p值更改为0.20时,精确计算得出0.25,但是我的模拟报告为3.99477。我希望模拟报告为0.25。那怎么可能呢?
解决方法
这是R的矢量化函数和可再现性的一个例子。
f <- function(p,R){
x <- rgeom(R,prob = p)
c(Exact = (1 - p)/p,Sim = mean(x))
}
nrRuns <- 100000
set.seed(2020) # make the results reproducible
f(p = 0.2,R = nrRuns)
# Exact Sim
#4.00000 4.02563
现在输入问题代码。
set.seed(2020) # Reproduce the result above
p <- 0.2
x <- rep(0,nrRuns)
for (i in 1:nrRuns){
x[i] <- rgeom(n = 1,prob = p)
}
mean(x)
#[1] 4.02563
结果相同。