R 计算法国轮盘赌估值的无法解释的百分比误差
我正在为班级做一个项目:关于四种不同的法国轮盘赌(37个数字)策略的统计评估。 前两个非常简单:R 计算法国轮盘赌估值的无法解释的百分比误差,r,probability,percentage,R,Probability,Percentage,我正在为班级做一个项目:关于四种不同的法国轮盘赌(37个数字)策略的统计评估。 前两个非常简单: 一次赌红色 B.赌第一次 请查找以下代码: BettingOnRed <- function(){ ball <- sample(1:37, 1, replace=TRUE) if(ball <= 18) amount_won <- 1 else amount_won <- -1 c(amount_won, 1) } B
- 一次赌红色
- 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)
}
注意,这不是全部功能,我只是删除了这个问题不必要的部分。tl;dr您的结果似乎正确;这里的变化比你们想象的要多(下注数字的变化比下注红色的变化大得多…) 您的模拟有很多方面可以简化,但我认为您的基本框架是正确的。实际上,您唯一缺少的是输出中预期的变化量;如果你检查一下,你会发现观察到的和预期的偏差其实并不令人惊讶。(实际上,你可以用解析的方法来计算这个方差,但在这里,我将用蛮力来计算。) 模拟100次跑步,每次10万场比赛。为了方便起见,我使用了
plyr::raply()
(它会自动组合结果并实现一个进度条),但您也可以使用replicate()
,或者使用for
循环来完成
set.seed(101)
library(plyr)
rr <- raply(100,simulation(BettingOnNumber,100000),.progress="text")
这意味着您将获得预期和观察到的偏差程度,即您在21%的时间内看到的偏差,或更多偏差(这基本上是您的结果的一个频率p值)
用红色策略下注试试这个实验,你会发现方差要小得多…非常感谢你的解释!
set.seed(101)
library(plyr)
rr <- raply(100,simulation(BettingOnNumber,100000),.progress="text")
par(las=1,bty="l")
hist(rr[,1],col="gray",breaks=30,
xlab="mean amount won in 100,000 games",
ylab="Frequency (100 runs)")
exp_val <- -0.02703
obs_val <- -0.04852
abline(v=c(obs_val,exp_val),col=c("red","blue"),lwd=2)
mean(abs(rr[,1]-exp_val)>abs(obs_val-exp_val)) ## 0.21