miércoles, 12 de noviembre de 2014

Stata o SPSS: ¿Cuál es mejor?: Comparación en función del manejo de missing values (Segunda parte)

En el post anterior comparé Stata y SPSS en función de la familiaridad del usuario con el análisis de datos y en función del tiempo disponible para aprender uno u otro software. Debido a que el menú de SPSS es más intuitivo que el de Stata, SPSS es recomendado cuando estás iniciando en el mundo del análisis de datos. Sin embargo, si estás familiarizado con programación (escribir códigos o comandos) y tienes más experiencia en análisis de datos Stata ofrece opciones adicionales a SPSS que te ayudan a ahorrar tiempo y a tener una mejor perspectiva de tus datos. Aqui comparto una de mis opciones favoritas de Stata, la cual no está disponible en SPSS. 

La intención de este post es más que mostrar uno de los comandos para identificar la distribución de missing values (lo cual puede ser encontrado en el manual de Stata) es destacar su utilidad con un ejemplo real en el contexto de Metodología de Investigación.

1.- El manejo de los missing values. Un paso importante antes de empezar a iniciar nuestros datos es ver si nuestros datos tienen o no missing values y si tienen cómo están distribuidos en las variables. 

Supongamos que estamos interesados en analizar la relación entre Area de residencia (Urbano o Rural; variable independiente) y Estado civil (Casada, soltera y viuda; variable dependiente) en este análisis utilizaremos una tercera variable (edad, la cual será considerada variable confusora/confounding).  

Antes de pasar al patrón de missing values veamos cuántas observaciones tiene nuestro dataset/base de datos y cuántas variables, para esto usamos cualquiera de los dos siguientes códigos/comandos:

des, short
describe

Este es el resultado al usar des, short. Tenemos 35 673 personas, 3 variables y luego información acerca del tamaño del dataset. 

Este es el resultado usando describe:



Ahora la pregunta es: ¿Cómo puedo ver el número de missing values en mi dataset/base de datos? en otras palabras ¿Está completa la información de las tres variables o hay missing values?  Voy a usar el comando mdesc para averiguar esto, veamos el resultado:

Este es el resultado :


¿Qué significa este resultado? Significa que las variables Residence Area y Age tienen 3 858 missing values, es decir 3 858 personas de este dataset no tienen información en las variables Residence Area y Age. 

¿Qué implicaciones tienen los missing values para nuestro análisis? Una gran cantidad de missing values puede afectar la validez (the validity) de nuestro estudio, en otras palabras puede llevarnos a conclusiones erróneas. En este momento cabe preguntarse: ¿son esas 3 858 personas con missing values diferentes a los que no tienen missing values? ¿Esas 3 858 personas eran del área rural o eran mayoritariamente del área urbana? ¿Eran más jovenes que los que tienen información completa o eran mayores? Cuando las obsevaciones que tienen missing  values son diferentes a los que no la validez de nuestros resultados podría verse comprometida debido a sesgo de selección.

Conclusión:
  1. No basta saber únicamente el número de observaciones en nuestro dataset, sino si hay también missing values y cuáles son las variables con missing values.
  2. mdesc es una entre varias alternativas que Stata ofrece para describir la distribución de missing values.
  3. Debe encontrarse la manera de identificar si las observaciones con missing values son diferentes a la muestra de estudio. 
  4. SPSS no ofrece una opción directa que al igual que mdesc nos de la distribución de missing values.



lunes, 15 de septiembre de 2014

Recodificar una variable continua a una categórica en Stata 12

Frecuentemente tenemos variables continuas (o numéricas por ejemplo edad) en nuestro dataset y es posible que necesitemos convertir esta variable de numérica a una categórica. Antes de mostrar cómo hacer este proceso llamado recodificación me detendré un  momento para pensar por qué necesitaríamos transformar una variable númerica a una categórica? Respuestas a esta preguntan incluyen:

  1. Comparabilidad con investigaciones previas. Nuestros resultados serán comparados con otros estudios y si los otros estudios han usado la variable edad como categórica en vez de continua también nosotros debemos recodificarla.
  2. Comparar un grupo etario con otro, por ejemplo por alguna razón relacionada a nuestra investigación podríamos estar interesados en comparar las personas de 30 o más años con los de 25 años o menos y en este caso también tendríamos que recodificar la variable numérica.
Ahora voy a mostrar cómo hacer la recodificación de variables en Stata (en próximo post mostraré cómo hacerlo en SPSS). Para este fin voy a utilizar una base de datos de ejemplo disponible por Stata corp, para acceder a esta base simplemente abrimos Stata:




