R Markdown

####################### Exercice1 Q1.1  ########################
set.seed(2)
m=10000
a=5
n=2


f<-function(a){#E(M) en fonction de n
  M=replicate(m,max(runif(n)*a))
  return (sum(M)/m)
}

x=1:20
 
y=lapply(x,f)
plot(x,y,xlab="a",ylab="E(M) expérimentale")

#la courbe montre que l'esperance est lineaire en fonction de a donc on peut déduire que a est un facteur dans l'espérance ie E(M)=a*k où k est le coefficient directeur de la droite qu'on observe sur le graphe.


m1=10000
a=5

f2<-function(n){#E(M) en fonction de n
  M=replicate(m,max(runif(n)*a))
  return (sum(M)/m)  #on renvoi la moyenne des max par rapport au nombre de 
}

f3<-function(n){#EX=a*(n/n+1)  l'esperance theorique trouvée et demontrée est 
    return ((a*n)/(n+1))  #on renvoi la moyenne obtenu à partir des maximum dans M 
}

x1=2:30 #on teste l'esperance avec a fixé et pour n qui va de 2 à 30 
y1=lapply(x1,f2)
plot(x1,y1,xlab="n",ylab="E(M) experimentale",col="red") 
lines(x1,y1,col="red") 

x3=2:30 #on teste l'esperance avec a fixé et pour n qui va de 2 à 30 
y3=lapply(x3,f3)
plot(x3,y3,xlab="n",ylab="E(M) théorique",col="blue")
lines(x3,y3,col="blue")

#on remarque d'après la courbe que l'esperance se rapproche de "a" le nombre choisit par alice lorsque n devient grand 

# l'étude de l'espérance est bien en accord avec la théorie en comparant les 2 graphes.



#### Variance
#Var(M)=E((M-E(M))^2) =E(M^2) - E(M)^2
m2=10000
n=2
fX2<-function(a){#E(M^2)
  
  M=replicate(m2,(max(runif(n)*a))^2)
  return (sum(M)/m2)
}

fX3<-function(a){#(E(M))^2
  
  M=replicate(m2,max(runif(n)*a))
  return ((sum(M)/m2)^2)
}

VX<-function(a){#Var(M) en fonction de a
  return (fX2(a)-fX3(a))
}

x2=-100:100
y2=lapply(x2,VX)
plot(x2,y2,xlab="a",ylab="Var(M) expérimentale")

#on remarque bien que à n fixé la variance expérimentale en fonction se comporte comme la fonction f(a)=a^2  donc on en déduit que Var(X)=a^2 * K (où K est un terme en facteur à a^2 qu'on ne connait pas qui doit dépendre de n ) 



m2=10000
a=5
fX2n<-function(n){#E(M^2)
  

  M=replicate(m2,(max(runif(n)*a))^2 )
  return ((sum(M))/m2)
}

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

VXn<-function(n){#Var(M) en fonction de n
  return (fX2n(n)-fX3n(n))
}

x3=2:20
y3=lapply(x3,VXn)



