Revista Electronica de PortalesMedicos.com - https://www.portalesmedicos.com/publicaciones
Editar y otros procesos usuales con datos en SPSS
https://www.portalesmedicos.com/publicaciones/articles/906/1/Editar-y-otros-procesos-usuales-con-datos-en-SPSS.html
Autor: Dr. Juan Manuel García Torrecillas
Publicado: 25/01/2008
 

El presente capítulo se desarrolla utilizando como soporte un fichero imaginario creado en SPSS y que a través de las diferentes pantallas iremos conociendo; le llamaremos hipertension.sav. Dicho fichero va a ser la plantilla de trabajo para que podamos explicar los procedimientos estadísticos de un modo homogéneo.


Editar y otros procesos usuales con datos en SPSS.1

Editar y otros procesos usuales con datos en SPSS

 

Autores:
1. Juan Manuel García Torrecillas. (Médico de Familia. Servicio de Cuidados Críticos y Urgencias.Complejo Hospitalario Torrecárdenas. Almería).
2. Herminia Moreno Martos.
3. María del Carmen Lea Pereira.

 

Usando un fichero de ejemplo.

 

El presente capítulo se desarrolla utilizando como soporte un fichero imaginario creado en SPSS y que a través de las diferentes pantallas iremos conociendo; le llamaremos hipertension.sav. Dicho fichero va a ser la plantilla de trabajo para que podamos explicar los procedimientos estadísticos de un modo homogéneo.

 

Si vemos la ventana del editor de datos de dicho fichero, obtenemos algo así:

 

Fig. 2.1

 

bioestadistica_medicos_SPSS/editor_datos_SPSS_2 

 

Observamos la típica rejilla, análoga a la de cualquier hoja de cálculo, donde cada columna corresponde a una variable y cada fila corresponde a un caso. Las variables que se analizan pueden verse de múltiples maneras. Desde el propio editor vemos ya las variables clave, nombre, fecha, sexo, etc.... y picando en la ventana de variables vemos claramente cuáles son las que inicialmente están incluidas en el fichero (fig. 2.2).

 

Fig. 2.2

 

bioestadistica_medicos_SPSS/editor_datos_SPSS_vista_variables

 

Según la vista de variables ya podemos empezar a ver en la primera columna el nombre de cada variable, seguido en cada columna de cada uno de los atributos de ellas. Detallemos cada variable para seguir con nuestro fichero de ejemplo.

 

Clave: suele introducirse porque nos permite la interconversión entre diferentes bases de datos, y habitualmente se trata de un dato numérico.

Nombre: hace referencia al nombre de los pacientes del fichero, en este caso, ya que están codificados mediante un número de caso y un identificador es una variable de la que podríamos prescindir. Dado que está escrito con texto sería una variable tipo "cadena".

f_nacim: Variable que se refiere a la fecha de nacimiento de los individuos incluidos. Se expresa en formato "fecha" y, como dijimos, existen muchas notaciones distintas para el formato fecha, habiendo utilizado aquí el más usual en España que es día-mes-año.

f_inclus: hace referencia a la fecha de inclusión en el estudio. También es una variable tipo fecha con el mismo sistema de notación.

Sexo: es una variable categórica a la que se han dado valores numéricos para que el análisis sea adecuado. Se asignó el valor 0 a los varones y 1 a las mujeres. Si picamos en la casilla resultante de la intersección entre la variable sexo y valores se despliega la siguiente caja que aclara y permite modificar las asignaciones:

 

fig. 2.3

 

bioestadistica_medicos_SPSS/etiquetas_de_valor_SPSS_3

 

Altura: es la altura de los individuos, variable numérica expresada en este caso en centímetros. Vemos cómo está acotada para el número de decimales esto es, sin decimales. Lo mismo ocurre con la variable peso. Notemos que para que exista claridad a la hora de conocer de que variables estamos hablando hay una casilla "etiquetas" donde podemos escribir la "chuleta", el qué significa realmente el nombre de la variable.

pad_ini: hace referencia a la presión diastólica inicial, al comienzo del estudio. Numérica.

pad_fin: es la presión diastólica final, tras tomar el fármaco. Numérica.

pas_ini: presión sistólica inicial. Numérica

pas_fin: presión sistólica final, tras tomar el fármaco. Numérica

Fármaco: recoge el tipo de fármaco tomado. Se codificaron mediante números los tres tipos de fármacos del estudio del siguiente modo (fig. 2.4)

 


