2017-01-11 1 views
0

I ont une manière spécifique, je voudrais amorcer les données de survie suivantes (« mydata », ce qui est juste un échantillon de l'ensemble de données complet):bootstrap heirarchical dans R

cup surv 
100-9 0 
100-9 0 
100-9 1 
100-9 1 
101-9 0 
101-9 0 
101-9 0 
101-9 0 
51-1 0 
51-1 1 
51-1 1 
51-1 1 

Chaque ligne est un individu qui a vécu (surv = "1") ou est mort (surv = "0"). Les individus étaient groupés quatre par tasse. Je voudrais que chaque itération du bootstrap échantillonne juste un individu aléatoire, pas plus, de chaque tasse, et estime la moyenne et la densité sd. L'itération suivante échantillonnerait à nouveau un individu par coupelle, qui pourrait être ou ne pas être le même individu échantillonné à la première itération. Jusqu'ici, j'ai réussi à échantillonner aléatoirement avec un remplacement à travers toutes les coupelles, de sorte que chaque itération peut compter deux individus séparés de la même coupelle, tout en échantillonnant zéro à partir d'une autre coupelle. Voici ce code:

library(boot) 
surv.mean = function(x, indices) { 
return(mean(x[indices])) 
} 
surv.boot <- boot(mydata$surv, surv.mean, 10000) 
boot.ci(surv.boot) 

Je ne pense pas que l'analyse de cluster est la bonne façon de faire, je pense à ce que imbriquée sous-échantillonnage (avec des restrictions?). S'il vous plaît laissez-moi savoir si vous avez un indice utile!

Merci.

P.S. Pour les points de bonus impressionnants, comment peut-on alors estime la survie bootstrapped modèle parmi les groupes en utilisant la régression logistique [de préférence en utilisant GLM (, famille = binomiale)], .: par exemple

group cup surv 
A  100-9 0 
A  100-9 0 
A  100-9 1 
A  100-9 1 
B  101-9 0 
B  101-9 0 
B  101-9 0 
B  101-9 0 
C  51-1 0 
C  51-1 1 
C  51-1 1 
C  51-1 1 

Répondre

0

En utilisant dplyr:

library(dplyr) 
subsample <- mydata %>% 
       group_by(cup) %>% 
       sample_n(1)