Luego copiamos y pegamos esta dirección: use http://www.stata-press.com/data/r12/census2.dta   y damos enter.




Una vez demos enter veremos las variables (en mi caso las variables se muestran en la esquina inferior izquierda) pero por defecto Stata muestra las variables en la esquina superior derecha.





Si bien para motivos de este post estoy usando este dataset de ejemplo, usar dataset de ejemplo acarrea el problema de que no estamos familiarizados con el dataset, no conocemos qué variables tiene? cómo están etiquetadas? qué tipo de variables son, si son numéricas o categóricas? 



Para simplificar el proceso de recodificación de la variable continua a categórica voy a usar la variable age en la base de datos de ejemplo. Primero voy a mostrar como podemos verificar qué tipo de variable vamos a usar (es continua o categórica?). Hay varias maneras de hacer esto, pero en este post voy a mostrar dos que son comunes y muy útiles:



  1. Usando el comando codebook
  2. Usando el comando list

Los comandos codebook y list nos ayudan a saber si en este dataset la variable age es continua o no. La manera de usar estos comandos es escribiendo el comando seguido por el nombre de la variable:

codebook age 

list age

Usemos el comando codebook primero:



Después de dar enter obtenemos el siguiente resultado:






¿Qué significa este resultado? Tenemos información del tipo de variable y dice que es numeric o sea continua; vemos que los valores de esta variable van de 24 a 35 y que no hay missing values en 50 observaciones (0/50) (también puedes revisar el post de noviembre de 2014 acerca de missing values) . Ojo aún no hemos iniciado la recodificación de la variable, sólo estamos verificando qué tipo de variable es age en este dataset. Si bien podríamos detenernos aqui mismo e iniciar el proceso de recodificación a continuación por motivos de usar el comando list voy a continuar "verificando" qué variable es age.


Voy a escribir list age in 1/10 ¿Por qué tengo que escribir list nombredevariable in número/número? La razón que escribo in 1/10 es para especificar que quiero ver los valores de la variable age en las primeras 10 filas de la base de datos. Si quisiera por ejemplo ver los valores de age en las filas digamos 11 al 20 tendría que escribir:


list age in 11/20




y obtenemos el siguiente resultado:





¿Cómo este resultado nos ayuda a ver qué tipo de variable es age? Al ver los valores de la variable en las primera 10 filas vemos que son números 29, luego 26, 29 otra vez, etc por lo que estoy sumado al resultado de codebook nos ayuda a ver que age es una variable continua. En la última imagen de este post vuelvo a usar el comando list para comparar una variable continua y una categórica, comparación que ayuda a habituarnos a distinguir entre estos dos tipos de variables.



Desde aqui inician los pasos para recodificar age (o cualquier otra variable continua) a categórica:



Paso 1: Este primer paso no tiene que ver con el software en si, tiene que ver con cómo queremos recodificar nuestra variable. Asumamos que estamos interesados en comparar el grupo etario menor de 25 años con 26 a más años.




Paso 2: Conozcamos el mínimo y el máximo de nuestra variable. Para esto escribimos el siguiente comando:



sum age

Veamos el resultado:






Paso 3: Escribamos el comando para recodificar la variable y generar una nueva variable (que se llamará edad) al mismo tiempo:



recode age (24/25=1 "Menor o igual a 25") (26/35=0 "Mayor o igual a 26"), gen(edad)



Paso 4: Corroboremos si la variable fue creada de acuerdo a lo que esperabamos, para esto usamos el comando tab con la nueva variable recien creada.



tab edad



Veamos el resultado:




Vemos que ahora tenemos una variable categórica en vez de una continua. Para finalizar voy a mostrar los valores de la variable original (age) y la variable nueva (edad).

list age edad in 1/10

Veamos los resultados:






En conclusión:


  1. Los comandos codebook y list nos ayudan a explorar rápidamente nuestra base de datos. Funcionan tanto para variables numéricas como categóricas.
  2. En Stata una variable numérica puede ser transformada a categórica siguiendo 4 pasos (una vez que estamos seguros que la variable original es continua).
  3. Es recomendable usar el comando tab después de finalizar la recodificación.






lunes, 8 de septiembre de 2014

Stata o SPSS... ¿Cuál es mejor? (Primera parte)

Entre los paquetes estadísticos más usados están (nombrados sin tomar en cuenta la frecuencia de su uso):

  1. SAS
  2. Stata
  3. SPSS
  4. R
  5. Epi Info

