Pour ce DM j’ai travaillé avec Aleck BILOUNGA-BI-NDONG et Otba ZERAMDINI pour les exercices 1 et 2.

On fixe au préalable la graine du générateur afin de pouvoir reproduire les données avec exactitude d’un ordinateur à l’autre.

set.seed(seed = 11)

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

Q1.1) Chacune des variables aléatoires notées de X1 à Xn suit une loi uniforme sur [0,a] (selon l’énoncé). La fonction de répartition est F(x) = P(X<=x) = \(\frac{x-a}{b-a}\) où a = 0 et b = a (valeur que Bob doit essayer de “deviner” à partir des Xi). Après simplification on obtient \(\frac{x}{a}\)

M = Max(X1,….,Xn) Le maximum est la plus grande des variables, donc, si M est inférieur à x, toutes les variables sont forcément inférieures à x.

Soit G la fonction de répartition de M.

Comme les variables Xi sont indépendantes, G(x) est le produit des probabilités.

G(x) = P(M <= x) = \(\frac{x}{a}*.......*(\frac{x}{a})^n\)

La loi de probabilité de M (qui est la fonction de densité) est la dérivée de G.

G’(x) = \(\frac{n}{a}(\frac{x}{a})^{n-1}\)

L’espèrance mathématique est donc