Editar y otros procesos usuales con datos en SPSS.2

Fig. 2.4

 

bioestadistica_medicos_SPSS/etiquetas_de_valor_SPSS_4

 

Como vemos, se asignó el valor 0 a aquellos pacientes a los que se administró placebo, 1 a aquellos que tomaron IECAs y 2 a los que tomaron una asociación de calcioantagonistas y diuréticos.

 

Transformando Datos

 

CALCULAR (COMPUTE)

 

Con bastante frecuencia a partir de las variables suministradas por el fichero inicial es necesario crear variables nuevas o recodificar las previas en otras distintas para permitir un adecuado análisis de las mismas. Con SPSS podremos hacer varias cosas distintas.

 

Puedo crear una variable nueva que sea el resultado de un cálculo matemático utilizando las variables insertas en el fichero. Por ejemplo, a partir de los datos de peso y talla que tenemos en nuestra base podemos calcular una nueva variable como es el índice de masa corporal (IMC); para ello nos vamos a TransformaràCalcular

y nos aparece la siguiente caja:

 

Fig. 2.5

 

bioestadistica_medicos_SPSS/calcular_variable_SPSS

 

Si queremos calcular el IMC debemos saber que éste es el resultado de aplicar la fórmula IMC = peso (Kg)/talla (m)2; usando la ventana anterior indicamos en la opción "variable de destino" el nombre de la nueva variable, en nuestro caso "imc" y en la caja de expresión numérica expresamos la fórmula que el programa debe calcular (fig. 2.6)

 

Fig. 2.6

 

bioestadistica_medicos_SPSS/variable_de_destino_SPSS

 

Finalmente damos a "aceptar" y obtendremos una nueva columna en el editor de datos con el nombre de variable "imc" y los datos calculados para cada caso (fig. 2.7).

 

Fig. 2.7

 

bioestadistica_medicos_SPSS/datos_calculados_SPSS

 

En resumen, las variables hay que elegirlas en la columna de la ventana variables de la caja (fig. 2.6) y se introducen con el ratón en la caja de la derecha siguiendo la expresión numérica/matemática adecuada haciendo uso de los operadores que tenemos debajo.


Es importante notar que cualquier operación puede ser restringida a casos concretos si indicamos al programa que utilice para calcular sólo los casos que cumplan una determinada condición. Para ello, tenemos que picar en la ventana   bioestadistica_medicos_SPSS/ventana_SJ_SPSS   dentro de la fig. 2.6 lo cual nos da acceso a la posibilidad de restringir los casos a los deseados. Caso de no querer restringir los casos, dejamos marcada la opción por defecto (incluir todos los casos).


Repitamos el procedimiento de cálculo del IMC deteniéndonos en la sintaxis; realizamos el procedimiento Transformarà Calcular y obtenemos el cuadro de la fig. 2.6, ahora en lugar de aceptar directamente seleccionamos "pegar" y nos aparece la siguiente expresión en el editor de sintaxis:

 

COMPUTE imc = peso / (altura / 100) ** 2

EXECUTE

Seleccionando ambas líneas y pulsando el botón bioestadistica_medicos_SPSS/boton_variables_SPSS aparecerá la variable IMC en el editor de datos al igual que en el procedimiento anterior, pero con la ventaja de disponer de la sintaxis para futuras operaciones.

 


Editar y otros procesos usuales con datos en SPSS.3

Þ Calculemos ahora la edad que tienen los pacientes cuando fueron incluidos en el estudio. Disponemos de dos variables con formato fecha, a saber, f_nacim (fecha de nacimiento) y f_inclus (fecha de inclusión); parece lógico pensar que la resta de ambas nos proporcionará la edad de los pacientes.  TransformaràCalcular y la siguiente expresión numérica:

 

calcular_variables_destino_SPSS.jpg

 

Señalando "pegar" veremos la sintaxis de este procedimiento:

COMPUTE edad = CTIME.DAYS(f_inclus - f_nacim) / 365.25

EXECUTE

Picamos en bioestadistica_medicos_SPSS/boton_variables_SPSS y aparece la nueva variable edad, pero lo que nosotros necesitamos es verla de modo que la información que nos proporcione sean los años cumplidos, para ello utilizamos el operador TRUNC antecediendo a la expresión numérica anterior, esto es:

 

COMPUTE edad = TRUNC (CTIME.DAYS(f_inclus - f_nacim) / 365.25)

EXECUTE

 

Y obtengo la variable años cumplidos, de que he de definir sus propiedades, etiqueta, etc.

 

Veamos otro ejemplo de la utilidad de la opción "CALCULAR". Creemos la variable hipertensíón partiendo del concepto de que serán tipificados como hipertensos aquellos pacientes con una tensión sistólica mayor de 140 y/o una diastólica mayor de 90. De nuevo TransformaràCalcularà ...à expresión numérica que permita excluir a aquellos pacientes que no cumplen la condición de hipertensos, esto es:

NOT (pad_ini < 90 AND pas_ini < 140).

 

bioestadistica_medicos_SPSS/expresion_numerica_SPSS

 

Si pico en "aceptar" ya dispongo de una nueva variable con resultados 0 (no hta) y 1(hta), pero hagámoslo usando sintaxis y marquemos "pegar" primero, obtengo el siguiente comando:

 

COMPUTE hta = NOT (pad_ini < 90 AND pas_ini < 140)

VARIABLE LABELS hta 'hipertension'

EXECUTE

 

Usaré LIST pad_ini pas_ini hta para conseguir un listado donde verificar que la recodificación está correcta.

 

Pico en bioestadistica_medicos_SPSS/boton_variables_SPSS y me aparece ya la variable hta con estos valores, 0 y 1, no hta y hta respectivamente. Iré, como siempre, a la vista de variables para colocar la etiqueta y dar valores a la variable.


RECODIFICAR (RECODE)

 

A veces es necesario cambiar los valores que hemos asignado a cada una de las posibilidades que toma una variable, por meras necesidades para el cálculo; otras es necesario por ejemplo obtener estratos o categorías dentro de una variable que es de tipo cuantitativo continuo, y se consigue mediante el procedimiento de recodificación de las variables. Los valores de la nueva variable (la recodificada) han de tener el mismo formato que los de la variable de la que proceden.

 

Þ Existen varias formas de recodificar, a saber:

            1. En la misma variable

            2. En distinta variable

            3. Recodificación automática

 

En la R. en la misma variable, se sustituye la antigua por la nueva obtenida; si recodifico en distinta variable, conservo la antigua y añado la nueva (esto es lo más aconsejable porque de haber algún error, no pierdo los datos iniciales). En la R. automática el programa asigna, él solo, un valor a cada uno de las posibilidades que puede adoptar cada variable.

Para acceder al menú de recodificación:

 

Transformarà Recodificarà En distintas variables

 

A. Recodificación de una variable continua:

Supongamos que partiendo de nuestra base de ejemplo, queremos recodificar la variable pas_ini (presión arterial sistólica inicial), que viene expresada de modo continuo, en cinco categorías, las siguientes:

 

  • pas < 100
  • pas entre 100 y 110
  • pas entre 110 y 120
  • pas entre 120 y 130
  • pas > 130

 

El procedimiento seria el que sigue: primero TransformaràRecodificaràEn distintas variables, e incluyo en la caja de la izquierda la variable a recodificar (pas_ini). A la derecha la "variable de resultado" que es la nueva que voy a obtener por categorías y que llamare pasini_r y debajo escribo la etiqueta, por si se me olvida que he querido hace "presión sistólica inicial por categorías".

 

bioestadistica_medicos_SPSS/transformar_recodificar_variables_SPSS


Editar y otros procesos usuales con datos en SPSS.4

Una vez que la variable está renombrada, pasamos a picar en "valores antiguos y nuevos" apareciendo entonces una nueva ventana que nos permite seleccionar las características de cada categoría a la izquierda (valores antiguos) y le asignamos a cada categoría un valor numérico (apúntelo en hoja aparte, luego hará falta) que introducimos en la casilla "valor". Tras introducir cada valor picamos en "añadir" y se van incorporando las nuevas categorías a la caja que existe abajo en la columna de la derecha.

 

bioestadistica_medicos_SPSS/valor_valores_SPSS

 

Notad que los intervalos que hemos creado comparten los valores extremos, por ejemplo el valor 110 aparentemente pudiera estar comprendido entre 100-110 o bien entre 110-120; cuando estamos recodificando una variable continua el programa asigna por defecto este valor extremo al primer intervalo que la contiene, por tanto el valor 110 pertenece y es analizado realmente en el estrato 100-110.

 

Vemos como ahora a cada "estrato" o categoría de la variable le corresponde un valor (en este caso de 0 a 4) y hemos de anotarlos porque luego, en la vista de variables de spss podemos decirle con texto, para mayor claridad a que rango de valores de tensión arterial corresponde cada uno de estos valores.

Recodificada la variable obtendríamos algo así en el editor de datos:

 

bioestadistica_medicos_SPSS/variable_recodificada_SPSS

 

Nos vamos a la vista de variables y con nuestra "chuleta" en la mano acudimos a la variable pasini_r y en concreto picamos en la celda correspondiente a "valores" de modo que aparece esta venta:

 

bioestadistica_medicos_SPSS/valores_etiquetas_de_valor_SPSS

 

Introducimos los valores (de 0 a 4) en la casilla "valor" y su significado en la zona de "etiqueta de valor", así:

 

bioestadistica_medicos_SPSS/etiquetas_de_valor_SPSS_5

 

Tras haber hecho esto, vemos como se transforma la columna de la variable pasini_r del siguiente modo:

 

bioestadistica_medicos_SPSS/transformar_columnas_variables_SPSS

 

Recurriendo de nuevo a la sintaxis, además del modo "menús" que es el que hemos usado antes, podríamos haber hecho lo siguiente:

 

1. Parto de la ventana de recodificación:

 

bioestadistica_medicos_SPSS/ventana_recodificacion_SPSS

 

2. Pico en "pegar" y obtengo el editor de sintaxis con los comandos:

 

RECODE

  pas_ini

  (Lowest thru 100=0)  (100 thru 110=1)  (110 thru 120=2)  (120 thru 130=3)

  (130 thru Highest=4)  INTO  pasini_r .

EXECUTE

 


Editar y otros procesos usuales con datos en SPSS.5


Y ahora, picando en bioestadistica_medicos_SPSS/boton_variables_SPSS obtengo la nueva variable, pasini_r, al igual que si lo hubiera hecho desde los menus, pero con las ventajas de conservar la sintaxis.

Para comprobar que se ha codificado bien la variable listamos (desde la ventana de sintaxis) usando el comando LIST pas_fin pasfin_r. bioestadistica_medicos_SPSS/boton_variables_SPSS 

 

 

B. Recodificación de una variable cuantitativa discreta

 

Disponemos de la variable ncigarr que hace referencia al número de cigarrillos/día que consume cada paciente de la base de datos y, se trata, obviamente, de una variable discreta que no toma valores entre números enteros.

Queremos recodificar la variable cigarrillos (ncigarr) en la variable nivel de tabaquismo (nueva variable, "nivtab") de modo que se establezcan los intervalos siguientes: 0=0; 1-5= 1; 6-10=2; 10-15=3; 16-20=4 ; >21=5.

 


Transformar
àRecodificarà En distintas variablesà


 

bioestadistica_medicos_SPSS/transformar_recodificar_distintas_variables_SPSS

 


Nos vamos a valores antiguos y nuevos y especificamos...


 

bioestadistica_medicos_SPSS/valores_antiguos_valores_nuevos

 


Como vemos, al tratarse de una variable discreta, los intervalos no tienen solapamiento en los extremos, y los valores de dichos extremos quedan contenidos sólo en uno de dichos estratos.

Picamos en "continuar"à "pegar" y obtenemos la sintaxis:

 

RECODE

  ncigarr

  (0=0)  (1 thru 5=1)  (6 thru 10=2)  (11 thru 15=3)  (16 thru 20=4)  (21

  thru Highest=5)  INTO  nivtab .

VARIABLE LABELS nivtab 'tabaquismo'.

EXECUTE

 

Ejecutamos bioestadistica_medicos_SPSS/boton_variables_SPSS y obtendremos la nueva variable nivtab que toma valores entre 0 y 5. Nos vamos a la vista de variables y asignamos valores, por ejemplo:


0
à No fumador. 1à Fumador leve. 2à Fumador moderado. 3à Fumador severo. 4à Fumador muy severo, quedando así caracterizada la variable.


Como siempre, puedo usar el comando LIST para verificar que la recodificación ha sido correcta.


Si quiero tener una variable que me indique simplemente si son o no fumadores, puedo recodificar la variable nivtab de modo que aquellos que tomaban el valor 0 sean tipificados como no fumadores y los que tomen el valor >0 como fumadores...

 


C. Recodificación automática:

 

El procedimiento de recodificación automática también puede ser bastante útil. Supongamos una variable que puede adoptar 12 valores distintos, entonces en lugar de, manualmente, asignar un valor a cada unos de ellos, el programa puede hacer este trabajo por nosotros. Si tenemos una variable como puede ser "provincia de nacimiento" no he de asignar un valor numérico a cada provincia, sino que mediante el procedimiento Transformarà Recodificación automática entro en la ventana


 

bioestadistica_medicos_SPSS/recodificacion_automatica_SPSS

 


y no tengo más que introducir la variable que quiero recodificar en el cajón de la derecha y posteriormente pulsar aceptar. El programa asignará un valor numérico a cada provincia y nos dará una salida de resultados informándonos de cual ha asignado a cada una de ellas. Este procedimiento es útil con las variables de tipo cadena (texto libre) como vemos.


Editar y otros procesos usuales con datos en SPSS.6

ORDENAR CASOS

 

Para ordenar los casos basándonos en el contenido de alguna variable elegimos la opción DatosàOrdenar casos, apareciendo el cuadro de diálogo siguiente:

 

bioestadistica_medicos_SPSS/datos_ordenar_casos_SPSS

 


A continuación pulsamos sobre aceptar y los casos quedarán ordenados siguiendo el criterio que hayamos indicado, en nuestro caso, la clave asignada a cada uno de los casos, concretamente en orden ascendente.

 


SELECCIONAR CASOS

 

Cuando iniciamos el análisis, éste puede realizarse sobre el total de datos de la base o bien sobre un subgrupo de la misma mediante el proceso de "seleccionar casos" que indicará al programa realizar los cálculos sólo sobre los datos seleccionados, siendo el resto, bien eliminados, bien filtrados según le indiquemos.

 

Por tanto, el procedimiento permite "seleccionar" los casos según una determinada condición lógica según su orden en el archivo o de forma aleatoria.

 

Volviendo al fichero de ejemplo, supongamos que queremos realizar el análisis estadístico exclusivamente sobre las mujeres de la base de datos. En este caso iríamos a "DatosàSeleccionar casosà si se satisface la condiciónà... y nos aparece la siguiente pantalla:


 

bioestadistica_medicos_SPSS/datos_seleccionar_casos_SPSS

 


En la caja de la izquierda vuelven a encontrarse las variables de que consta nuestra base y, el criterio de selección para el filtraje de datos, lo introducimos de acuerdo a nuestra necesidad mediante las opciones que se despliegan en la porción derecha de la caja. En nuestro caso la variable sexo la habíamos codificado de tal modo que asignamos el valor 0 a los varones y 1 a las mujeres. Picamos en "si se satisface la condición" y explicitamos que se seleccionen aquellos casos en los que la variable sexo toma el valor 1 (seleccionamos pues, solo mujeres).


 

bioestadistica_medicos_SPSS/si_se_satisface_la_condicion_SPSS

 


Picamos en "continuar" y observamos que en el editor de datos aparecen "tachados" con una línea oblicua los datos que corresponden a varones, esto es, aquellos que no serán analizados. Por defecto no se eliminan los datos no seleccionados sino que son filtrados, salvo indicación expresa de eliminarlos; ahora, cualquier cálculo que realicemos se hará sobre los datos seleccionados, esto es, sólo mujeres. Este es el modo de hacerlo a través de los menús del programa.

 

Cada vez que realicemos una selección de datos, SPSS crea una variable nueva (filter_$) que toma dos únicos valores (0 y 1) que corresponden a  no seleccionados y seleccionados respectivamente. Podemos cambiar el nombre a esta variable y más tarde utilizarla incorporándola al campo "usar variable de filtro".

Hagámoslo usando la sintaxis: Continuarà Pegarà

 

USE ALL.

COMPUTE filter_$=(sexo = 1).

VARIABLE LABEL filter_$ 'sexo = 1 (FILTER)'.

VALUE LABELS filter_$  0 'No seleccionado' 1 'Seleccionado'.

FORMAT filter_$ (f1.0).

FILTER BY filter_$.

EXECUTE

 

bioestadistica_medicos_SPSS/boton_variables_SPSS y observo el mismo resultado, los hombres filtrados (líneas oblicuas sobre los casos) y el análisis ulterior se restringirá a las mujeres.

En la ventana de sintaxis podemos quitar directamente el Filtro, con la expresión:

FILTER OFF.  bioestadistica_medicos_SPSS/boton_variables_SPSS  o bien usamos el menú del editor de datos:

 

Datosà Seleccionar casosàtodos los casosàaceptar.