Introducción al STATA 7.0: Creación y manejo de información estadística Juan Manuel García C. Sintaxis básica: [by varlist:] command [varlist] [=exp] [if exp] [in range] [weight] Operadores: Aritméticos * Multiplicación / División ^ Potencia
Lógicos ~ No | O &Y
De relaciones >= Mayor o igual <= Menor o igual == Igual ~= No igual
1.Crear y guardar bases de datos
set mem: fija el tamaño de la memoria (para abrir bases grandes) set mem 16m
edit: permite introducir datos y modificar información ya existente a través del editor. edit [varlist] [if exp] [in range] [,nolabel]
describe: muestra un resumen del contenido de la base de datos describe [varlist]
save: guarda una base de datos save "c:\mis documentos\base1.dta", replace
2. Listado de variables y observaciones
use: abre una base de datos ya existente use "c:\mis documentos\base1.dta", clear
sort: ordena las observaciones de manera ascendente según los valores de una(s) determinada(s) variable(s). Gsort es un comando más general que el sort. sort varlist gsort [+|-] varname [[+|-] varname ...] [,generate (newvar)]
format: permite especificar el formato de visualización (display format) de una variable format varlist %fmt donde %fmt = %9.0g, %9.2f, %10s
list: permite visualizar los valores de las variables [by varlist:] list [varlist] [if exp] [in range] [, nolabel]
browse: permite visualizar los valores de las variables a través del editor
browse [varlist] [if exp] [in range] [,nolabel] 3. Creación de variables y su manejo
generate: crea una nueva variable generate [type] newvar = exp [if exp] [in range]
Principales funciones matemáticas: abs(x) - valor absoluto exp(x) - exponencial ln(x) - logaritmo natural log(x) - igual que ln(x) sqrt(x) - raíz cuadrada Números aleatorios: uniform() Genera números aleatorios distribuidos uniformemente entre [0,1] normden(z) Genera el valor de la densidad normal estándar. normden(z,s) Genera el valor de la función de densidad normal normden(z,s)= normden(z)/s si s>0 norm(z) Genera el valor de la función normal estándar acumulada
egen: extensión del comando generate. Puede generar grupos de variables según los valores de otra variable (usando la opción by). egen newvar = fcn (varlist) [if exp] [in range] [,options] donde fcn = (r)sum, (r)mean, (r)max, (r)min Opciones: by (varlist)
label: permite etiquetar las variables y sus valores label variable varname "label" (etiqueta una variable) label define lblname # "label" [# "label" ...] [, add modify] (define etiquetas para los valores de una variable) label values varname lblname(asigna etiquetas a los valores de una variable) label list (lista las etiquetas existentes)
replace: cambia el contenido de una variable existente replace oldvar = exp [if exp] [in range]
rename: cambia el nombre de una variable existente rename old_varname new_varname
recode: permite recodificar los valores de una variable existente recode varname rule [rule ...] [if exp] [in range]
drop: elimina variables u observaciones de la base de datos drop varlist drop if exp [in range]
keep: especifica las variables u observaciones que se desean mantener keep varlist keep if exp [in range]
clear: borra todo lo que está en la memoria (es equivalente a reiniciar Stata) 4. Generación de resultados a partir de una base de datos
summarize: devuelve diversos estadísticos sobre una variable [by varlist:] summarize [varlist] [weight] [if exp] [in range]
tabulate: genera frecuencias de una sola variable y tablas cruzadas de dos variables [by varlist:] tabulate varname [weight] [if exp] [in range] [, nolabel] [by varlist:] tabulate varname1 varname2 [weight] [if exp] [in range] [, column row nofreq] Opciones: col: muestra los totales por columna row: muestra los totales por fila nofreq: se usa con col o row. Muestra los porcentajes respecto del total. Permite generar variables dicotómicas: tab varname, g(dummyname)
table: genera tablas de estadísticas table rowvar [colvar [supercolvar]] [weight] [if exp] [in range] [, contents(clist) by (superrow_varlist) col row format(%fmt) center] donde clist = freq, [sum, mean, varname, sd, max, min] varname .
ttest: hace un test de igualdad de las medias de una o más variables. - Si la media es igual a un valor determinado ttest varname = # [if exp] [in range] [, level(#)] - Si las medias de dos variabnles son iguales ttest varname1 = varname2 [if exp] [in range] - Si las medias de una misma variable son distintas según grupos de observaciones ttest varname [if exp] [in range], by(groupvar) [level(#)] Opciones: level: especifica la probabilidad de para calcular el intervalo de confianza.
correlate: devuelve la matriz de correlaciones de las variables especificadas correlate [varlist] [if exp] [in range] pwcorr [varlist] [if exp] [in range]
collapse: convierte la información en una base de datos de medias, sumas y medianas collapse [(stat) varlist [[(stat)] …] [weight] [if exp] [in range] [, by(varlist)] donde stat = mean, sum, median, sd, max, min
5. Análisis gráfico
graph: opcion para graficos más complejos [by varlist:] graph [varlist] [weight] [if exp][in range]graph_type common_options sa]
Tipos de gráfico: twoway Gráfico de dispersión en dos direcciones, por defecto. histogram Histograma. Opciones: bin(#) especifica el número de intervalos; normal: ajusta una distribución normal. Opciones comunes: c(l) Conecta con línea los valores graficados c(m) Conecta las bandas de medias usando lineas verticales s(.) Especifica que no se use conectores. sa(name) Guarda el gráfico con un nombre determinado t1title("text") Título principal del gráfico b1title("text") Título del eje x b2title("text") Título del eje y xscale(#[,]#) Escala del eje x yscale(#[,]#) Escala del eje y
kdensity: Calcula la función de densidad de Kernel (no paramétrica) de una variable kdensity varname [weight] [if exp] [in range] [, nograph generate(newvarx newvard) n(#) at(varx) normal] Opciones: at(varx) Utiliza los valores de una variable determinada para estimar la densidad.
6. Indicadores de pobreza y desigualdad poverty: calcula una serie de indicadores de pobreza basados en la distribución de una determinada variable (ingreso) poverty varname [if exp] [in range] [fweight] [, line(#) gen(newvarname) all]
Opciones: line(#): permite establecer el valor de la línea de pobreza all: calcula y reporta todos los estadísticos de pobreza, tales como: - Tasa de pobreza - Brecha de pobreza agregada (valor) - Tasa de brecha de pobreza - Los índices de Foster, Greer and Thorbecke con parámetros 0.5, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, y 5
lorenz: grafica la curva de Lorenz de una variable lorenz varname [if exp] [in range] [fweight]
inequal: calcula indicadores de desigualdad de una variable específica inequal varname [if exp] [in range] [fweight] Permite obtener: Coeficiente de variación: desviación estándar entre la media Desviación estándar de los logaritmos Indice de Gini
xtile: genera un numero determinado de cuantiles a partir de los valores de una variable. También pude generar cuantiles a partir de los puntos de corte dados por los valores de otra variable. Solo acepta fweights xtile newvar= exp [weight] [if exp] [in range][, nquantiles(#) | cutpoints(varname)]
Opciones: nq (#): Especifica el número de cuantiles cut(varname): genera una variable con los valores de los puntos de corte. •
Análisis de datos de encuestas: La familia de comandos svy. STATA tiene una serie de comandos para el análisis de datos provenientes de encuestas complejas (Survey data) los cuales se conocen como svy commands. Los svy commands permiten realizar análisis que incluyen los ajustes necesarios en los errores de muestreo, de acuerdo con el diseño utilizado en la encuesta, de esta manera, con dos sencillos comandos se realizan los cálculos apropiados de manera eficiente. Esto aplica para diferentes tipos de análisis inferencial: ü Estimación (medias, proporciones, totales) ü Pruebas de hipótesis (e.g. prueba de igualdad de medias) ü Análisis de regresión (lineal y no lineal). Comando svymean svyprop
svyregr ess svylogit svytotal svyratio lincom
Descripción Estimación de la media. Estimación de una proporción
Regresión lineal Regresión logística (dicotómica) Estima totales svymlogit Regresión logística (multinomial) Estima una media de razón Estima combinaciones lineales (e.g. diferencias de medias)
- Especificación del diseño de muestreo utilizado: El diseño de muestreo complejo más común es el muestreo estratificado de conglomerados. STATA permite definir el diseño en estos términos, incluir correcciones para poblaciones finitas y especificar ponderadores. El comando utilizado para especificar el diseño es svyset. svyset [pweight=weight][, strata(varname) psu(varname) fpc(varname)] [clear(clear_options)|clear] Opciones: pweight: define el ponderador strata: define los estratos psu: define la unidad primaria de muestreo fpc: define el factor de corrección para poblaciones finitas, aplicado a las UPM’s (supone que no hay submuestreo). Se indica la variable que contiene el número de UPM’s en la población/estrato clear: permite eliminar cualquiera de las anteriores •
Cálculo De Errores Muestrales Para fines de este trabajo interesan fundamentalmente los comandos que tienen que ver con el cálculo de errores en estimaciones de medias, proporciones, razones y totales. - Estimación de una media svymean varlist [if exp][in range] by(varlist) subpop(varname) deff deft obs size Opciones: by() Permite hacer la estimación para subclases definidas por los valores de la variable que se indica (varlist) subpop(): Permite hacer subclases definidas por la variable que se indica, la cual usualmente es dummy deff: Calcula el efecto del diseño
deft: Calcula la raíz cuadrada del efecto del diseño obs: Devuelve el número de observaciones size: Estima el tamaño de la (sub)población Ejemplo (media del gasto del hogar usando la sumaria de ENAHO): svyset [pweight=factor], strata(estrato) psu(conglomerado) svymean gashog2d