Exercice 1 :

Question 1.1

Selon moi la valeur de l’espérance de M sera proche de la valeur de a.

a=sample(x=1:1000, size=1)
n=sample(x=1:a, size=1)
X=replicate(10000, max(runif(n,0,a)))
E=mean(X)
V=mean((X-mean(X))**2)
Eemp=(n/(n+1))*a
Vemp=(n/(n+2))*(a**2)-((n/(n+1))*a)**2
a
## [1] 448
n
## [1] 37
E
## [1] 436.0934
V
## [1] 134.9191
Eemp
## [1] 436.2105
Vemp
## [1] 131.8639

Nous pouvons observer qu’en effet l’espérance est très proche de la valeur de a.

En ce qui concerne l’espérance selon a et n j’ai commencé par intuiter que E=(n-1)/na et fini par trouver que E=(n/n+1)a.

Pour la variance selon a et n j’ai d’abord calculé la fonction de densité pour ensuite pouvoir calculé E(X2) à l’aide du théorème du transfert et calculer la variance avec la formule V(X) = E(X2) - E(X)**2

tab <- data.frame(a=c(6),N=c(6),E=c(6),Eemp=c(6));
E = mean(replicate(10000, max(runif(10,0,1000))))
Eemp= (10/11)*1000
tab[1,1] = 1000
tab[1,2] = 10
tab[1,3] = E
tab[1,4] = Eemp
E2 = mean(replicate(10000, max(runif(10,0,100))))
Eemp2 = (10/11)*100
tab[2,1] = 100
tab[2,2] = 10
tab[2,3] = E2
tab[2,4] = Eemp2
E3 = mean(replicate(10000, max(runif(10,0,10))))
Eemp3 = (10/11)*10
tab[3,1] = 10
tab[3,2] = 10
tab[3,3] = E3
tab[3,4] = Eemp3
E4 = mean(replicate(10000, max(runif(2,0,1000))))
Eemp4 = (1/2)*1000
tab[4,1] = 1000
tab[4,2] = 2
tab[4,3] = E4
tab[4,4] = Eemp4
E5 = mean(replicate(10000, max(runif(1000,0,1000))))
Eemp5 = (1000/1001)*1000
tab[5,1] = 1000
tab[5,2] = 1000
tab[5,3] = E5
tab[5,4] = Eemp5
E6 = mean(replicate(10000, max(runif(100,0,1000))))
Eemp6 = (100/101)*1000
tab[6,1] = 1000
tab[6,2] = 100
tab[6,3] = E6
tab[6,4] = Eemp6

tab
##      a    N          E       Eemp
## 1 1000   10 909.301705 909.090909
## 2  100   10  90.893757  90.909091
## 3   10   10   9.094533   9.090909
## 4 1000    2 669.040715 500.000000
## 5 1000 1000 999.005742 999.000999
## 6 1000  100 990.053495 990.099010

Nous observons qu’effectivement plus N est grand, plus nous nous rapprochons de a

De plus avec Eemp = (n/n+1)*a nous nous rapprochons effectivement dans la plupart des cas de l’espérence voulu ( sauf évidemment lorsque N est trop petit).

tab3 <- data.frame(a=c(6),N=c(6),V=c(6),Vemp=c(6));
V = var(replicate(10000, max(runif(10,0,1000))))
tab3[1,1] = 1000
tab3[1,2] = 10
tab3[1,3] = V
V2 = var(replicate(10000, max(runif(10,0,100))))
tab3[2,1] = 100
tab3[2,2] = 10
tab3[2,3] = V2
V3 = var(replicate(10000, max(runif(10,0,10))))
tab3[3,1] = 10
tab3[3,2] = 10
tab3[3,3] = V3
V4 = var(replicate(10000, max(runif(2,0,1000))))
tab3[4,1] = 1000
tab3[4,2] = 2
tab3[4,3] = V4
V5 = var(replicate(10000, max(runif(1000,0,1000))))
tab3[5,1] = 1000
tab3[5,2] = 1000
tab3[5,3] = V5
V6 = var(replicate(10000, max(runif(100,0,1000))))
tab3[6,1] = 1000
tab3[6,2] = 100
tab3[6,3] = V6
#(n/(n+2))*(a**2)-((n/(n+1))*a)**2
Vemp= (10/12)*(1000**2)-((10/11)*1000)**2
Vemp2=(10/12)*(100**2)-((10/11)*100)**2
Vemp3=(10/12)*(10**2)-((10/11)*10)**2
Vemp4=(2/4)*(1000**2)-((2/3)*1000)**2
Vemp5=(1000/1002)*(1000**2)-((1000/1001)*1000)**2
Vemp6=(100/102)*(1000**2)-((100/101)*1000)**2
tab3[1,4] = Vemp
tab3[2,4] = Vemp2
tab3[3,4] = Vemp3
tab3[4,4] = Vemp4
tab3[5,4] = Vemp5
tab3[6,4] = Vemp6
tab3[1]=tab[1]
tab3[2]=tab[2]

