Exercice 1 : Question préliminaire à propos d’estimation

1. Espérance de M

set.seed(4)
# Test 1
a = 15
n = 5
k = 1000
# On génère k fois M 
M = replicate(k,max(as.integer(runif(n, 0, a+1))))
E1 = mean(M)
E1
## [1] 12.725
# On observe les valeurs de M les plus fréquentes
hist(M)

# Test 2
a = 200
n = 50
k = 1000
# On génère encore k fois M
M2 = replicate(k,max(as.integer(runif(n, 0, a+1))))
E2 = mean(M2)
E2
## [1] 196.467
# On applique le même histogramme
hist(M2)

2. Espérance de M’

set.seed(2)
# On réalise des jeux de test identique à la question 1. afin de remarquer plus facilement les différences
# Test 1
a = 15
n = 5
k = 1000
M = replicate(k, (2/n)*sum(as.integer(runif(n, 0, a+1))))
E1 = mean(M)
E1
## [1] 15.0804
hist(M)

# Test 2
a = 200
n = 50
k = 1000

M2 = replicate(k, (2/n)*sum(as.integer(runif(n, 0, a+1))))
E2 = mean(M2);
E2
## [1] 200.1924
hist(M2)

Exercice 2 : Un deuxième jeu à base de Max

1.

set.seed(44)
G <- NULL
n=10

for(i in 1:1000){
    # On génère A et M selon les règles du jeu :
    A = runif(1, 0, 1)
    M = max((runif(n, 0, A)))
    # On calcule r(M)
    rM = 1.1*M
    # On calcule G :
    if(rM <= A){
      G[i] = rM - M
    }
    else{
      G[i] = 0
    }
}

# On en déduit l'Éspérance de G :
EG = mean(G)
EG
## [1] 0.01703559

2.

set.seed(7)
# Initialise le tableau quiva repertorier les réussites/echecs de l'expérience
cpt <- NULL
# On fixe les valeurs de a et m, que l'on peut choisir comme on le souhaite
a = 0.7
m = 0.6
n = 3

for(i in 1:1000){
  # On génère A et M selon les règles indiquées :
  A = ((as.integer(runif(1,0,11)))/10)
  M = max(as.integer(runif(n,0,(A*10)+1))/10)
  
  # On test si on a bien les conditions voulues
  if(A == a && M == m){
    cpt[i] <- 1
  } 
  else {
    cpt[i] <- 0
  }
}
# On renvoie la moyenne de reussite de l'expérience
# Plus i sera grand plus le résultat sera proche de la réalité
mean(cpt)
## [1] 0.024

3.

set.seed(2)
res <- NULL
n=3
for(i in 1:11){
  cpt <- NULL
  a = (i-1)/10
  for(j in 1:1000){
    A = ((as.integer(runif(1,0,11)))/10)
    M = max(as.integer(runif(n,0,(A*10)+1))/10)
    
    # On test si on a bien les conditions voulues
    if(A == a && M == 0.5){
      cpt[j] <- 1
    } 
    else {
      cpt[j] <- 0
    }
  }
  # P[A | B] = P[A et B] / P[B]
  # Ici, P[A] <=> P[A=a] et P[B] <=> P[M=0.5]
  # Pour plus de clarté on arrondit le résultat
  res[i] <- round(mean(cpt)/(1/(10*a)+1),3)
}

# On stocke tous les résultats dans une data.frame
resultats <- data.frame(Proba=c(res[1],res[2],res[3],res[4],res[5],res[6],res[7],res[8],res[9],res[10],res[11]), row.names=c("A=0.0","A=0.1","A=0.2","A=0.3","A=0.4","A=0.5","A=0.6","A=0.7","A=0.8","A=0.9","A=1.0"))
resultats
##       Proba
## A=0.0 0.000
## A=0.1 0.000
## A=0.2 0.000
## A=0.3 0.000
## A=0.4 0.000
## A=0.5 0.032
## A=0.6 0.018
## A=0.7 0.017
## A=0.8 0.008
## A=0.9 0.012
## A=1.0 0.006

4.

set.seed(4)
n = 2
k = 1000
G <- NULL
Res <- NULL
x <- NULL
y <- NULL

for(j in 1:11){
  α = (j-1)/10
  for(i in 1:1000){
    # On génère A et M selon les règles du jeu :
    A = runif(1, 0, 1)
    M = max((runif(n, 0, A)))
    # On calcule r(M)
    rM = M^α
    # On calcule G :
    if(rM <= A){
      G[i] = rM - M
    }
    else{
      G[i] = 0
    }
  }
  Res[j] <- round(mean(G),3)
  x[j] <- α
  y[j] <- Res[j]
}
plot(x,y)

# On stocke tous les résultats dans une data.frame
resultats <- data.frame(Proba=c(Res[1],Res[2],Res[3],Res[4],Res[5],Res[6],Res[7],Res[8],Res[9],Res[10],Res[11]), row.names=c("α=0.0","α=0.1","α=0.2","α=0.3","α=0.4","α=0.5","α=0.6","α=0.7","α=0.8","α=0.9","α=1.0"))
resultats
##       Proba
## α=0.0 0.000
## α=0.1 0.019
## α=0.2 0.039
## α=0.3 0.055
## α=0.4 0.062
## α=0.5 0.071
## α=0.6 0.066
## α=0.7 0.056
## α=0.8 0.044
## α=0.9 0.024
## α=1.0 0.000
set.seed(5)
n = 10
k = 1000
G <- NULL
Res <- NULL
x <- NULL
y <- NULL

for(j in 1:11){
  α = (j-1)/10
  for(i in 1:1000){
    # On génère A et M selon les règles du jeu :
    A = runif(1, 0, 1)
    M = max((runif(n, 0, A)))
    # On calcule r(M)
    rM = M^α
    # On calcule G :
    if(rM <= A){
      G[i] = rM - M
    }
    else{
      G[i] = 0
    }
  }
  Res[j] <- round(mean(G),3)
  x[j] <- α
  y[j] <- Res[j]
}
plot(x,y)

# On stocke tous les résultats dans une data.frame
resultats <- data.frame(Proba=c(Res[1],Res[2],Res[3],Res[4],Res[5],Res[6],Res[7],Res[8],Res[9],Res[10],Res[11]), row.names=c("α=0.0","α=0.1","α=0.2","α=0.3","α=0.4","α=0.5","α=0.6","α=0.7","α=0.8","α=0.9","α=1.0"))
resultats
##       Proba
## α=0.0 0.000
## α=0.1 0.002
## α=0.2 0.003
## α=0.3 0.006
## α=0.4 0.007
## α=0.5 0.010
## α=0.6 0.010
## α=0.7 0.013
## α=0.8 0.014
## α=0.9 0.013
## α=1.0 0.000

Exercice 3 :

1 :