Variance<-function(n){#Var(M)=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=2:20
y4=lapply(x4, Variance)

#courbe experimentale tracé en rouge ,courbe théorique tracé en bleu 
plot(x4,y4,xlab="n",ylab="Var(M)",col="red") #la courbe de la variance trouvé theoriquement et demontrée . 
lines(x4,y4,col="red") #
points(x3,y3,col="blue")
lines(x3,y3,col="blue")

# on constate avec le graphe que avec n qui devient grand la variance se rapproche de 0 ie M devient constante et egal à E(M) qui vaut "a" pour "n" grand . Et constate aussi que la courbe obtenu experimentalement se rapproche de la courbe de la variance calculée théoriquement .






####################### Exercice1 Q1.2  ########################
set.seed(3)

### Esperance
m=10000
n=2


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

x=1:40
y=lapply(x,f)
plot(x,y,xlab="a",ylab="E(M') expérimentale") #esperance en fonction de "a"

# on observe d'après la  courbe que l'esperance est linéaire en fonction de "a" et de coefficient  directeur k donc E(X)=a*k


#on regarde ici l'esperance avec a fixé et pour n qui va de 2 à 30 
m1=10000
a=5

f2<-function(n){
  M=replicate(m1,(2/n)*sum(runif(n)*a))
  return (sum(M)/m1)  #on renvoi la moyenne des max par rapport au nombre de 
}

x1=2:30 
y1=lapply(x1,f2)
plot(x1,y1,xlab="n",ylab="E(M')") 
abline(h=a, col="blue") #tracé de l'asymptote en 5

#on remarque d'après la courbe que l'esperance est très proche de "a" quelque soit la valeur n donc on peut que E(X)=a*1 donc k plus haut valait donc 1.

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




### Variance
#Var(M')=E((M'-E(M'))^2) =E(M'^2) - E(M')^2


#variance en fonction de a et avec n fixé
m2=10000
n=2
fX2<-function(a){#E(M'^2)
  
  M=replicate(m2,((2/n)*sum(runif(n)*a))^2)
  return (sum(M)/m2)
}

fX3<-function(a){#(E(M'))^2
  
  M=replicate(m2,(2/n)*sum(runif(n)*a))
  return ((sum(M)/m2)^2)
}

VX<-function(a){
  return (fX2(a)-fX3(a))
}

x2=-100:100
y2=lapply(x2,VX)
plot(x2,y2,xlab="a",ylab="Var(M') expérimentale")

#on remarque bien que à n fixé la variance expérimentale en fonction se comporte comme la fonction f(a)=a^2  donc on en déduit que 
#Var(X)=a^2 * K (où K est un terme en facteur à a^2 qu'on ne connait pas qui doit dépendre de n ) 


m2=10000
a=5
fX2n<-function(n){#E(M'^2)
  
  M=replicate(m2,((2/n)*sum(runif(n)*a))^2 )
  return ((sum(M))/m2)
}

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

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

x3=2:20
y3=lapply(x3,VXn)



Variance<-function(n){#Var(M')=a^2 / 3*n  variance trouvée et démontrée theoriquement
  return ( (a^2)/(3*n))
}

x4=2:20
y4=lapply(x4, Variance)

#courbe experimentale tracé en rouge ,courbe théorique tracé en bleu 
plot(x4,y4,xlab="n",ylab="Var(M')",col="blue") 
lines(x4,y4,col="blue") 
points(x3,y3,col="red")
lines(x3,y3,col="red")

# on constate après observation du graphe que avec n qui devient grand la variance experimentale se rapproche de 0 ie M' devient constante et egal à E(M')=a (qui lui ne dépend pas de n ) . Et constate que la courbe obtenu se rapproche de la courbe de la variance calculée théoriquement .

#le meilleur estimateur de a parmi M et M' est M.Démonstration faite dans une image en dessous. 










####################### Exercice2 Q2.3  ########################

#Je pense que c'est une bonne stratégie dans le sens ou le facteur 1.1 n'est pas trop grand, c'est à dire qu'il est proche de 1. En effet, si le facteur augmente plus beaucoup plus que 1 alors Bob gagnera mois souvent mais plus.De plus si le facteur est proche de 1 Bob gagnera souvent mais moins d'argent. Puisque la différence R(M)-M sera moins importante.
n=10
m=10000
A=runif(1)
q=1.1



EG<-function(q){#E(G)
  M=replicate(m,max(runif(n)*A))
  R=q*M
  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)
y=lapply(x,EG)
plot(x,y,xlab="q",ylab = "E(G)")

#le maximum est atteint pour q=1.1 et donc la strategie choisit par Bob est une bonne stratégie pour gagner de l'argent. 
#Pour q<1 Bob ne perd rien et ne gagne pas d'argent .
#Pour cette exemple on a pour q>1.5  bob perd en moyenne le jeu fait avec Alice  








####################### Exercice2 Q2.4  ########################










####################### Exercice2 Q2.5  ########################

set.seed(43)

n=2
m=10000
A=runif(1)

### Esperance

EG1<-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)
}

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,EG1)





n=10

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)

#courbe esperance pour n=10 tracé en rouge ,courbe esperance pour n=2 tracé en bleu
plot(x,y,xlab="alpha",ylab = "E(G)",col="blue")
lines(x,y,col="blue")
points(x1,y1,col="red")
lines(x1,y1,col="red")

##Pour n=2
#la meilleur valeur de alpha parmi {0.3,0.5,0.7} est 0.7 car parmi les 3 c'est pour ce alpha qu'on obtient la plus grande valeur de l'esperance.
#d'après la courbe on trouve un meilleur alpha qui vaut 0.6 (on peut dire qu'un meilleur alpha serait en fait entre 0.6 et 0.7)

##Pour n=10
#la meilleur valeur de alpha parmi {0.3,0.5,0.7} est 0.7 car parmi les 3 c'est pour ce alpha qu'on obtient la plus grande valeur de l'esperance.
#d'après la courbe on  trouve  un meilleur alpha qui est proche de 0.9 c'est-à-dire entre 0.9 et 1 (avec 1 exclu)


##BILAN
#la stratégie de Bob de choisir r(M)=M^alpha avec alpha<1 (et pas alpha >=1) est bonne car en moyenne il ne perd pas de parties contre Alice.
#De plus on peut aussi dire que sur n ,on remarque que plus n devient grand n>=10 .On a le meilleur alpha se rapproche de plus en plus de 1. 







####################### Bonus Q3.6  ########################

set.seed(42)
A=runif(2)

m=10000


f<-function(A){#simulation de la stratégie de BOb qui consiste à repondre "oui" à Alice à chaque fois lors du jeu
  pile_face=sample(0:1,1,replace=T)
  if(pile_face==0){#on pose que 0 correspond à pile
    return (max(A))
  }else{#cas face
    return (min(A))
  }
}

Ex<-function(A){#calcul de l'esperance qui n'est pas necesairement pour trouver la probabilité de Bob de gagner lorsqu'il répond oui à toutes les parties. 
  M=replicate(m,f(A))
  maxi=max(A)
  return (mean(M>=maxi))
}

print(Ex(A))
## [1] 0.5001
# Si Bob répond oui à chaque fois alors la probabilité de gagner de BOB est de 1/2 qui est en faite la proba d'obtenir pile sur une pièce non biaisé .
Demonstration pour 1.1

Demonstration pour 1.1



Demonstration pour 1.2



Demonstration de M est le meilleur estimateur de a

Demonstration de M est le meilleur estimateur de a