tab3
##      a    N            V         Vemp
## 1 1000   10 6.871683e+03 6.887052e+03
## 2  100   10 6.664050e+01 6.887052e+01
## 3   10   10 7.067329e-01 6.887052e-01
## 4 1000    2 5.560454e+04 5.555556e+04
## 5 1000 1000 1.007145e+00 9.960110e-01
## 6 1000  100 9.486994e+01 9.610746e+01

Nous observons ici que notre formule de variance est juste pour différentes valeurs de a et n.

Question 1.2

A première vue on peut estimer que la somme des Xi équivaut à n*(a/2). Muliplier par 2/n on peut penser que l’espérance se rapprochera fortement de a.

a=sample(x=1:1000, size=1)
n=sample(x=1:a, size=1)
X2=replicate(1000, (2/n)*sum(runif(n,0,a)))
E=mean(X2)
V=mean((X2-mean(X2))**2)
a
## [1] 583
n
## [1] 44
E
## [1] 584.0867
V
## [1] 2729.071

Nous observons qu’effectivement l’espérance est très proche de la valeur de a. Démonstration par linéarité de l’espérance :

E(M) = 2/nsomme(E(Xi)) = 2/nsomme(a/2) = 2/n*na/2 = a

La variance semble très élevé. On peut donc en déduire que cet estimateur est moins efficace que le précédent.

Exercie 2

Le gain possible avec cette stratègie semble a première vue assez faible. Il sera en effet de 0.1*M.

Question 2.3 :

f = function(a,n){
  X=runif(n,0,a)
  Max=max(X)
  rM=1.1*Max
  gain=0
  if(rM <= a) {
    gain=rM-Max
  }
  return(gain)
}
G=sample(0,1000,replace=TRUE)
for(i in 1:1000) {
  a=runif(1,0,1)
  G[i]=f(a,10)
}
E=mean(G)
E
## [1] 0.01527675

L’espérence du gain avec cette stratégie est d’approximativement 0.015. Ce qui paraît en effet assez faible.

Question 2.4 :

A première vue il semblerait que P[A=a,M=m] soit la plus elevée quand a=m. En effet sur un grand échantillonage m à de grande chance de se rapprocher fortement de a puiqu’il est le maximum des Xi.

 f1 = function(a,m) {
    A=sample(x=(0:10)/10, 1);
    X=sample(x=(0:(10*A))/10, 3, replace=TRUE)
    Max=max(X);
    return (A==a && Max==m)
 }
 M = mean(replicate(10000,f1(0.5,0.4)))
 M
## [1] 0.0263

On à ici une fonction qui calcul P[A=a,M=m]. Nous pouvons voir que par exemple pour a=0.5 et m=0.4 l’espérance vaut 0.0254.

 tabM05 <- data.frame(A=c(0),E=c(0));
for(i in 0:10){
  tabM05[i,1]=i/10
  tabM05[i,2]=mean(replicate(10000,f1(i/10,0.5)))
}
 tabM05
##      A      E
## 1  0.1 0.0000
## 2  0.2 0.0000
## 3  0.3 0.0000
## 4  0.4 0.0000
## 5  0.5 0.0413
## 6  0.6 0.0248
## 7  0.7 0.0174
## 8  0.8 0.0106
## 9  0.9 0.0094
## 10 1.0 0.0067

Nous pouvons voir ci dessus une estimation de P[A=a|M=0.5] pour chaque valeur de a et que la valeur la plus optimale de a pour m=0.5 est bien 0.5.

tab <- data.frame(A=c(0),M=c(0),E=c(0));
cpt=0
for(i in 0:10){
  for(j in 0:10){
    tab[cpt,1]=i/10
    tab[cpt,2]=j/10
    tab[cpt,3]=mean(replicate(10000,f1(i/10,j/10)))
    cpt=cpt+1
  }
}
 tab