E(M) = \(\int_0^a xG'(x) \, \mathrm dx\) = \(\int_0^n x\frac{n}{a}(\frac{x}{a})^{n-1} \, \mathrm dx\)

E(M) = \(\frac{n}{a}\int_0^a \frac{x.x^{n-1}}{a^{n-1}} \, \mathrm dx\) = \(\frac{n}{a^n}\int_0^a x^n \, \mathrm dx\)

E(M) = \(\frac{n}{a^n}[\frac{x^{n+1}}{n+1}]_0^a\)

Après simplication on obtient E(M) = \(\frac{n}{n+1}*a\)

Lorsque n augmente indéfiniment \(\frac{n}{n+1}\) tend vers 1, donc E(M) tend vers a.

\(\lim\limits_{n \rightarrow +\infty} E(M) = a\)

Concernant la variance :

V(M) = \(E(M^2) - [E(M)]^2\) \(E(M^2)\) = \(\int_0^a x^2 * G'(x) \, \mathrm dx\)

\(E(M^2)\) = \(\int_0^a x^2 * \frac{n}{a}(\frac{x}{a})^{n-1} \, \mathrm dx\)

\(E(M^2)\) = \(\frac{n}{a^n}\int_0^a x^{n+1} \mathrm dx\)

\(\frac{n}{a^n}[\frac{x^{n+2}}{n+2}]_0^a\)

Après calculs et simplifications

\(E(M^2) = \frac{n}{n+2}*a^2\) soit

V(M) = \(\frac{n}{n+2}*a^2 - (\frac{n}{n+1})^2 * a^2\)

Après mise en facteur de a^2, réduction au même dénominateur et simplifications sauf erreur

V(M) = \(a^2(\frac{n}{(n+2)(n+1)^2})\)

Lorsque n augmente indéfiniment, la quantité entre parenthèses tend vers 0, donc V(M) tend vers 0

\(\lim\limits_{n \rightarrow +\infty} V(M) = 0\)

m1=5000 #NB de fois où l'expérience est reproduite
a=7 #Valeur choisi par Alice. Valeur représentant le max de l'intervalle 
n=3 #Représentant le tirage de nombre. Valeur fixé et décidé par Alice et Bob avant de jouer

#fonction f contenant le bloc d'instruction permettant de calculer l'espérance en fixant 'n'et en faisant varier 'a'  
f<-function(a){ 
  M1=replicate(m1,max(runif(n)*a)) #On réplique 5000 fois l'expérience en prenant le max des 'n' valeurs générées selon une loi uniforme auquel a été multiplié 'a'
 return (mean(M1)) #La fonction renvoie la moyenne
}

x=1:20 #Génération d'un 'x' à 20 points
 
y=lapply(x,f) #application de la fonction 'f' sur la liste x
plot(x,y,xlab="a",ylab="E(M1)") #On trace le nuage de points

Nous obtenons une droite linéaire. Cette courbe montre que l’esperance est lineaire en fonction de ‘a’ donc on peut en déduire que ‘a’ est un facteur dans l’espérance ie EX=a*(terme_inconnu)

#Même démarche que précédemment mais en faisant varier 'n' et en fixant 'a'
m2=5000
a=7

f2<-function(n){
  M2=replicate(m2,max(runif(n)*a))
  return (mean(M2)) 
}

x1=2:40 #On teste l'ésperance avec a fixé et pour n qui va de 2 à 40 )
y1=lapply(x1,f2)
plot(x1,y1,xlab="n",ylab="E(M2)")

On remarque d’après la courbe que l’esperance se rapproche de ‘a’ le nombre choisit par alice lorsque n devient grand. L’espérance théorique trouvée et demontrée est EX=a*(n/n+1) L’étude de l’espérance est donc en accord avec la théorie.

On sait que la variance vaut \(Var(X)=E((X-E(X))^2) =E(X^2) - E(X)^2\)

Nous allons décomposer la formule précédente afin de réaliser le calcul par R.

Dans le code ci-dessous on commence par calculer la variance en faisant varier ‘a’

#Calcul de la partie E(X^2) 
m2=5000
n=3

fe1<-function(a){
  M=replicate(m2,(max(runif(n)*a))^2)
  return (mean(M))
}

#Calcul de la partie (E(X))^2
fe2<-function(a){
  M=replicate(m2,max(runif(n)*a))
  return (mean(M)^2)
}

VX<-function(a){
  return (fe1(a)-fe2(a)) #On fait la différence conformément à la formule donnée plus haut
}

x=1:100
y=lapply(x,VX)
plot(x,y,xlab="a",ylab="Var(M)")

Maintenant ‘a’ est fixé et on refait les calculs en faisant varier ‘n’.

m=5000
a=7

#Calcul de la partie E(X^2)
fe1<-function(n){
  M=replicate(m2,(max(runif(n)*a))^2 )
  return (mean(M))
}

##Calcul de la partie (E(X))^2
fe2<-function(n){
  M=replicate(m2,max(runif(n)*a))
  return (mean(M)^2)
}

VXn<-function(n){
  return (fe1(n)-fe2(n))
}

x3=1:20
y3=lapply(x3,VXn)
plot(x3,y3,xlab="n",ylab="Var(M)")

Vérifions théoriquement la courbe que nous aurions dû avoir:

a=5
Variance<-function(n){#Var(X)=n*(a^2)  / (n+2)*(n+1)^2   trouvée et demontrée théoriquement
  return ((a*a* n) / ((n+2)*((n+1)^2))  )
}

x4=1:20
y4=lapply(x4, Variance)
plot(x4,y4,xlab="n",ylab="variance") #la courbe de la variance trouvé theoriquement et demontrée . 

Suite aux courbes on remarque que quand n qui devient plus grand la variance se rapproche de 0 c’est à dire que X devient constant et egal à E(X)=a pour n grand . De plus on constate que la courbe obtenu se rapproche de la courbe de la variance calculée théoriquement

Q1.2) Dans cette question nous allons étudier l’espérance de M’ = \(\frac{2}{n}\sum Xi\) en faisant varier les valeurs de ‘a’ et de ‘n’.

Commençant en faisant varier ‘a’

m=5000 #On répéte l'expérience m fois
a=7 #Valeur 'a' fixée
n=2 #Valeurs nombre de tirage >= à 2


f<-function(a){
  M=replicate(m,(2/n)*sum(runif(n)*a))
  return (mean(M))
}

x=1:25 #x allant de 1 à 25
y=lapply(x,f)
#esperance en fonction de "a"
plot(x,y,xlab="a",ylab="E(M')") 

On constate selon la courbe ci-dessus une droite linéaire. On peut déterminer que l’esperance est linéaire en fonction de “a” et que le coefficient directeur est 1 ce qui donne E(X)=a*1

Cette fois-ci on calcule l’expérance en fixant ‘a’ et faisant varier n de 2 à 50

m1=5000
a=7

f2<-function(n){
  M=replicate(m,(2/n)*sum(runif(n)*a))
  return (mean(M))  
}

x=2:50
y=lapply(x,f2)
plot(x,y,xlab="n",ylab="E(M')") 
abline(h=a, col="red") #tracé de l'asymptote en 7 soit à la valeur de a

On remarque d’après la courbe que l’esperance est très proche de “a” quelque soit la valeur n donc ça confirme que E(X)=a qui est independent de n .

L’espérance theorique trouvée et demontrée est EX=a On constate que E(X)=a est bien en accord avec la valeur de l’espérance calculé théoriquement et qui vaut a.

Intéressons nous maintenant maintenant à la variance. \(Var(X)=E((X-E(X))^2) =E(X^2) - E(X)^2\)

#variance en fonction de a et avec n fixé
m2=10000
n=2

#Partie E(X^2)
fX<-function(a){
  
  M=replicate(m2,((2/n)*sum(runif(n)*a))^2)
  return (mean(M))
}

# Partie (E(X))^2
fX1<-function(a){
  
  M=replicate(m2,(2/n)*sum(runif(n)*a))
  return ((mean(M)^2))
}

VX<-function(a){
  return (fX(a)-fX1(a))
}

x=1:100
y=lapply(x,VX)
plot(x,y,xlab="a",ylab="Var(M')")

#Inversemment variance en fonction de n et avec a fixé
m2=10000
a=5

# Première partie E(X^2)
fX2n<-function(n){
  
  M=replicate(m2,((2/n)*sum(runif(n)*a))^2 )
  return ((sum(M))/m2)
}

#Seconde partie (E(X))^2
fX3n<-function(n){
  
  M=replicate(m2,(2/n)*sum(runif(n)*a))
  return ((sum(M)/m2)^2)
}

VXn<-function(n){
  return (fX2n(n)-fX3n(n))
}

x3=1:20
y3=lapply(x3,VXn)
plot(x3,y3,xlab="n",ylab="Var(M')")

La courbe ci-dessus nous montre que avec n qui devient grand la variance se rapproche de 0. X devient constant et égal à E(X)=a pour n grand . On constate aussi que la courbe obtenu se rapproche de la courbe de la variance calculée théoriquement .

#Var(X)=a^2 / 3*n 
a=7
Variance<-function(n){
  return ( (a^2)/(3*n))
}

x4=1:20
y4=lapply(x4, Variance)
plot(x4,y4,xlab="n",ylab="Var(M')") 

Afin de déterminer quel estimateur (entre M et M’) est le plus efficace on va tenter de calculer le “risque quadratique” (ou“erreur quadratique”) de chaque estimateur.

Pour M’ = \(\frac{2}{n}\sum{Xi}\):

E(x)= a

V(x)= \(\frac{a^2}{3n}\)

Erreur quadratique= E((M’-a)^2) =\(E(M'^2)-2a E(M')+a^2\) = \(V(M')+E(M')^2 -2aE(M')+a^2\) =\(\frac{a^2}{3n}+a^2 -2a^2+a^2\) =\(\frac{a^2}{3n}\)

Pour M = MAXi(Xi):

E(x)= \(\frac{n}{n+1}*a\)

V(x)= \(\frac{na^2}{(n+1)^2 * (n+2)}\)

Erreur quadratique= E((M-a)^2) =\(\frac{na^2}{(n+1^2)*(n+2)}+(\frac{n}{n+1}*a)^2 - 2a(\frac{n}{n+1}*a)+a^2\) =\(\frac{2a²}{(n+1)(n+2)}\)

Plus le risque quadratique est petit, meilleur sera l’estimateur.

Il est simple de voir que l’estimateur M est meilleur que l’estimateur M’.

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

Afin de répondre à cette question il faut chercher à savoir si la stratégie proposée par Bob lui permet d’augmenter ses profits. La valeur “1,1” choisie par Bob étant proche de A soit de la borne maximale de A il semblerait que ça stratégie soit gagnante si il veut gagner.

Nous allons maintenant tenter de le vérifier à l’aide de simulation

n=10 #Valeur nombre tirage exemple de l'énoncé
m=5000 #répétition de l'expérience
a=runif(1) #génération d'un nombre selon la loi uniforme entre 0 et 1 représenté par A dans l'énoncé
cstR=1.1 #constante de r(M)


#Calcul de l'espérance
Esp<-function(cstR){
  M=replicate(m,max(runif(n)*a))
  Res=cstR*M #r(M)=cstR*M <=> 1.1*M
  gain=0 #Initialisation du gain à 0€
  for(i in 1:m){ #Boucle de 0 à 5000 
    if(Res[i]<a){ # Si la condition de l'énoncé est respecté soit "Si r(M) est plus petit que A, Bob gagne la différence entre M et r(M)
       gain=gain+(Res[i]-M[i]) 
    }
  }
  return (gain/m) #On obtient le gain potentiel par partie
}

x=seq(from=0.1,to=5,by=0.1)
y=lapply(x,Esp) #On applique à y la fonction Esp avec la liste x
plot(x,y,xlab="cstR",ylab = "E(G)") #On trace le nuage de points correspondant à l'espérance en fonction de la constante cstR

Grâce au graphe ci-dessus on constate que la constante “1.1” représente le point maximal de la courbe et que si on essaye d’augmenter ce coefficient alors il y aura une lègére baisse de l’espérance et par la suite une stabilisation. Dans le cas où on essaie de réduire cette constante on obtient alors un gain négatif qui signifie que Bob perderait de l’argent.

Q2.5) Erreur dans le sujet?

Q2.5)

n=2
m=6000
a=runif(1) #On génère un nombre suivant une loi uniforme qu'on stocke dans 'a'

# Calcul de l'espérance

EG<-function(alpha){
  M=replicate(m,max(runif(n)*a))
  R=M^alpha
  gain=0
  for(i in 1:m){
    if(R[i]<a){
       gain=gain+(R[i]-M[i])
    }
  }
  return (gain/m)
}

x=seq(from=0.1,to=5,by=0.1) # alpha qui va de 0.1 jusqu'à 5 avec un pas de 0.1 
y=lapply(x,EG)
plot(x,y,xlab="alpha",ylab = "E(G)")

Suite à l’interprétation de la courbe ci-dessus on détermine graphiquement que la meilleur valeur de alpha parmi {0.3,0.5,0.7} est 0.7 car il représente le point maximal c’est à dire le point ou on obtient la plus grande valeur de l’espérance. On voit très bien sur la courbe qu’il n’y a pas de meilleure valeur possible.

n=10
m=6000
a=runif(1) #On génère un nombre suivant une loi uniforme qu'on stocke dans 'a'

EG2<-function(alpha){#E(G)
  M=replicate(m,max(runif(n)*a))
  R=M^alpha
  gain=0
  for(i in 1:m){
    if(R[i]<a){
       gain=gain+(R[i]-M[i])
    }
  }
  return (gain/m)
}

x1=seq(from=0.1,to=5,by=0.1) # alpha qui va de 0.1 jusqu'à 5 avec un pas de 0.1 
y1=lapply(x,EG2)
plot(x1,y1,xlab="alpha",ylab = "E(G), n=10")

On détermine que graphiquement (et avec n=10) la meilleure valeur obtenue est 0,9. Les trois valeurs: 0,7 ; 0,5 et 0,3 ont une espérance égale à approximativement 0.

Pour conclure et en vue des expérimentations et observations précédentes on remarque que plus n devient grand plus alpha a tendance de ce raprocher de sa limite c’est à dire alpha<1

Exercice 3 (Bonus) : Un dernier jeu à base de max et de pile ou face

Q3.6) Alice tire à pile ou face avec une pièce non biaisée. Vu les deux possibilités de résultat, il y a \(\frac{1}{2}\) soit 50% de chance de tomber sur pile et \(\frac{1}{2}\) soit 50% de chance de tomber sur face. Quoi qu’il arrive (peut importe la pièce tirée par Alice) Bob répond “Oui”.Il a donc 100% de chances (soit une probabilité de 1) de répondre “Oui”et 0% de chance de répondre “Non”.

