Entradas

Mostrando entradas de mayo, 2016

Tuneando funciones en R (II)

Tuneando funciones en R (II)Hace unos días habíamos posteado (acá) un "tuneo" de una función de R. Básicamente, tomar una función de otro paquete (survey) que realizaba muestreo estratificado y adaptarla a unos objetivos muy específicos (poder hacer muestreo con reposición y poder definir las proporciones de casos a muestrear en cada estrato) Acá está la función original:#### FUNCION PARA BOOSTRAPEO POR ESTRATOS ##### strata = Vector que identifica los estratos# counts = Cantidad de casos en cada uno de los estratos# rep = Argumento lógico: TRUE si el muestreo es con reposición; FALSE si no# prop = Argumento numérico: indica la proporción de casos que se muestrean al interior del estratostratify<-function(strata,counts,rep=FALSE,prop=1){strata<-as.character(strata)n<-length(strata)rval<-integer(sum(counts))allrows<-1:nj<-0for(iin1:length(counts)){c<-counts[i]thisstrat<-names(counts)[i]rows<-allrows[strata==thisstrat]rval[j+(1:round(c*prop,0))]<…

Tuneando funciones en R

Tuneando funciones en R Hace un rato necesitaba poder remuestrear filas de un data frame para testear un modelo (vendrá un próximo post al respecto, esperemos...). El tema es que necesitaba que el muestreo cumpliera tres condiciones:
respetara los tamaños de los estratos (el muestreo original había sido estratificado) que al interior de cada estrato se pudiera tener la opción de samplear con resposición que se pudieran elegir la proporción del tamaño de remuestra en cada uno de los estratos Estuve un rato pensando cómo construir una función que lo hiciera... y en ese interín se me ocurrió que quizás sería mejor usar una función que ya hiciera algo parecido y evaluar si era posible modificarla un poco para que se adaptara a esos tres requisitos. En un búsqueda de Google me acordé del paquete "survey" para R (gran paquete para trabajar con muestras complejas, tiene algoritmos de raking, post-estratificación, calibración, etc.; acá, hay un tutorial rápido). El paquete tiene un…