##       A   M      E
## 1   0.0 0.1 0.0000
## 2   0.0 0.2 0.0000
## 3   0.0 0.3 0.0000
## 4   0.0 0.4 0.0000
## 5   0.0 0.5 0.0000
## 6   0.0 0.6 0.0000
## 7   0.0 0.7 0.0000
## 8   0.0 0.8 0.0000
## 9   0.0 0.9 0.0000
## 10  0.0 1.0 0.0000
## 11  0.1 0.0 0.0121
## 12  0.1 0.1 0.0782
## 13  0.1 0.2 0.0000
## 14  0.1 0.3 0.0000
## 15  0.1 0.4 0.0000
## 16  0.1 0.5 0.0000
## 17  0.1 0.6 0.0000
## 18  0.1 0.7 0.0000
## 19  0.1 0.8 0.0000
## 20  0.1 0.9 0.0000
## 21  0.1 1.0 0.0000
## 22  0.2 0.0 0.0040
## 23  0.2 0.1 0.0249
## 24  0.2 0.2 0.0642
## 25  0.2 0.3 0.0000
## 26  0.2 0.4 0.0000
## 27  0.2 0.5 0.0000
## 28  0.2 0.6 0.0000
## 29  0.2 0.7 0.0000
## 30  0.2 0.8 0.0000
## 31  0.2 0.9 0.0000
## 32  0.2 1.0 0.0000
## 33  0.3 0.0 0.0017
## 34  0.3 0.1 0.0094
## 35  0.3 0.2 0.0284
## 36  0.3 0.3 0.0529
## 37  0.3 0.4 0.0000
## 38  0.3 0.5 0.0000
## 39  0.3 0.6 0.0000
## 40  0.3 0.7 0.0000
## 41  0.3 0.8 0.0000
## 42  0.3 0.9 0.0000
## 43  0.3 1.0 0.0000
## 44  0.4 0.0 0.0005
## 45  0.4 0.1 0.0055
## 46  0.4 0.2 0.0141
## 47  0.4 0.3 0.0265
## 48  0.4 0.4 0.0478
## 49  0.4 0.5 0.0000
## 50  0.4 0.6 0.0000
## 51  0.4 0.7 0.0000
## 52  0.4 0.8 0.0000
## 53  0.4 0.9 0.0000
## 54  0.4 1.0 0.0000
## 55  0.5 0.0 0.0004
## 56  0.5 0.1 0.0028
## 57  0.5 0.2 0.0085
## 58  0.5 0.3 0.0141
## 59  0.5 0.4 0.0269
## 60  0.5 0.5 0.0387
## 61  0.5 0.6 0.0000
## 62  0.5 0.7 0.0000
## 63  0.5 0.8 0.0000
## 64  0.5 0.9 0.0000
## 65  0.5 1.0 0.0000
## 66  0.6 0.0 0.0002
## 67  0.6 0.1 0.0022
## 68  0.6 0.2 0.0051
## 69  0.6 0.3 0.0094
## 70  0.6 0.4 0.0162
## 71  0.6 0.5 0.0257
## 72  0.6 0.6 0.0310
## 73  0.6 0.7 0.0000
## 74  0.6 0.8 0.0000
## 75  0.6 0.9 0.0000
## 76  0.6 1.0 0.0000
## 77  0.7 0.0 0.0001
## 78  0.7 0.1 0.0013
## 79  0.7 0.2 0.0031
## 80  0.7 0.3 0.0060
## 81  0.7 0.4 0.0099
## 82  0.7 0.5 0.0173
## 83  0.7 0.6 0.0221
## 84  0.7 0.7 0.0311
## 85  0.7 0.8 0.0000
## 86  0.7 0.9 0.0000
## 87  0.7 1.0 0.0000
## 88  0.8 0.0 0.0003
## 89  0.8 0.1 0.0007
## 90  0.8 0.2 0.0024
## 91  0.8 0.3 0.0044
## 92  0.8 0.4 0.0076
## 93  0.8 0.5 0.0108
## 94  0.8 0.6 0.0179
## 95  0.8 0.7 0.0201
## 96  0.8 0.8 0.0261
## 97  0.8 0.9 0.0000
## 98  0.8 1.0 0.0000
## 99  0.9 0.0 0.0001
## 100 0.9 0.1 0.0003
## 101 0.9 0.2 0.0016
## 102 0.9 0.3 0.0025
## 103 0.9 0.4 0.0040
## 104 0.9 0.5 0.0109
## 105 0.9 0.6 0.0134
## 106 0.9 0.7 0.0146
## 107 0.9 0.8 0.0210
## 108 0.9 0.9 0.0231
## 109 0.9 1.0 0.0000
## 110 1.0 0.0 0.0001
## 111 1.0 0.1 0.0007
## 112 1.0 0.2 0.0008
## 113 1.0 0.3 0.0023
## 114 1.0 0.4 0.0041
## 115 1.0 0.5 0.0066
## 116 1.0 0.6 0.0083
## 117 1.0 0.7 0.0103
## 118 1.0 0.8 0.0164
## 119 1.0 0.9 0.0188
## 120 1.0 1.0 0.0238

Le tableau ci dessus confirme bien mon intuition. En effet pour chaque valeur de m, l’espérance est maximale lorsque a=m. Par exemple pour m=0.8 nous avons :

E08=0.0280 E09=0.0199 E1=0.0136

Nous avons bien l’espérence maximale pour a=0.8.

Question 2.5

Cette stratègie semble être une bonne stratégie. En effet on a bien M**alpha>M et contrairement à la première nous pouvons changer le alpha pour optimiser le gain. Il serait donc, à mon sens logique de gagner plus avec cette stratégie qu’avec la précédente.

