martes, 17 de noviembre de 2015

Comando egen

egen un comando muy útil para crear variables. egen o extended generate se utiliza cuando se quieren generar variables que requieren operadores matemáticos complejos: suma de una variable (no renglón a renglón sino el total), máximo, mínimo, número de casos, media, mediana, etc.

El comando egen es una extensión del comando generate . El comando egen genera variables en función de valores de otras variables.

Función general de egen: 





Ejemplos:
egen sumvar1=sum(var1) // suma de la var1
egen meanvar1=mean (var1), by (var3) // media de la variable var1 por cada var3
egen count=count(id), by(dpto) // número de casos por variable departamento

Lista de posibles opciones para egen:

count number of non missing values
diff compares variables, 1 if different, 0 otherwise
group creates a group id from a list of variables
iqr interquartile range
max Maximum value
mean mean
median median
min minimum value
pctile percentile
rank rank
sd standard deviation
sum sums


Es importante saber que la aplicación de este comando desordena el fichero de datos.

db egen

Anotaciones: _N y _n

Existen dos anotaciones de STATA de interés para la construcción de una variable, que son _n y _N.
  • _n enumera cada observación en base al total de observaciones que tenemos en la base. _n es 1 en la primera observación, 2 en la segunda observación, 3 en la tercera observación y asi sucesivamente.
  • _N le da el valor del total de observaciones que tiene la base.

Ejemplo de estas dos anotaciones:

input score group
72 1
84 2
76 1
89 3
82 2
90 1
85 1
end
generate id = _n
generate nt = _N
list
         score      group    id         nt
  1.        72          1          1          7 
  2.        84          2          2          7 
  3.        76          1          3          7 
  4.        89          3          4          7 
  5.        82          2          5          7 
  6.        90          1          6          7 
  7.        85          1          7          7


Como se puede ver el id variable contiene el número de observación que va desde 1 a 7 y nt es el número total de observaciones, que es 7.

lunes, 2 de noviembre de 2015

Combinando Bases de Datos (Fusión de Ficheros)

Muchas veces es necesario combinar dos o más bases de datos para formar una sola. Para ello se pueden utilizar los comandos merge o append. merge une dos bases de datos utilizando una variable en común. Las dos bases de datos deben estar en formato .dta (Stata) y las observaciones deben estar ordenas (utilizando sort) de acuerdo a la variable que sirve como referencia. El objetivo de merge es anexar variables no observaciones.

En el caso de append sucede lo contrario, lo que se busca es anexar observaciones (por lo general) a una misma serie de variables. La sintaxis es mucho más sencilla pues solo se tiene que nombrar la base de datos que se desea anexar. Por ejemplo:  append using ndatos

------------------------------------------------------------------

Comando append

El comando append combina bases de datos “verticalmente”. Se carga una base de datos a la memoria y la otra se “pega” al final de la que está en memoria. La base de datos en la memoria se llama “master” y la que se va a pegar se llama “using” o datos a usar.

Comando append con bases de datos con diferentes variables

Cuando las bases no contienen exactamente las mismas variables, el comando append pega las observaciones adecuadamente y crea valores inexistentes (missing values) para las que no están en ambas bases de datos.


Master y Using






























Combinando datos: merge

“merge” combina dos bases de datos “horizontalmente”, basándose en una variable(s) identificadora de las observaciones.
  • Varias formas de combinar dos bases de datos de esta manera: 1:1 , 1:m , m:1 y m:m (la m es de múltiple).
  • Útiles solo dos: 1:1 y m:1
  • En esta notación el primer término se refiere a la base de datos master y la segunda a using.

1:1 el identificador de la observación en ambas bases de datos es único (ej. en una base tenemos los nombres de las personas con su edad y en la otra tenemos el nombre con la estatura. Solo tenemos un nombre por persona en cada base de datos)

m:1 el identificador es único para las observaciones en la base de datos using, pero no necesariamente único en la master (ej. en una tenemos varias observaciones por persona (incluyendo región) y en la otra tenemos variables a nivel de región, PIB).
  • Cada vez que se utiliza el comando merge, en la base de datos resultante se crea una nueva variable
  • La variable creada por el comando merge se llama “_merge” y puede tomar tres códigos (números)
  • Los números nos indican si el id se encontró en una sola de las bases de datos (y si es así en cuál), o en ambas.










Para continuar entendiendo los comandos merge y append los invito a la lectura de estas presentaciones, una de ellas en ingles y otra en español. 

Se presentan ambos comandos con ejemplos practicos para entender la potencialidad de cada comando.

domingo, 1 de noviembre de 2015

Otra biblografía...

*Otra de la biblografia posible para la practica de STATA es posible gracias a las publicaciones de clases de Esteban Calvo: Introduccion a Stata.

Esteban Calvo

Profesor del Instituto de Políticas Públicas de la Universidad Diego Portales, Profesor Adjunto de Epidemiología en el Mailman School of Public Health de Columbia University y estoy afiliado al Robert N. Butler Columbia Aging Center. También he sido Profesor de Sociología de la Universidad Católica de Chile  y consultor de Harvard University, Naciones Unidas, Gobierno de Chile y Center for Retirement Research.

http://www.estebancalvo.com/es/difusion_/recursos/


Se agrega esta biblografia a las ya mencionadas en otro post:

Fuentes y referencias biblográficas: 
Es una página web del curso de STATA impartido en la Universidad Autónoma de Barcelona, España. Pueden encontrar materiales y ejercicios (la mayoría en español e inglés).


Gestión de base de datos: tipos de datos, string

Variables “string”

Para crear una variable que contenga palabras se utiliza el siguiente comando:

generate str8 pais = ” ”

El límite máximo es de 244 caracteres. En este caso, la variable de tipo string amplía la cantidad de caracteres de acuerdo a los datos que almacena.

replace pais = Argentina

Contenido posibles de un string

Datos identificatorios: algunas variables de tipo string contienen identificadores para las observaciones.
  • Esta información no puede ser utilizada directamente en el análisis estadístico.

Datos de categorías: por ejemplo un texto que indica el nombre del país. En este caso la información si podría usarse para cálculos estadísticos. Para esto debe transformarse en numérica de la siguiente manera:

encode paises, gen(npaises)
  • Este comando crea la variable npaises que es de tipo numérica (long), pero que contiene una etiqueta para cada valor numérico distinto de acuerdo a la palabra presente en la variable país.

Datos numéricos en un string: por alguna razón, un string podría estar almacenando número.
  • Si queremos crear una variable numérica a partir de esa información, debemos hacer:

generate numvar = real(stringvar)
  • El paso inverso también es posible de la siguiente manera:

generate stringvar = string(numvar)