Grâce a l’arbre il est facile de faire le calcul \(\frac{1}{2}\) * 1 = \(\frac{1}{2}\)

VOIR ARBRE ANNEXE PDF

repExp = 5000 # Variable indiquant le nombre de fois qu'on va reproduire l'expérience

# Répétition repExp fois selon une loi uniforme de deux nombres compris entre [0,1] (de façon indépendante).
# Sur les 2 nombres générés on ajoute au tableau M la plus grande des 2 valeurs
M=replicate(repExp,(max(runif(2)))) 
y =sample(x=c(0,1),size=repExp, replace=TRUE) #On génére des 0 et 1 5000 fois correspondant au pile (1) et face (0)
meanPile=mean(y) # On fait la moyenne des piles: on somme les 1 ce qui permet d'avoir la moyenne d'obtenir un pile
meanFace=mean(1-meanPile) # On fait la moyenne des faces : on a deux probabilités. On a trouvé la moyenne d'avoir "pile" pour avoir face il faut faire "1-meanPile"

Q3.7) Dans cette question il faut comprendre que “Bob doit deviner si Alice lui a indiqué la plus grande des deux valeurs ou pas.” Je pense qu’il faut comprendre que Bob a “juste” dans deux cas : En répondant Oui lorsque Alice tire la face (A2) ou bien en répondant Non lorsque Alice tire la Face (A1) . A l’inverse de la première question il faut donc maintenant qu’il “panache” les Oui et les Non Par exemple : Bob affirme Oui avec la probabilité 0.8 lorsqu’Alice tire P(A2) et Non avec la probabilité 0.5 lorsqu’Alice tire F(A1)