Cada software tiene sus fortalezas y sus debilidades, en este post me voy a centrar en comparar Stata y SPSS en función de los pasos para realizar una tabla 2x2 en ambos paquetes estadísticos.  

 La respuesta a cuál de estos dos softwares es mejor no es fácil, sin embargo tengo algunas observaciones que como usuario podrían contribuir a responderla: la experiencia del usuario analizando datos y el tiempo disponible para familiarizarse con el software.  La segunda parte de este post  compara Stata y SPSS en función del manejo de missing values, puedes acceder a esta segunda parte desde la sección "Accede aqui a todos los posts (mes de noviembre)"  .


Para comparar en términos de la experiencia del usuario ilustrar la comparación en este post voy a realizar una tabla de contingencia (o tabla de doble entrada) en SPSS y luego una tabla similar en Stata. Luego voy a comentar acerca del tiempo disponible para familiarizarse con el software y finalizo este post con la conclusión.

  1. Experiencia del usuario analizando datos: Si estás en las primeras etapas en el mundo del análisis de datos SPSS es el software de elección. La razón es porque tiene una interfaz amigable basada en el uso del menú. En el siguiente video muestro los pasos para realizar análisis bivariado con una tabla de doble entrada o también llamada tabla de contingencia (el análisis bivariado involucra dos variables, generalmente aunque no siempre la variable dependiente y la independiente) Para mostrar este proceso en SPSS voy a utilizar la base de datos de ejemplo llamada accidents que está en la carpeta IBM en el disco duro. Voy a construir una tabla de doble entrada (también llamada crosstabs) usando las variables gender (género) y agecat (categoría de edades).





Para continuar con la comparación veamos cómo se realizaría una tabla de doble entrada en Stata, para ilustrar este proceso voy a utilizar una de las bases de datos de ejemplo de Stata, veamos el proceso en el siguiente video:






Lo que tomó tres paso en SPSS (ir a crosstab, poner las variables en filas y columnas y seleccionar el tipo de porcentaje) se hace con un comando de cuatro palabras y una coma.

2. Tiempo para familiarizarse con el software: SPSS requiere menos tiempo para familiarizarse porque ahi está el menú para recordar donde dar click, en cambio en Stata en las primeras etapas se debe memorizar los comandos más comunes lo cual requiere tiempo.

En conclusión la respuesta a cuál es mejor depende inicialmente del nivel de experiencia del usuario y del tiempo disponible para entrenarse en el uso del software. Aunque inicialmente usé SPSS hoy por hoy me inclino por Stata debido a que tiene herramientas para lidiar con los missing values (con lo cual uno termina ahorrando mucho tiempo durante el análisis de datos) , ocupa menos espacio en el disco duro (consume menos memoria de la computadora, sus bases de datos de ejemplo están en internet no en el disco duro y sus resultados pueden ser guardados en formato txt) y finalmente debido que tenés que escribir los comandos te da la sensación de mayor control sobre lo que estás haciendo, digamos la sensación de escribir qué variables estás incluyendo en tu modelo refuerza la sensación de control.




sábado, 6 de septiembre de 2014

¿Cómo lucen nuestros en Stata datos después de digitarlos?

Una vez que terminamos la digitación de datos y exportamos la base de datos (desde Access, Epi Info, SPSS o Excel) a Stata nuestros datos lucirán así :






¿Por dónde empezar? Nuestro análisis no puede estar desvinculado de nuestra hipótesis u objetivos de investigación los cuales deben estar escritos en nuestra propuesta (protocolo) de investigación . Los siguientes pasos constituyen una guía para iniciar el análisis cuantitativo de nuestros datos, aunque los pasos son válidos para cualquier software en este post me enfocaré en Stata.

1.-¿Cuál es nuestra variable dependiente (también llamada variable resultado o Y)? Es conveniente identificar en nuestra base de datos cuál es el nombre de nuestra variable dependiente. ¿Existe en la base de datos? o debemos construirla? En caso de que ya exista debemos modificar el número categorías? Supongamos que nuestra variable dependiente es Nivel educativo de mujeres en Edad Fértil y que nosotros estamos interesados en Educación Primaria y Educación Secundaria. ¿Dónde está esta variable en nuestra base de datos? En la penúltima columna de la base de datos está la variable edu (Nivel Educativo de las Mujeres en Edad Fértil) ¿Qué tipo de variable es TotgradoMEF? Basados en la inspección del Editor de datos (primera figura) sospechamos que esta variable es continua, comprobemos nuestra presunción calculando el promedio (aunque basta con calcular el promedio para saber si es númerica o no también Stata nos da la desviación estándard , el mínimo y el máximo)





 Vemos que es una variable continua (numérica) que contiene información del total de años de estudio por cada Mujer en Edad Fértil. El mínimo es cero años y el máximo 21 años, el promedio de años de estudio es 7.2 años y la desviación estándard es 4.56 ¿Qué debemos hacer a continuación? Debido a que nuestro interés es tener una variable dependiente dicotómica (de dos categorías: Educación Primaria y Educación Secundaria) claramente debemos recodificar la variable continua para transformala a categórica. Está más allá de los objetivos de este post mostrar como se recodifica una variable.

2.-¿Cuál(es) es(son) nuestra(s) variables independientes (también llamada variable predictora/explicativa o X)? Igualmente a como identificamos la variable dependiente debemos identificar la o las variables independientes . Supongamos que en nuestra investigación las variables independientes son: religion y Edocivil (Estado civil). ¿Existen en la base de datos? Claramente en el editor de datos vemos (primera imagen) que existen. ¿Qué tipo de variable es y cuántas categorías tiene?  Para responder estas preguntas debemos hacer una frecuencia de cada una de estas variables, veamos para Religión:



Ahora veamos la frecuencia simple para Estado Civil


¿Entonces qué tipo de variables son religion y edocivil? Son variables categóricas. Dependiendo de nuestro interés es posible que necesitemos o no recodificar estas variables debido a que algunas categorías tienen relativamente pocos casos en comparación con otras, por ejemplo hay 61 observaciones en la categoría "Divorciada", esta categoría se podría fusionar con "Separada", "Viuda" y "Soltera" para crear una nueva categoría llamada "Sin Pareja", pero va más allá de los objetivos de este post mostrar cómo se recodifica una variable.

En conclusión:
  • Identifiquemos las variables dependiente e independientes.
  • Realicemos frecuencia simple (para variables categóricas) o promedio (para variables numéricas) para evaluar si es necesario modificar las variables (por ejemplo transformar una variable continua a categórica o recodificar las variables),


jueves, 14 de agosto de 2014

Gestor de referencias bibligráficas

Durante la etapa de revisión bibliográfica encontramos muchos papers que podrían ser útiles para nuestra investigación por lo que necesitamos bajarlos, archivarlos ordenadamente para luego leerlos y seleccionar los papers que mejor nos ayuden a conocer nuestro tema o sustentar nuestras hipótesis de investigación. 

La opción tradicional de ordernar los papers en carpetas tiene las desventajas que no permite tener una descripción del archivo además que no hay manera de vincular el archivo a un documento en Microsoft Word y usarlo como referencia en nuestro paper. Los gestores bibliógraficos como Endnote, paperpile, Zotero, Refworks y otros llenan este vacio permitiéndonos ordenar y vincular los papers a nuestro documento en creación pudiendo elegir de estilos de citación previamente creados o incluso crear uno.

Debido a que Endnote es uno de los software que se puede vincular con las búsquedas de Google Scholar en  este post mostraré los pasos para poder configurar este vinculo, pero antes muestro una captura de pantalla de como luce Google Scholar antes de configurar el vinculo con Endnote:



1.- Primer paso: Con la cuenta de google abierta ir a Google Scholar y dar click en settings.



2.- Segundo paso: Ir hacia abajo a la sección Bibliography Manager y dar click en la opción "Show links to import citations into" y seleccionar de entre las opciones Endnote, luego dar click para volver a la pantalla original de Google Scholar.



Ahora en las búsquedas aparecerá  la opción "Import into Endnote":

Le damos click en Import to Endnote y un archivo en formato Endnote conteniendo la información de referencia del paper seleccionado se descargará.














jueves, 7 de agosto de 2014

Revisión bibliográfica

En las etapas iniciales de la investigación, cuando nos estamos familiarizando con nuestro tópico de interés la revisión bibliógrafica es de gran ayuda. No es nada nuevo que con la facilidad de difusión de conocimientos que brinda el internet la revisión es casi totalmente realizada online y es aqui donde surge el tema de este breve post: ¿Qué leer? 

Para responder esta pregunta debemos preguntarnos primero ¿cuál es nuestra variable dependiente y cuál nuestra variable independiente? Para ilustrar mi punto voy  a retomar el ejemplo clásico de fumado (variable independiente) y cáncer de pulmón (variable dependiente).

Supongamos alguien quien está en la primera etapa de su investigación y aun no delimita su tema está interesado en fumado y cáncer de pulmón y quiere encontrar qué información se ha publicado al respecto? Utilizando como fuente de información Google Scholar (o Google Académico en español da resultados de búsqueda más orientados a lo académico/científico que Google) voy a mostrar los primeros resultados cuando sólo se utiliza la variable independiente como criterio de búsqueda:



Y ahora la pregunta qué tan útiles son estos resultados para alguien que quiere estudiar Fumado y Cáncer de pulmón? El primer resultado es acerca de fumado (la variable independiente) e individualización del tratamiento (esta no es nuestra variable dependiente); el segundo resultado es acerca de las Consecuencias de salud (variable dependiente) del fumado (nuestra variable independiente). El tercer resultado es acerca del Abordaje de Etapas de Cambio (esta es la variable independiente de este paper, pero no es nuestra variable independiente) para ayudar a pacientes a Cambio de comportamiento (variable dependiente, pero no es nuestra variable dependiente). El último resultado de este ejemplo es acerca de la mortalidad atribuida al fumado (nuestra variable independiente) y los Años de Vida Potencialmente Perdidos (variable dependiente número 1, no es nuestra variable dependiente) y su Costo Económico (variable dependiente número dos, tampoco es nuestra variable dependiente).  En cada paper que leamos debemos indentificar la variable dependiente y la independiente. ¿Qué se puede leer de esta primera búsqueda (tomando en cuenta que estamos interesados en fumado y cáncer de pulmón)? Realmente ninguno de estos papers ayudarían a darnos un mejor conocimiento sobre nuestro tema de interés.


Ahora voy a realizar una búsqueda usando la variable independiente y dependiente del ejemplo y mostraré dos resultados:


En este caso obtengo este paper (solo muestro este ejemplo para ilustrar) que es acerca de Las esposas de los fumadores asiduos (variable independiente) tienen alto riesgo de Cáncer de Pulmón (nuestra variable dependiente) en Japón. Este paper podría ser una buena opción de lectura, aunque si encontraramos uno de un contexto más cercano al de latinoamerica sería mejor. La revisión bibliográfica nos ayuda a delimitar nuestro tema, estamos interesados en Fumado y Cáncer de Pulmón, pero en qué población? en mujeres adultas? en mujeres solteras? en hombres adultos? en adolescentes?. Este paper estudia la relación de Fumado y Cáncer de Pulmón pero en esposas no fumadoras de fumadores asiduos, un subgrupo poblacional bien específico.

El otro resultado que muestro es este:




Este paper es acerca de Cáncer de pulmón (variable dependiente) y fumado pasivo (variable independiente). Este paper también sería una buena opción de lectura. Algunas claves para delimitar el tema surgen de este resultado por ejemplo en qué tipo de fumado estamos interesados? fumado activo? fumado pasivo?

En conclusión ¿qué leer?
  1. Leer papers relacionados a nuestra variable dependiente (también llamada variable resultado o Y) y nuestra variable independiente (también llamada variable explicativa, predictiva o X).
  2. Empezar con los papers que tengan más citaciones, en la figura de abajo he dibujado un circulo para mostrar el lugar de las citaciones:
Las citaciones son un indicador del aporte cientifíco del paper al tema de estudio y en general mientras más citaciones tenga un paper indica que su difusión y aporte ha sido grande. Sin embargo, no siempre es asi y para ilustrar esto voy a poner el ejemplo de MacMahon, 1981



Si nos dejamos guiar solamente por el número de citaciones este paper que trata de la asociación entre Café y Cáncer de Páncreas sería una excelente opción para leer debido a que tiene 477 citaciones, sin embargo este paper ha sido citado como un ejemplo de sesgo de selección, no por haber contribuido con conocimiento verdadero al mundo científico.  El número de citaciones es sólo uno entre otros criterios para seleccionar qué leer. Nuestro conocimiento de Epidemiología y Metodología de Investigación nos ayuda a identificar si un paper ha sido citado por sus aportes al conocimiento científico o como un ejemplo de un estudio con una conducción y/o análisis defectuoso.

3. De preferencia leer estudios longitudinales en lugar de estudios de corte transversal. Los estudios longitudinales (cohorte) son menos susceptibles al sesgo de selección o información que los de corte transversal, además permiten establer temporalidad entre la variable independiente y la variable dependiente.