Foro de debate

Problemas al codificar una variable

Problemas al codificar una variable

de Willy Rodriguez Barcelo -
Número de respuestas: 5

Hola muy buenas!

Ando un poco desesperado por que no se como codificar una variable en 4 categorías.

La variable que me dan se llama PreuAm2 y debo codificarla en 4 categorías, la primera iria de [8,9] la segunda iria de [9,12] la tercera iria de [12,13] y lsa ultima de [13,16].

Sinceramente no entiendo el uso de la función cut para poder realizar esta acción.

Si alguien me pudiera ayudar se lo agradecería mucho.

En respuesta a Willy Rodriguez Barcelo

Re: Problemas al codificar una variable

de Manuel Muñoz Márquez -
Supongamos que tenemos una variable x con valores desde 8 a 16 (la genero aleatoriamente)
> x
 [1] 12.343443 14.671500 14.328706  8.255101  9.756942 13.172240 15.860964
 [8] 15.290996 14.074286 10.768574 12.601100 13.613633  8.845372 13.736755
[15] 12.087449 12.717392  9.118993 10.118237 10.716375 13.849005  9.716045
[22] 12.887064 13.281750 15.241378 10.406783 10.078509  8.947806 12.363771
[29]  9.220354 12.794835

Quiero dividirla en cuatro intervalos, en el segundo argumento de cut especifico los límites
> cut(x, c(8, 9, 12, 13, 16))
 [1] (12,13] (13,16] (13,16] (8,9]   (9,12]  (13,16] (13,16] (13,16] (13,16]
[10] (9,12]  (12,13] (13,16] (8,9]   (13,16] (12,13] (12,13] (9,12]  (9,12]
[19] (9,12]  (13,16] (9,12]  (12,13] (13,16] (13,16] (9,12]  (9,12]  (8,9] 
[28] (12,13] (9,12]  (12,13]
Levels: (8,9] (9,12] (12,13] (13,16]

El resultado es un factor y la etiqueta especifica en qué intervalo está cada valor, así el primer (12,13] quiere decir que el primer valor de x está en ese intervalo, el segundo valor (13,16] lo que quiere decir que el segundo valor está en ese intervalo.

Tal vez leerlo de esta forma sea un poco lioso, si quieres ponerle etiquetas un poco más legibles puedes usar el argumento labels de cut como se muestra a continuación.

> cut(x, c(8, 9, 12, 13, 16), labels=c('Bajo', 'Bajo-Medio', 'Medio-Alto', 'Alto'))
 [1] Medio-Alto Alto       Alto       Bajo       Bajo-Medio Alto     
 [7] Alto       Alto       Alto       Bajo-Medio Medio-Alto Alto     
[13] Bajo       Alto       Medio-Alto Medio-Alto Bajo-Medio Bajo-Medio
[19] Bajo-Medio Alto       Bajo-Medio Medio-Alto Alto       Alto     
[25] Bajo-Medio Bajo-Medio Bajo       Medio-Alto Bajo-Medio Medio-Alto
Levels: Bajo Bajo-Medio Medio-Alto Alto

Nuevamente recordarte que lo que se obtiene es una variable de tipo factor.

Un saludo.
En respuesta a Manuel Muñoz Márquez

Re: Problemas al codificar una variable

de Willy Rodriguez Barcelo -

Bueno,lo primero darte mil gracias por que realmente ahora si entiendo el uso de la función "cut",lo has explicado perfectamente.

Solo una cuestión más, me piden que codifique la variable con las cuatro categorías, cosa la cual me has explicado perfectamente y aparte me piden que se cree otra variable con las mismas especificaciones que esta que hemos codificado.

Y me piden que cree la tabla de frecuencias de la ultima variable creada, mi pregunta es ¿Qué sentido tiene si las dos variables van a ser iguales no? Me refiero, si la primera variable la codifico de una manera y me creo otra con las mismas especificaciones, no será la tabla de frecuencias igual?

PreAum2 codificada con las 4 categorías

CatAm2 se crea con las mismas especificaciones y calculamos su tabla de frecuencias ¿tiene sentido?

Perdón por la extensión del mensaje y una vez mas, muchas gracias de antemano.

En respuesta a Willy Rodriguez Barcelo

Re: Problemas al codificar una variable

de Manuel Muñoz Márquez -
Buenas:

Me temo que eso sólo lo puede responder el que ha hecho la pregunta.

La única explicación que se me ocurre es que la primera codificación fuese a una variable numérica y por eso pide la segunda que sería un factor.

Un saludo.


En respuesta a Manuel Muñoz Márquez

Re: Problemas al codificar una variable

de Willy Rodriguez Barcelo -

Hola muy buenas,

Tienes toda la razón,pregunte ayer y efectivamente la primera codificación es una variable numérica y la segunda es un factor,lo has clavado :)

Entonces la segunda variable la creo igual que la primera verdad?Con el "cut" igual y demás.?

Muchas gracias por contestar de verdad.

En respuesta a Willy Rodriguez Barcelo

Re: Problemas al codificar una variable

de Manuel Muñoz Márquez -

Buenas:

Esto es una forma heredada de trabajar, en algunos programas estadísticos no existen las variables de tipo factor y los grupos se crean usando una variable numérica que indica el grupo al que pertenecen.

Esa forma de trabajar se presta a confusiones, por ejemplo, si la variable provincia se codifica con un número ¿qué impide calcular la media de las provincias?

En R no es necesario, ni útil, el uso de esa variable intermedia.

Si quisieras hacerlo al estilo antiguo, yo lo haría más bien al revés, primero creo la variable factor con cut y luego la convierto en numérica utilizando as.numeric.

Saludos.