VOIR ARBRE ANNEXE PDF

Il faut regarder la branche P(A2) suivie de “oui” et la branche F(A1) suivie de “Non”. La probabilité est de \((\frac{1}{2}*0,8)+(\frac{1}{2}*0,5)\) = 0,4 + 0,25 = 0,65

Dans ce cas on a bien 0,65>0,5

Si on généralise le résultat on obtient: Bob affirme “Oui” avec la probabilité a lorsqu’Alice tire P(A2) et “Non” avec la probabilité b lorsqu’Alice tire F(A1)

La probabilité associée est : \((\frac{1}{2}*a)+(\frac{1}{2}*b) = \frac{1}{2}(a+b)\) \(\frac{1}{2}(a+b) > 0,5 <=> a+b>\frac{0,5}{0,5} <=> a+b>1\)

a+b>1 est la condition à réaliser pour que Bob puisse avoir donné une réponse “juste” avec une probabilité strictement supérieure à 0,5

En utilisant l’arbre a et b doivent satisfaire l’inégalité 0,6a+o,4b>0,5 ou alors 6a+4b>5

Exemple1: a=0,3 et b=0,9 (0.6×0.3)+(0.4×0.9)=0.54 On a bien 0.54 > 0.5

Exemple 2 : a=0.5 et b=0.7 (0.6×0.5)+(0.4×0.7)=0.58 On a bien 0.58 > 0.5)

Je n’est pas utilisé la phrase “Alice tire ses deux nombres uniformément dans l’intervalle[0,1]”, car , en prenant cette phrase à la lettre, lorsqu’une variable aléatoire suit une loi uniforme continue, la probabilité de choisir une valeur isolée est nulle…ce qui ne peut pas convenir ici…!