f = function(a,n,alpha){
  X=runif(n,0,a)
  Max=max(X)
  rM=Max**alpha
  gain=0
  if(rM <= a) {
    gain=rM-Max
  }
  return(gain)
}
G1=sample(0,1000,replace=TRUE)
G2=sample(0,1000,replace=TRUE)
G3=sample(0,1000,replace=TRUE)
G4=sample(0,1000,replace=TRUE)
G5=sample(0,1000,replace=TRUE)
G6=sample(0,1000,replace=TRUE)
G7=sample(0,1000,replace=TRUE)
G8=sample(0,1000,replace=TRUE)
G9=sample(0,1000,replace=TRUE)
for(i in 1:1000) {
  a=runif(1,0,1)
  G1[i]=f(a,2,0.1)
  G2[i]=f(a,2,0.2)
  G3[i]=f(a,2,0.3)
  G4[i]=f(a,2,0.4)
  G5[i]=f(a,2,0.5)
  G6[i]=f(a,2,0.6)
  G7[i]=f(a,2,0.7)
  G8[i]=f(a,2,0.8)
  G9[i]=f(a,2,0.9)
}
E1=mean(G1)
E2=mean(G2)
E3=mean(G3)
E4=mean(G4)
E5=mean(G5)
E6=mean(G6)
E7=mean(G7)
E8=mean(G8)
E9=mean(G9)
E1
## [1] 0.02291747
E2
## [1] 0.03637596
E3
## [1] 0.0536414
E4
## [1] 0.05768301
E5
## [1] 0.0635473
E6
## [1] 0.06519244
E7
## [1] 0.06002179
E8
## [1] 0.04386149
E9
## [1] 0.02475543

Nous observons que comme prévu, cette stratégie est plus efficace que la précédente et est optimale pour alpha=0.5 avec un gain moyen de 0.068.

for(i in 1:1000) {
  a=runif(1,0,1)
  G1[i]=f(a,10,0.1)
  G2[i]=f(a,10,0.2)
  G3[i]=f(a,10,0.3)
  G4[i]=f(a,10,0.4)
  G5[i]=f(a,10,0.5)
  G6[i]=f(a,10,0.6)
  G7[i]=f(a,10,0.7)
  G8[i]=f(a,10,0.8)
  G9[i]=f(a,10,0.9)
}
E1=mean(G1)
E2=mean(G2)
E3=mean(G3)
E4=mean(G4)
E5=mean(G5)
E6=mean(G6)
E7=mean(G7)
E8=mean(G8)
E9=mean(G9)
E1
## [1] 0.002091552
E2
## [1] 0.004170584
E3
## [1] 0.006783981
E4
## [1] 0.007323831
E5
## [1] 0.01099181
E6
## [1] 0.0110525
E7
## [1] 0.01426595
E8
## [1] 0.01366208
E9
## [1] 0.01326542

Pour n=10 nous pouvons voir que alpha=0.8 devient le meilleur aplpha. Cependant le gain pour ce dernier est d’approximativement 0.015 ce qui est faible comparé à cette même expérience avec n=2 mais se rapproche de la stratégie de r(M)=1.1*M vu en question 2.3.

Exercice 3

Question 3.6 :

Dans cette situation Bob répond toujours oui donc seul le lancé de pièce influe sur la résultat final. On suis donc une loi Binomial de paramètre p=0.5

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

Question 3.7 :

Une stratégie possible à adopté serait de répondre oui lorsque Alice done une valeur supérieur ou égale à 0.5 et non dans le cas contraire. En effet si le nombre est plus grand que 0.5 il est plus probable qu’il soit le plus grand des deux et vice versa.

 A2= runif(10000,0,1)
 A1= runif(10000,0,A2)
 Win=sample(0,10000,replace=TRUE)
 lancer=sample(0:1,10000,replace=TRUE)
for(i in 1:10000){
  if((A2[i]> 0.5 && lancer[i]==0) || (A1[i]<=0.5&&lancer[i]==1)) {
    Win[i]=1
  }
}

mean(Win)
## [1] 0.6766

Nous pouvons observer qu’avec A1 etr A2 tiré uniformément dans [0,1] Bob gagne 2 fois sur trois. Notre stratégie est donc meilleure que la stratègie initiale.

 A2=0.6
 A1=0.4
 Win=sample(0,10000,replace=TRUE)
 lancer=sample(0:1,10000,replace=TRUE)
for(i in 1:10000){
  if((A2> 0.5 && lancer[i]==0) || (A1<=0.5&&lancer[i]==1)) {
    Win[i]=1
  }
}

mean(Win)
## [1] 1

Avec notre stratégie si Alice choisi A1=0.4 et A2=0.6 Bob est bien sur obligé de gagner.