2017-05-31 35 views
0

我必須通過仿真來說明大數定律在R. 更精確。 我想說明的是,平均的累積分佈函數,龍虎鬥(大數定律)的LLN

enter image description here

收斂至f由 F中給出的函數(X)= 0,如果x≤μ和F(X)= 1,如果x>μ。 就我而言,我必須使用骰子。也就是說,每個X均爲{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。

回答

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

+0

那種情節並不重要。它應該是說明性的。 但我想保持模擬擲骰子的方式。因爲我被迫使用這段代碼。 – Xarrus

+0

我可以使用ecdf來繪製累積分佈函數。但是我怎麼能在一個plot中同時打印兩個函數f和ecdf?此外,似乎在函數f的定義中缺少某些東西。 – Xarrus