说明LLN(大数定律)

时间:2017-05-31 18:59:10

标签: r probability

我必须通过R中的模拟来说明大数定律。 更确切地说。 我想说明累积分布函数的意思,

enter image description here

收敛于给定的函数f 如果x≤μ,则f(x)= 0,如果x> x,则f(x)= 1。 μ。 在我的情况下,我必须使用骰子。也就是说,每个X i 均匀分布在{1,2,3,4,5,6}上,因此μ= 3.5。 使用R,我试图按以下方式进行:

n <- 100
N <- 10000
mu <- 3.5
for(j in 1:N)
{
V[j] <- sum(sample(1:6), n, replace = TRUE);
}
f <- function(x)
{
if (x<=3.5)
{
y <-0
}
else
{
y <- 1
}
y
}
Vf <- Vectorize(f, "x")

所以我的想法是使用绘图比较均值的累积分布函数和函数f。如何正确地在R中实现它。所以我必须在一个图中绘制累积分布函数和函数f。

2 个答案:

答案 0 :(得分:1)

你可以像这样模拟骰子

set.seed(1)
n.rolls <- 100
dicerolls <- sample(1:6, n.rolls, replace=TRUE)

mean(dicerolls)

至于你提出的其他问题,我担心我需要进一步解释。也许你可以画出你想要什么样的情节的图像?

如果这是作业,您应该相应地标记您的问题,并阅读标签的信息 正如您所看到的,该站点不支持MathJax / LaTeX等式标记。如果你想要包含方程式,你可以通过像codecogs这样的方法来实现。

也许你想到的是这样的事情?

dicerolls <- function(rolls=2, reps=10^4) {
    mean.per.replicate <- replicate(reps, mean(sample(1:6, rolls, replace=TRUE)))
}

set.seed(1)
dice.seq <- c(1:6, 20, 100)

opar <- par(no.readonly=TRUE)
par(mar=c(2, 2.5, 1, 0.1), mfrow=c(length(dice.seq), 2), 
  cex=0.5, mgp=c(1.5, 0.5, 0))

for (i in dice.seq) {

    hist(dicerolls(i), breaks=50, col="darkgrey", 
      xlim=c(1, 6), ylim=c(0, 3), freq=FALSE, main="", xlab="")
    legend("topleft", paste(i, "dice"), bty="n")

    plot(ecdf(dicerolls(i)), xlim=c(1, 6), main="", frame.plot=FALSE)
}

par(opar)

enter image description here

答案 1 :(得分:0)

考虑掷骰子实验并考虑此事件的期望值。E[X] = 1 + 2 + 3 + 4 + 5 + 6/6

假设我们进行了掷骰子n次的实验,记录了每次观察到的数字,令观察值为X1,X2….Xn。

如果我们计算说平均值,则说Xbar = X1 + X2 +…….Xn / n。

如果n大,则Xbar应该趋向于E [X]。

为了更好地理解,我有一个博客,其中解释了直觉和数学部分,还提供了一个模拟,您可以使用该模拟,并且网站上也提供了该模拟的python代码。以下是链接。

https://statisticsexplained.blogspot.com/2020/06/law-of-large-numbers-explained-using.html

有一个模拟程序可以更好地理解它,并且该程序的python代码也已附加。