Les posteurs les plus actifs de la semaine
Aucun utilisateur |
Sujets les plus vus
Echantillonnage bootstrapé
3 participants
Page 1 sur 1
Echantillonnage bootstrapé
Bonjour à tous, je post sur ce forum pour la première fois, j'espère que vous serez en mesure de m'aider..
Je vais essayer d'être clair.
J'ai un jeu de données de comptages d'oiseaux. Ces oiseaux ont été comptés sur des places (12 places qui sont les mêmes chaque année) chaque année :
ANNEE Num_Place Coq_certain
2008 20 10
2008 23 6
......x12
2009
......x12
2016
......x12
Je souhaite essayer de simplifier le protocole en réalisant les comptages des 12 places sur deux années et voir si j'arrive en moyenne à obtenir la même somme d'effectifs que si j'avais réaliser le comptage sur les 12 places en une année.
Pour ce faire, j'aimerai demander à R de me choisir 2 années, puis de faire un échantillonnage de 6 places la 1ère année et des 6 autres places la deuxième année (donc vous l'aurez compris je ne veux pas tirer deux fois la même place) pour qu'il me fasse ensuite la somme des effectifs de ces deux années. Et pour finir, je souhaite faire un bootstrap pour avoir une moyenne de la somme des effectifs obtenus en deux ans afin de pouvoir la comparer avec la moyenne des effectifs obtenus en faisant le comptage des 12 places en 1 années (cette moyenne je l'ai).
Mais le soucis que j'ai, c'est que je ne suis pas bon en stat et en programmation.. Un ami m'a envoyé un début de script pour un autre cas plus simple mais quand j'essaye de l'adapter ça ne marche pas car ça aurait été trop simple ^^
Voila ce que j'ai pour l'instant..
Merci d'avance pour l'aide que vous pourrez m'apporter
Je vais essayer d'être clair.
J'ai un jeu de données de comptages d'oiseaux. Ces oiseaux ont été comptés sur des places (12 places qui sont les mêmes chaque année) chaque année :
ANNEE Num_Place Coq_certain
2008 20 10
2008 23 6
......x12
2009
......x12
2016
......x12
Je souhaite essayer de simplifier le protocole en réalisant les comptages des 12 places sur deux années et voir si j'arrive en moyenne à obtenir la même somme d'effectifs que si j'avais réaliser le comptage sur les 12 places en une année.
Pour ce faire, j'aimerai demander à R de me choisir 2 années, puis de faire un échantillonnage de 6 places la 1ère année et des 6 autres places la deuxième année (donc vous l'aurez compris je ne veux pas tirer deux fois la même place) pour qu'il me fasse ensuite la somme des effectifs de ces deux années. Et pour finir, je souhaite faire un bootstrap pour avoir une moyenne de la somme des effectifs obtenus en deux ans afin de pouvoir la comparer avec la moyenne des effectifs obtenus en faisant le comptage des 12 places en 1 années (cette moyenne je l'ai).
Mais le soucis que j'ai, c'est que je ne suis pas bon en stat et en programmation.. Un ami m'a envoyé un début de script pour un autre cas plus simple mais quand j'essaye de l'adapter ça ne marche pas car ça aurait été trop simple ^^
Voila ce que j'ai pour l'instant..
- Code:
dat <- read.table("place_bootstrap4_massif_entier 2008-2016_modifie.txt", sep = "\t", header = TRUE, stringsAsFactors = FALSE)
nboot <- 100
sommes <- numeric(nboot)
for (i in 1:nboot) {
# on prepare un vecteur vide pour les places prises
places_prises <- character()
# tant qu'il n'y a pas 12 valeurs differentes dans ce vecteur, on fait ce qui
# est dans la boucle 'while'
while (length(unique(places_prises)) != 12) {
# il faut re initialiser le vecteur au debut de chaque tour de boucle
places_prises <- character()
annees <- sample(unique(dat$ANNEE), 2, replace = FALSE)
for (cette_annee in annees) {
# pour chaque annee on prend une place au hasard
cette_place <- sample(dat$Num_Place[dat$ANNEE == cette_annee], 6)
# on la stocke dans le vecteur 'places_prises'
places_prises <- c(places_prises, cette_place)
}
# ici le programme evalue la condition de la boucle 'while', si elle bonne
# (donc 3 places differentes), on sort de la boucle, sinon on refait un tour
}
# on a reussi a avoir 12 places differentes donc maintenant on recupere les
# valeurs de comptage dans le vecteur 'tous_coqs'
tous_coqs <- numeric(12)
for (j in 1:12) {
tous_coqs[j] <- dat$Coq_certain[dat$ANNEE == annees[j] & dat$Num_Place == places_prises[j]]
}
# et on fait la somme qu'on met dans le vecteur de sommes, puis on fait le
# prochain tour de bootstrap
sommes[i] <- sum(tous_coqs)
}
mean(sommes)
abline(v=mean(sommes),col="red",lwd=3) # v = vertical et lwd = epaisseur de la ligne
# abline(v=mean(x),col="green",lwd=3,lty=2) # lty = pointillés
# on cherche le quantile à 2.5 et à 97.5 :
quantile(sommes,c(0.025,0.975)) #
abline(v=quantile(sommes,c(0.025,0.975)),col="blue",lty=3,lwd=2)
Merci d'avance pour l'aide que vous pourrez m'apporter
alexv62- Nombre de messages : 4
Date d'inscription : 03/07/2017
Re: Echantillonnage bootstrapé
Bonjour, est-ce que quelqu'un peut m'aider svp?..
Ou au moins essayer de me donner des pistes à creuser?
Merci d'avance
Ou au moins essayer de me donner des pistes à creuser?
Merci d'avance
alexv62- Nombre de messages : 4
Date d'inscription : 03/07/2017
Re: Echantillonnage bootstrapé
Je pense que personne ne comprend ce que tu veux faire.
c@ssoulet- Nombre de messages : 925
Date d'inscription : 05/05/2008
Re: Echantillonnage bootstrapé
ah d'accord..
Je souhaite, avec le jeu de données que j'ai (qui sont des comptages annuels), simuler le comptage des 12 places sur deux ans au lieu d'un an et voir si j'arrive à obtenir en moyenne les mêmes effectifs.
Donc pour cela, je pensais faire une sélection aléatoire de deux années parmi les 8 et au sein de ces deux années, demander a R d'échantilloner aléatoirement 6 places de la 1ere année et les 6 autres places de la 2 eme année.
Pour obtenir un comptage des 12 places sur deux ans et répéter ça par bootstrap pour voir si en moyenne j'obtiens des effectifs proches de ce que j'ai dans mon jeu de donnée sur une année ou pas.
Est-ce plus clair?
Je souhaite, avec le jeu de données que j'ai (qui sont des comptages annuels), simuler le comptage des 12 places sur deux ans au lieu d'un an et voir si j'arrive à obtenir en moyenne les mêmes effectifs.
Donc pour cela, je pensais faire une sélection aléatoire de deux années parmi les 8 et au sein de ces deux années, demander a R d'échantilloner aléatoirement 6 places de la 1ere année et les 6 autres places de la 2 eme année.
Pour obtenir un comptage des 12 places sur deux ans et répéter ça par bootstrap pour voir si en moyenne j'obtiens des effectifs proches de ce que j'ai dans mon jeu de donnée sur une année ou pas.
Est-ce plus clair?
alexv62- Nombre de messages : 4
Date d'inscription : 03/07/2017
Re: Echantillonnage bootstrapé
Je ne sais pas si cette information peut aider, mais il y a un package "bootstrap" dans R qui fait tout ceci, sans avoir à tout recoder, je pense.
HTH, Eric.
HTH, Eric.
Eric Wajnberg- Nombre de messages : 1237
Date d'inscription : 14/09/2012
Re: Echantillonnage bootstrapé
Oui, je l'ai vu celui-là, en fait c'est plus la partie codage de l'échantillonnage que j'ai décris au dessus qui me pose problème (avec les boucle while, for...)
alexv62- Nombre de messages : 4
Date d'inscription : 03/07/2017
Sujets similaires
» Echantillonnage
» echantillonnage
» echantillonnage
» Erreur lié à l'échantillonnage
» Distributions d’échantillonnage
» echantillonnage
» echantillonnage
» Erreur lié à l'échantillonnage
» Distributions d’échantillonnage
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum