Exercice 1

Q1.1

A priori je n’avais pas d’idée sur la valeur de E(M) mais j’intuitais que la valeur de E(M) serait très proche de a pour un n très grand.

amax=100
n=20
a=sample(x=1:amax, size=1)
a
## [1] 3
X = runif(n,0,a)
M=replicate(100000, max(runif(n,0,a)))
E=mean(M)
E
## [1] 2.858051
V=mean((M-mean(M))**2)
V
## [1] 0.01847996
Eth=(n/(n+1))*a
Eth_c=(n/(n+1))*a + a*(1/(n+1))
Vth=(n/(n+2))*(a**2)-((n/(n+1))*a)**2
Eth
## [1] 2.857143
Eth_c
## [1] 3
Vth
## [1] 0.01855288

Après plusieurs variations de n et de a, j’ai d’abord supposé que la réponse était:

a-a/n

Cependant je me suis vite aperçu que ce n’était pas exact. J’ai donc voulu trouve par l’expérience l’espérance : j’ai calculé :

P(M<=X)=P(X1<=X)P(Xn<=X)=(k/a)**n

J’ai ensuite dérivé le résultat afin d’obtenir fonction densité

f(x)=(n/a**n)*k**(n-1)

puis j’en ai trouvé l’espérance avec comme résultat

(n/(n+1))*a

Il faudrait donc pour que l’esperance de M soit égale à A que M vaille:

M= (max Xi) + a*(1/(n+1))

Enfin pour la variance, comme j’avais déjà trouvé f, j’ai appliqué la formule du cours :

V(M)=E(M2)-E(M)2

En calculant E(M^2) comme l’intégrale de 0 à a de (x^2)*f(x) j’ai finalement trouvé:

V(M)=(n/(n+2))*(a**2)-((n/(n+1))*a)**2

Q1.2

A priori j’ai pensé que M’ auarait une espérance égale à a, car je pensais que la moyenne des valeurs des Xi vaudrait en moyenne a/2.

amax=100
n=20
a=sample(x=1:amax, size=1)
a
## [1] 32
X = runif(n,0,a)
Mbis=replicate(1000, (2/n)*sum(runif(n,0,a)))
mean(Mbis)
## [1] 32.36566
mean((Mbis-mean(Mbis))**2)
## [1] 16.47883

L’expérience semble confirmer mes intuitions initiales. Le démontrer utilise la linéarité de l’espérance :

E(Mbis)=E(2/n * sum(Xi)) = 2/n * sum(E(Xi)) = 2/n * sum(a/2) = 2/n * na/2 = a

On voit ensuite que la variance semble beaucoup plus grande que dans la question précédente. Mbis semble donc un moins bon estimateur de a que M.

Exercice 2

Q2.3

La stratégie de Bob m’a à priori semblé gagnante mais pas optimale : en effet le gain de Bob sera de 0.1*M ce qui n’est pas énorme, de l’ordre du centime.

La simulation ci dessous montre qu’en effet, les gains moyens valent un peu plus d’un centime (environ 0.016€) :

f = function(){
  n=10
  A=runif(1,0,1)
  X=runif(n,0,A)
  M=max(X)
  gagne=0
  rM=1.1*M
  if(rM <= A) {
    gagne=rM-M
  }
  return(gagne)
}
N=1000
gains=sample(0,N,replace=TRUE)
for(i in 1:N) {
  gains[i]=f()
}
mean(gains)
## [1] 0.01658598

2.4

Par intuition, je me doute que la probabilité à calculer sera plus élevée quand a et m sont proches ou égaux, car m est le maximum des Xi donc il a tendance à se rapprocher de a quand on augmente les échantillons. On va contruire une matrice contenant les probabilités respectives pour les valeurs de a et m:

