我正在爲一個課程項目工作:這是關於四種不同法國輪盤(37個號碼)策略的統計評估。 前兩個是非常簡單的:計算法國輪盤賭估計值的百分比錯誤無法說明
- A.投注紅一次
- B.多項投注一個時間
請找到下面的代碼:
BettingOnRed <- function(){
ball <- sample(1:37, 1, replace=TRUE)
if(ball <= 18) amount_won <- 1
else amount_won <- -1
c(amount_won, 1)
}
BettingOnNumber <- function() {
myNumber <- 17
ball <- sample(0:36, 1, replace=TRUE)
if(myNumber == ball) amount_won <- 35
else amount_won <- -1
c(amount_won, 1)
}
每個函數返回一個向量length = 2
,其中包含贏得的金額和投注數(這總是等於這兩個函數中的一個):該值玩在其他戰略中發揮作用...)。
儘管它們看起來很簡單,但如果我們計算預期獎金的百分比誤差和每場比賽的勝率,我們會部分得到巨大的錯誤。請參閱下表:
爲了計算預期值,我設置了一個功能simulation()
其重複每個遊戲10萬次,並計算你在表中找到值。
我不明白的是:爲什麼每場比賽的獎金百分比錯誤如此之大,而贏得比賽的百分比誤差卻非常小?
請在這裏找到我們用來計算的確切值的公式和遊戲B的百分比誤差:
- 讓
EstWin
是每場比賽的獎金B.的估計 - 讓
EstProp
是由於評估比賽B的比例獲勝。
各自確切值是:
- ExactWin = 1/37 * 35 - 36/37 = -1/37
- ExactProp = 1/37
百分比誤差:
- PercErrorWin =(EstWin-ExactWin)/ ExactWin
- PercErrorProp =(EstProp-ExactProp)/ ExactProp
你如何解釋這個錯誤?爲什麼B的錯誤不一樣?我在這裏錯過了一個關於概率的重要事實嗎?
找到我下面的函數「模擬」的負責部分: (作爲第一個參數,它需要從上述兩個功能之一)
simulation <- function(f, n = 100000){
result <- numeric(8)
winnings <- numeric(n)
games_won <- numeric(n)
for (i in 1:n){
fnct <- f()
winnings[i] <- fnct[1]
games_won[i] <- ifelse(fnct[1] > 0, 1, 0)
}
result[1] <- mean(winnings)
result[2] <- mean(games_won)
result
}
注意,這並不是全部的功能,我只是刪除了這個問題的不必要的部分。
非常感謝您的解釋! – upman