为什么用 rgeom 改变 p 值不能给出预期的结果

Why does changing the p-value with rgeom not give the expected result

所以我试图证明当 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

结果是一样的