simulate=function(N,n) {
    generate = function(a,n,m) {
    A=sample(x=(0:10)/10, 1);
    X=sample(x=(0:(10*A))/10, n, replace=TRUE)
    M=max(X);
    return (A==a && M==m)
    }
Matrix = matrix(nrow = 11, ncol = 11, dimnames =
                     list(c("a=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"),
                          c("m=0","m=0.1","m=0.2","m=0.3","m=0.4","m=0.5","m=0.6","m=0.7","m=0.8","m=0.9","m=1")));
for (i in 0:10) { for(j in 0:10){
 Matrix[i+1,j+1] = mean(replicate(N, generate(i/10, n, j/10))) 
}}
return(Matrix)
}

simulate(1000, 3)
##         m=0 m=0.1 m=0.2 m=0.3 m=0.4 m=0.5 m=0.6 m=0.7 m=0.8 m=0.9   m=1
## a=0   0.083 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
## a=0.1 0.010 0.082 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
## a=0.2 0.003 0.025 0.064 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
## a=0.3 0.001 0.008 0.030 0.054 0.000 0.000 0.000 0.000 0.000 0.000 0.000
## a=0.4 0.001 0.001 0.014 0.031 0.043 0.000 0.000 0.000 0.000 0.000 0.000
## a=0.5 0.000 0.001 0.009 0.021 0.022 0.029 0.000 0.000 0.000 0.000 0.000
## a=0.6 0.000 0.003 0.005 0.007 0.017 0.024 0.048 0.000 0.000 0.000 0.000
## a=0.7 0.000 0.001 0.003 0.009 0.011 0.019 0.025 0.038 0.000 0.000 0.000
## a=0.8 0.000 0.000 0.002 0.003 0.002 0.014 0.024 0.018 0.028 0.000 0.000
## a=0.9 0.000 0.001 0.003 0.007 0.009 0.005 0.007 0.012 0.020 0.022 0.000
## a=1   0.000 0.001 0.000 0.001 0.007 0.008 0.009 0.014 0.018 0.014 0.029

Les résultats corroborent bien mon intuition, avec bien sur toute une moitié de la matrice à 0 quand m>a car c’est impossible (m est le maximum de valeurs inférieure à a donc il l’est lui-même).

En lisant la colonne m=0.5, on a l’estimation de P[A=a|M=0.5] pour chaque valeur de a. La valeur à proposer à Bob semble donc être a=0.5.

Q2.5

Cette stratégie, avant d’être bonne semble plausible, car comme M<0 et alpha<0, on a M**alpha > M mais aussi <1 car c’est la borne supérieure d’un tel calcul.

Exercice 3

Q3.6

La seule chose qui va jouer sur ce que donne Alice entre les deux nombres qu’elle a choisit est le pile ou face. Par conséquent, la probabilité qu’à Bob de gagner en répondant toujours oui et la probabilité qu’Alice face pile, donc sera 1/2.

n=10000
X=sample(0:1, n , replace=TRUE)
mean(X==0)
## [1] 0.5015

Q3.7

Une stratégie possible serait la suivante : comme les nombres sont entre 0 et 1, il est plus probable si le nombre qu’Alice a donné est plus grand que 0.5 que ce soit lui le plus grand et inversement donc si le nombre donné est plus grand que 0.5, Bob répond oui et non sinon.

Si Alice prend A1=0.4 et A2=0.6, il gagnera à tous les coups.

Si les nombres sont tirés uniformément, on peut trouver empiriquement le gain moyen de la stratégie :

n=10000
A1= runif(n,0,1)
A2 = runif(n,A1,1)
pileouface=sample(0:1, n, replace=TRUE)

gains=sample(0, n , replace=TRUE)
for(i in 1:n) {
  if((pileouface[i]==0 && A2[i]> 0.5 ) || (pileouface[i]==1 && A1[i]<=0.5)) {
    gains[i]=1
  }
}
mean(gains == 1)
## [1] 0.6751

On voit alors que Bob a 2/3 de gagner ce qui est déjà meilleur que sa stratégie initiale.