17 votos

¿Cómo generar datos categóricos al azar?

Digamos que tengo una variable categórica que puede tomar los valores A, B, C y D. ¿Cómo puedo generar 10000 puntos de datos al azar y el control de la frecuencia de cada uno? Por ejemplo:

A = 10% B = 20% C = 65% D = 5%

¿Alguna idea cómo puedo hacerlo?

37voto

Eero Puntos 1612

¿Quieres que la proporción en la muestra a ser exactamente las proporciones establecidas? o para representar la idea de muestreo de una población muy grande con esas proporciones (por lo que las proporciones de muestra será de cerca, pero no exacto)?

Si desea que las proporciones exactas a continuación, puede seguir Brandon sugerencia y el uso de la R sample función para cambiar aleatoriamente el orden de un vector que tiene las proporciones exactas.

Si desea una muestra de la población, pero no restringir las proporciones para ser exactos, a continuación, usted todavía puede usar el sample función en R con la prob argumento así:

> x <- sample( LETTERS[1:4], 10000, replace=TRUE, prob=c(0.1, 0.2, 0.65, 0.05) )
> prop.table(table(x))
x
     A      B      C      D 
0.0965 0.1972 0.6544 0.0519 

6voto

bavajee Puntos 141

Utilizando R (http://cran.r-project.org/). Todo que estoy haciendo aquí es crear una lista aleatoria con la proporción especificada.

x <- c(rep("A",0.1*10000),rep("B",0.2*10000),rep("C",0.65*10000),rep("D",0.05*10000))
# cheating    
x <- sample(x, 10000) 


prop.table(summary(as.factor(x)))

/me espera pacientemente para la discusión sobre cómo verdaderamente al azar es

4voto

StasK Puntos 19497
    n <- 10000
    blah <- character(n)
    u <- runif(n)
    blah[u<=0.1] <- "A"
    blah[u>0.1 & u<=0.3] <- "B"
    blah[u>0.3 & u<=0.95] <- "C"
    blah[u>0.95] <- "D"
    table(blah)
    prop.table(summary(as.factor(blah)))

runif()es aleatorio :)

2voto

Brettski Puntos 5485

Si eres un usuario SAS, las versiones recientes proporcionan una capacidad similar para tirar de lo que llama una distribución de "mesa" - que es lo que buscas, como parte de la función Rand(). Ver http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a001466748.htm

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X