Bonjour,
J'ai ce projet à réaliser à l'aide du logiciel R :
Loi de la moyenne empirique I (bootstrap).
On dispose de 1000 observations (urne initiale, à générer) d'une variable aléatoire suivant une loi normale de paramètres m et s. Tirer au hasard avec remise 1000 observations dans l'urne initiale.
Calculer les valeurs empiriques des paramètres m et s. Répéter cette procédure cinquante fois pour obtenir des estimateurs m i et s i , i=1..50.
Comparer la précision des valeurs empiriques des estimateurs basées sur l'échantillon de départ à celle des nouveaux estimateurs moyens définis par m : moyenne des m, s : moyenne des si .
Que se passerait-il si on réalisait la même procédure 500 fois plutôt que 50 ?
On donnera dans la présentation des précisions sur la notion de bootstrap.
J'ai essayé d'y répondre en réalisant ce programme, mais je pense qu'on peut l'améliorer notamment la partie où il faut comparer la précision des estimateurs à l'aide d'un graphe.
D'autre part, si quelqu'un a des notions sur le bootstrap, pourrait-il me faire part de ses connaissances ?
Voici mon programme :
Je vous remercie par avance pour votre aide.projet=function(m,s) {
M=0
S=0
#pour générer l'urne de 1000 observations d'une v.a suivant une loi normale de
#paramètres m et s
x=rnorm(1000,m,s)
for(i in 1:50) {
#pour tirer au hasard avec remise 1000 observations dans l'urne initiale :
y=sample(x,1000,replace=TRUE)
#pour calculer les valeurs empiriques de m et s
mi=mean(y)
si=sd(y)
if(M[1]!=0) M=cbind(M,mi)
if(M[1]==0) M=mean(mi)
if(S[1]!=0) S=cbind(S,si)
if(S[1]==0) S=mean(si)
}
D=data.frame(M,S)
T=matrix(D,nrow=50,ncol=2)
#pour afficher le vecteur des mi
print("Les 50 estimateurs mi et si sont :")
print(T)
#pour afficher la moyenne de tous les mi
print("La moyenne des estimateurs mi est :")
print(mean(M))
#pour afficher la moyenne de tous les si
print("La moyenne des estimateurs si est :")
print(mean(S))
par(mfrow=c(2,1))
barplot(M,ylim=c(m-1,m+1),sub="50 estimateurs mi",col="blue")
abline(h=mean(M),col="red")
barplot(S,ylim=c(s-1,s+1),sub="50 estimateurs si",col="yellow")
abline(h=mean(S),col="blue")
}
Cordialement.
-----