Buenos días con todos. Tengo una base de datos de reembolsos (62.000 casos aprox) que hizo una compañía de seguros a sus asegurados. Mi objetivo es obtener una muestra estratificada con afijacion óptima en base a esta variable(V.PAGADO) de tal manera que el tamaño de muestra n sea mínimo. Este es un mini ejemplo de los datos que tengo: V.PAGADO <- c(247.38, 55.59, 124.05, 84.02, 44.51, 9.34, 36.99, 133.12, 17.00, 72.00, 1005.05, 58.55, 1031.25, 88.79, 58.14, 47.61, 201.41, 1703.27, 69.51, 37.02, 27.35, 36.14, 70.00, 110.29, 713.30, 63.18, 51.77, 44.24, 1250.00, 31.50, 1180.50, 31.17, 148.28, 22.50, 21.60, 19.00, 12.00, 9.00, 9.00, 9.00, 9.00, 7.00, 6.24, 17.71, 110.39, 183.71, 80.00, 31.70, 57.88, 40.00) Hay algún paquete que me facilite este proceso y si lo hay como lo aplicaría a estos datos??? Gracias de antemano. _________________________________________________________________ [[alternative HTML version deleted]]
Tus datos son extremadamente heterogéneos, como lo revela su distribución: plot(density(V.PAGADO )) Lo cual legitima un muestreo estratificado. Pero, lo primero que haría en este caso es considerar algo más regular: una transformación log de tus datos datos= log(V.PAGADO ) Al representar la distribución de esta transformación de los datos plot(density( datos )) se obtiene algo a lo cual se puede razonablemente ajustar una mixtura de distribuciones normales. Un manera de determinar un número de strata para tu muestreo consiste en determinar el número optimo (según el BIC) de componentes de esta mixtura. Para ello, puedes utilizar el paquete "mclust" require(mclust) y luego : fit=Mclust(datos) > best model: unequal variance with 2 components Por lo tanto, una muestreo estratificado con 2 strata debería ser una buena opción. Luego, para definir los dos strata puedes utilizar la clasificación propuesta por Mclust: strata= fit$classification Una afijación optima requiere una estimación de la variabilidad (sigma) en el seno de los stratas y sus respectivos tamaños (N): N = table(strata) sigma = sqrt(fit$parameters$variance$sigmasq) A partir de ello, puedes deducir la afijación optima (en el sentido de Neyman): Afijacion = round(K*N*sigma/sum(N*sigma) ) donde K es el tamaño muestral que habrás elegido. Obviamente, si consideras la población de los 62.000 casos en vez de los 50 que mandaste, el número de strata puede cambiar sustancialmente. -- ____________________________________ Olivier G. Nuñez Email: onunez en iberstat.es Tel : +34 663 03 69 09 Web: http://www.iberstat.es ____________________________________ El 07/02/2010, a las 18:20, John Jacho escribió:> V.PAGADO <- c(247.38, 55.59, 124.05, 84.02, 44.51, 9.34, 36.99, > 133.12, 17.00, 72.00, 1005.05, 58.55, 1031.25, 88.79, 58.14, 47.61, > 201.41, 1703.27, 69.51, 37.02, 27.35, 36.14, 70.00, 110.29, 713.30, > 63.18, 51.77, 44.24, 1250.00, 31.50, 1180.50, 31.17, 148.28, 22.50, > 21.60, 19.00, 12.00, 9.00, 9.00, 9.00, 9.00, 7.00, 6.24, 17.71, > 110.39, 183.71, 80.00, 31.70, 57.88, 40.00)
Hola, Si sigues el capítulo de Scheaffer et al. (1990) sobre Técnicas de Muestreo (capítulo de M. Estratificado), un programa que hace afijación óptima podría ser el siguiente (para entenderlo bien deberías consultar el libro donde viene la teoría en la que se basa el programa): strat.sample <- function(N.vec, sigma.vec, B, proportion=F) { # Muestreo de forma proporcional o de forma uniforme por estrato N.tot <- sum(N.vec) if(proportion==F){ wt.vec <- rep(1/length(N.vec),length(N.vec))} else {wt.vec <- N.vec/N.tot} numer <- sum(((N.vec*sigma.vec)^2)/wt.vec) den <- sum(N.vec*(sigma.vec^2)) D <- B^2/4 n <- ceiling(numer/(D*(N.tot^2) + den)) n.vec <- round(n*wt.vec,1) cat(" Total n =",n,"\n", " n por estrato =",n.vec,"\n") } # Ejempo de Aplicacion N.vec <- c(155,62,93) sigma.vec <- c(5,15,10) # O strat.sample(N.vec,sigma.vec,2) # O bien strat.sample(N.vec,sigma.vec,2,T) Si quieres aplicar los métodos clásicos de muesteo necesitas saber cual es el tamaño poblacional de cada estrato previamente. Si no, tendrías que aplicar postestratificación, lo cual es más complicado. Saludos> Buenos días con todos. > > Tengo una base de datos de reembolsos (62.000 casos aprox) que hizo > una compañía de seguros a sus asegurados. > Mi objetivo es obtener una muestra estratificada con afijacion óptima > en base a esta variable(V.PAGADO) de tal manera que el tamaño de > muestra n sea mínimo. > > Este es un mini ejemplo de los datos que tengo: > V.PAGADO <- c(247.38, 55.59, 124.05, 84.02, 44.51, 9.34, 36.99, > 133.12, 17.00, 72.00, 1005.05, 58.55, 1031.25, 88.79, 58.14, 47.61, > 201.41, 1703.27, 69.51, 37.02, 27.35, 36.14, 70.00, 110.29, 713.30, > 63.18, 51.77, 44.24, 1250.00, 31.50, 1180.50, 31.17, 148.28, 22.50, > 21.60, 19.00, 12.00, 9.00, 9.00, 9.00, 9.00, 7.00, 6.24, 17.71, > 110.39, 183.71, 80.00, 31.70, 57.88, 40.00) > > > Hay algún paquete que me facilite este proceso y si lo hay como lo > aplicaría a estos datos??? > > Gracias de antemano. > > _________________________________________________________________ > > > [[alternative HTML version deleted]] > >jm~ _______________________________ J. Miguel Marin http://www.est.uc3m.es/jmmarin Dep. of Statistics University Carlos III of Madrid Spain (E.U.)