Está en la página 1de 30

Estadística Aplicada

STATA – Variables
• Tipos de variables y missings
• explorar y validar codebook | tabulate | summarize | inspect | compare
• Crear y modificar variables
• Crear gen | egen | replace | rename
• Funciones _n | inlist() | inrange() | total() | rowtotal()
• Etiquetar label var | label define | label values | label list
• Comandos y funciones
• variables categóricas decode | encode | recode
• variables textuales split | tostring | destring
• funciones textuales concat() | substr() | real()
• percentiles pctile | xtile
Tipos de variables y missings
• Según los valores que pueden contener, las variables se clasifican en:
• Núméricas [en negro]:
• Continuos: int/long/float/double
• Categóricos: int
• Binarios: byte
• Textuales [en rojo]: str#

• Existen números disfrazados de textos [en azul], son variables numéricas con
etiquetas

• Según el tipo de variable, Stata indica los valores faltantes (missings) como:
• Números un punto -> .
• Textos vacío -> “”
2
Explorar y validar variables
• Describe en resumen el contenido de variables
codebook [varlist] [if] [in] [, options]

• (discretas) Tabla de frecuencias en la zona comandos


[bys varlist:] tabulate varname [if] [in] [weight] [, options]

• (continuas) Resumen de estadísticos en un cuadro


[bys varlist:] summarize [varlist] [if] [in] [weight] [, options] r()

• (numéricas) Mini histograma y tipos de valores de la variable


[bys varlist:] inspect [varlist] [if] [in] r()

• (numéricas) Compara los valores de dos variables


[bys varlist:] compare varname1 varname2 [if] [in]
3
Crear y modificar variables
• Crea una variable
[bys varlist:] generate [type] newvar =exp [if] [in]
[bys varlist:] egen [type] newvar = function(arguments) [if] [in] [, options]
• Para cambiar el tipo numérico por defecto: set type {float|double} [, perm]
• Funciones para gen (help function) y para egen (help egen). [bys varlist] para algunas funciones:
• gen: [bys] sum() _n _N inlist() inrange() [no bys] substr() real() floor() runiform() rnormal() invnormal() round() ln()
• egen: [bys] total() count() mean() [no bys] group() std() concat() rowtotal() rowmean() y otras row

• Reemplaza el contenido de una variable existente


[bys varlist:] replace oldvar =exp [if] [in]

• Cambia el nombre de una variable rename old_varname new_varname


• Para cambiar todas a NOMBRE|nombre|Nombre: rename _all , {upper|lower|proper}

4
Ejemplos - tipos y vacíos
• Ejemplo 1a – Cree las siguientes variables:
[type] =exp
• ejem1 str4 vacío
• ejem2 byte vacío
• ejem3 float log del ingreso por hora en ocupación principal
• ejem4 double log del ingreso por hora en ocupación principal
Note la diferencia de precisión (número de decimales) entre las variables ejem3 y ejem4
• Cambie la variable numérica por defecto a double (permanentemente)
• ejem5 1 si trabaja más de 40 horas en su ocupación principal 0 de otro modo

• Ejemplo 1b – Realice las siguientes modificaciones:


• Reemplace el contenido de ejem1 por: hola
• Reemplace el contenido de ejem2 por: un número aleatorio Note el mensaje en zona resultados
• Para fijar los números aleatorios que se obtienen: set seed #
• Cambie el nombre de la variable ejem5 por ejem6
• Borre todas las variables que creó
5
Ejemplos – in, if y condiciones
• [in] e [if] restringen las observaciones modificadas
• [=condición] crea dummys: 1 si la condición es verdadera 0 si es falsa
Note cuándo se usa = (para expresiones: algo=exp) e == (para condiciones: algo==algo)
Pruebe las funciones inlist() e inrange() al plantear las condiciones

• Ejemplo 2 – Cree las siguientes variables:

=exp | =condición [in] [if]


• ejem1 log ingreso por hora en ocupación principal (ingxh1) obs 1 a 25
• ejem2 1 si es mujer y de la costa, 0 de otro modo
• ejem3 log ingreso por hora en ocupación secundaria (ingxh2) mujer y (selva o sierra)
Preste atención a lo que ocurre con los missings en ejem4 y ejem5
• ejem4 1 si ingxh2 es mayor a 5, 0 de otro modo mujer y (selva o sierra)
• ejem5 1 si ingxh1 o ingxh2 es mayor a 5, 0 de otro modo mujer y (selva o sierra)
• Borre todas las variables que creó
6
Ejemplos – sumar, contar e identificar
• Ejemplo 3 – Cree o reemplace el valor en las siguientes variables
[bys] =exp
• nobs total de observaciones
• iden números correlativos para todas las observaciones
• horas_sem horas trabajadas a la semana (ocup principal y secundaria)
• muj_sec identificadores por sexo y sector: 1 si es hombre informal, 2 hombre
formal, 3 mujer informal y 4 mujer formal
• nobs_ms muj_sec número de individuos en cada grupo
• iden_ms muj_sec identificadores de individuo para cada grupo definido
• horas_tot total de horas trabajadas por todos los individuos de la muestra
• horas_acu suma acumulada de las horas trabajadas que empiece por los
individuos que trabajaron menos horas
• horas_acu muj_sec suma acumulada por grupo de las horas trabajadas que empiece
por los individuos que trabajaron menos horas en cada grupo
• horas_tot muj_sec total de horas trabajadas por todos los individuos en cada grupo

7
Etiquetas de variable y de valores
• Asocia una etiqueta a la variable
label variable varname ["label"]
• Asocia etiquetas a los valores de una variable
label define lblname # "label" [# "label" ...]
label values varlist lblname
• Definir las etiquetas no basta (define), no olvidar asignarlas (values)
• Para listar todas las etiquetas en memoria: label list o borrar alguna: label drop lblname

• Ejemplo 4 – Cree y etiquete la variable region


• La etiqueta de la variable es “Región natural”
label variable region “Región natural“
• La etiqueta de valores es Costa para 1, Sierra para 2, Selva para 3
label define etiquetita 1 “Costa" 2 “Sierra“ 3 “Selva”
label values region etiquetita
8
Comandos para variables categóricas
• Transforma variable numérica con etiquetas a una nueva variable textual (newvar)
decode varname [if] [in] , generate(newvar)
decode dominio, gen(zona)

• Transforma variable textual en una nueva variable numérica con etiquetas


encode varname [if] [in] , generate(newvar)
encode dpto, gen(departamento)

• Transforma variable numérica/categórica en una nueva variable categórica según las reglas
que uno establezca
• Prestar atención al manejo de los missings
recode varlist (erule) [(erule) ...] [if] [in] [, generate(newvar)]
recode ej1 (min/0=0 “a”) (1=1 “b”) (2 3=2 “c”) (4/max=3 “d”), g(ej2)
9
Comandos para variables textuales
• Parte una variable textual (strvar) en varias variables textuales nuevas
• destring: Transforma las variables textuales que contienen solo números en variables numéricas
• gen(ejem): Las nuevas variables se llamaran ejem1 ejem2 ejem3 …
• parse(-): El caracter - (guión) marca donde separar los textos
split strvar [if] [in] [, generate() parse() destring] split id, gen(id_) parse(-) destring

• Convierte variables numéricas en variables textuales


• Es obligatorio especificar gen() o replace
tostring varlist , {generate(newvarlist)|replace} tostring id_2, replace

• Convierte variables textuales en variables numéricas


• Es obligatorio especificar gen() o replace
• force: Si alguna observación no es un número, la convierte en missing
destring [varlist] , {generate(newvarlist)|replace} [force] destring id_2, replace
10
Funciones para variables textuales
• [egen] Concatena variables en una nueva variable textual
• punct(/): los textos unidos serán separados por / en la nueva variable
• decode: coloca etiquetas y no números al concatenar variables con etiquetas
egen newvar = concat(varlist) [, punct() decode]
egen muj_reg=concat(mujer region), decode punct(" - ")

• [gen] Extrae n2 caracteres de un string desde el caracter en la posición n1.


• Si n1 es negativo cuenta la posición desde el último caracter.
substr(string,n1,n2) substr("abcdef",-3,2) = "de“

• [gen] Transforma un string formado por caracteres numéricos en número


real(string) gen ndoc=real(substr(doc,5,.))
11
Percentiles
• Crea una variable que guarda los percentiles de otra variable
• nq(5): newvar guarda los cuatro puntos de corte que generan quintiles
pctile newvar = exp [if] [in] [weight] [, nquantiles()]
pctile cortes=ing1, nq(5)

• Crea una variable que muestra el percentil al que pertenece cada observación de acuerdo
a la distribución de otra variable
• nq(5): newvar guarda el quintil al cual pertenece cada observación, los indica con números: 1 2 3 4 5
xtile newvar = exp [if] [in] [weight] [, nquantiles()]
xtile quintos=ing1, nq(5)
• nq(n): n define el número de quantiles, por defecto n es igual a 2
• =exp: donde indicamos la variable continua sobre la cual se calculan los percentiles

12
Ejercicio 1 – Curva de Lorenz
Use datos3.dta y cree las siguientes variables:
• acu_ing Distribución acumulada de los ingresos mensuales desde
el individuo con menos ingresos al individuo con más
ingresos
• acu_pob Distribución acumulada de la población desde el individuo
con menos ingresos al individuo con más ingresos
• acu_ing_s Distribución acumulada de los ingresos mensuales desde el
individuo con menos ingresos al individuo con más
ingresos por sector
• acu_pob_s Distribución acumulada de la población desde el individuo
con menos ingresos al individuo con más ingresos por
sector

13
Ejercicio 2 – Variables categóricas
A partir de datos1.dta cree las variables categóricas mujsec e interval
• No olvide etiquetar las variables que cree
• Solo presente las variables que se piden

mujsec Etiqueta Valor Etiqueta


1 hombre – formal 3 mujer – formal
2 hombre – informal 4 mujer – informal

interval Etiqueta
1 <3 Si el ingreso por hora en ocupación principal es menor a S/ 3
2 3-7 Si el ingreso por hora en ocupación principal está entre S/ 3 - 7
3 >7 Si el ingreso por hora en ocupación principal es mayor a S/ 7
14
Ejercicio 3 – Variables textuales
A partir de datos2.dta, haga las transformaciones que considere
convenientes de tal modo que solo queden las siguientes variables en
la base de datos:

varname tipo ejemplo de un valor


• ubigeo_dist textual “010101”
• ubigeo_prov numérica 101
• dpto numérica con etiquetas 1 (etiqueta: AMAZONAS)
• tipo textual “PROVINCIAL”
• municipio textual “CHACHAPOYAS”

15
Ejercicio 4 – Variables
Cargue las variables id, ing, horas y ocup_sec de datos3.dta y responda:

1. ¿Cuántos individuos observados hay en la base de datos?


2. ¿Cuántos hogares observados hay en la base de datos?
3. ¿Cuántas viviendas observadas hay en la base de datos?

4. ¿Cuál es el ingreso promedio de los individuos observados?


5. ¿Cuál es el ingreso promedio de los hogares observados?
6. Calcule el ingreso per cápita por hogar. ¿Cuál es ingreso per cápita
promedio de los hogares observados?
Ejercicio 4 – Variables (cont.)
7. ¿Cuál es el ingreso promedio de los individuos observados que trabajan más de 40 horas a
la semana?
8. ¿Cuál es el ingreso promedio de los hogares observados que cuenten con al menos un
individuo que trabaje más de 40 horas a la semana?

9. ¿Qué % de individuos observados trabaja más de 40 horas a la semana?


10. ¿Qué % de individuos observados sin ocupación secundaria trabaja más de 40 horas a la
semana?
11. ¿Qué % de hogares observados tiene al menos un individuo que trabaja más de 40 horas a
la semana?
12. ¿En qué % de hogares observados con al menos un individuo que trabaja más de 40 horas
a la semana, el individuo que más horas trabaja no tiene una ocupación secundaria?
(2 puntos) Ejercicio basado en 2017-1
A partir de 2_empresas.dta, cree las siguientes variables (en una línea cada una):

grupo Identificador de estrato. Igual al primer dígito del código de actividad económica.
Meses de antigüedad de la empresa. Por ejemplo, la antigüedad de una empresa que
meses
inició actividades en agosto (mes 8) del 2012 sería 53 meses.
1 si la organización jurídica de la empresa es sociedad anónima, sociedad anónima
sociedad cerrada o sociedad comercial; 0 de otro modo (d.o.m.).
agrupada 1 si la empresa fue parte de un grupo económico el 2016; 0 d.o.m.
trabajan Número de trabajadores y prestadores de servicio de la empresa.
Tasa de crecimiento anual de las ventas netas. Por ejemplo, crecimiento = 5 significa que
crecimiento
las ventas netas crecieron en 5% anual, en promedio, entre el 2014 y el 2016.
Estimación de las ventas netas del 2016 si se hubiera usado el 100% de la capacidad
potencial instalada. Asuma que no hay rendimientos decrecientes (aplique regla de tres simple).
distrito 1 si la empresa está ubicada en Miraflores, San Isidro o Santiago de Surco; 0 d.o.m.
(2.5 puntos) Ejercicio basado en 2017-1
A partir de base0.dta, cree las variables (en una línea excepto orden y pesos):
aleatorio Números aleatorios bajo la distribución de probabilidad de su preferencia
Para cada subpoblación definida por grupo, contiene números correlativos ascendentes
orden contando desde la observación con menor valor aleatorio a la observación con mayor
valor aleatorio dentro de cada subpoblación. El conteo reinicia para cada subpoblación.
Guarda el tamaño de muestra de cada estrato. grupo contiene el identificador de
nmuestra estrato. El tamaño de muestra es 16, 20 y 24 para los grupos 1, 2 y 3 respectivamente.
1 si la observación pertenece a la muestra; 0 de lo contrario. Una empresa pertenece a
muestra
la muestra si el valor en orden es menor o igual al tamaño de muestra de su estrato.
npoblacion Para cada grupo, guarda el número de empresas que pertenecen al grupo.
Inversa de la probabilidad de elección. Trate a los no elegidos como si fueran otra
pesos muestra. Por ejemplo, si se elige una muestra de 20 empresas de una población de 80
empresas, el peso es 80/20 para las 20 elegidas y 80/60 para las 60 no elegidas.
(1 punto) Ejercicio basado en 2016-1
A partir de 3_datos.dta que contiene variables del módulo de empleo
de la ENAHO 2015, cree/renombre las siguientes variables:
• horas Horas a la semana destinadas a la ocupación principal (p513t)
• ingm Ingreso laboral mensual por ocupación principal (d524a1-d536)
• ingh Ingreso laboral por hora en ocupación principal
Las variables de ingreso están anualizadas. Asuma 13 semanas por
trimestre. No olvide etiquetar las 3 variables. Quédese solo con las
observaciones que: pertenecen a la PEA ocupada, han trabajado al
menos una hora a la semana, y su ingreso mensual es positivo.
(3.75 puntos) Ejercicio basado en 2018-0
A partir de base0.dta, cree (o renombre) las siguientes variables:
• (.25) enfermo 1 si está enfermo, 0 si no está enfermo (p4022)
• (.25) edad Edad en años cumplidos (p208a)
• (.25) gaspc Gasto anual per cápita en soles 2007 (gashog2d y mieperho)
• (1.5) demora Horas que toma llegar al establecimiento de salud (p407g1, p407g2, p407g3)
(días , horas , minutos)
• (1.5) notros 0 si toda su familia está sana, 1 si solo un familiar está enfermo, 2 si dos o más
familiares están enfermos
NOTAS: (gaspc) Asuma que el gasto del hogar se reparte por igual entre los miembros del
hogar. (demora) Asuma que el día tiene 24 horas. Los individuos que no se enfermaron o que
no fueron a atenderse a un establecimiento de salud, no les corresponde reportar el tiempo de
demora. Para ellos asuma que el tiempo de demora es igual al promedio de demora en su
conglomerado. (notros) Defina familiares como aquellos con los que el individuo comparte
hogar. Si el individuo está enfermo, cuando cuenta el número de familiares enfermos, no se
cuenta a sí mismo.
(5.5 puntos) Ejercicio basado en 2017-2
(1) Fusione las bases Vivienda-2016.dta, Miembros-2016 y Sumaria-2016.dta. Guarde la base como
Peru16.dta y quédese con aquellas personas que están en las 3 bases.
(4.5) Obtenga las siguientes variables:
• (.5) pobre_mod 1=pobre moderada, 0=pobre extrema, .=de otro modo (pobreza)
• (.5) mujer_hh 1=jefe de hogar es mujer, 0=de otro modo (p203 p207)
• (.5) edad_hh Edad del jefe de hogar (p203 p208a)
• (1) dep_ratio Ratio entre (num) número de personas en el hogar menores a 15 o mayores a 65 años;
(den) número de personas en el hogar entre 15-65 años
• (.25) agua Dummy si la persona tiene acceso a agua de red pública (p110)
• (.25) saneamiento Dummy si la persona tiene acceso a SS.HH. de red pública (p111a)
• (.25) electricidad Dummy si la persona tiene acceso a electricidad (p1121)
• (.25) cellular Dummy si la persona tiene cellular (p1142)
• (1) sj, j=0,1,2,3,4 Dummy si la persona tiene acceso a “j” servicios de manera simultánea entre agua,
saneamiento, elec y celular.
NOTA: Si la variable termina en “_hh”, debe imputar (asignar) el valor del jefe del hogar a todos los
miembros del hogar.
(5 puntos) Ejercicio basado en 2016-2
1. (.5) Cree una base de datos con un 301 observaciones.
2. (1) Cree la variable emds (Efecto Mínimo Detectable Estandarizado) que va de 0
hasta 0.3 con un step de 0.001 (301 valores distintos)
3. (1.5) Cree la variable potencia que depende de emds:

Donde es la distribución acumulada Z(0,1), es la proporción de individuos tratados,


es el tamaño de muestra y es el valor que acumula % de valores bajo la
distribución Z(0,1) (inversa de la distribución acumulada Z(0,1) para un nivel de
significancia ). Asuma: . Revise las funciones normal() e invnormal()
4. (1) Imprima en resultados la potencia del percentil 25 de los valores de emds.
5. (pendiente 1 – gráfico) Grafique la potencia para cada nivel de emds.
(5 puntos) Ejercicio basado en 2018-1b
Base_Distrito.dta contiene la población y tasa de pobreza por distrito.
• (1 punto) Cree una variable que contenga el número de pobres en cada distrito,
expresado como proporción del número de pobres a nivel nacional.
• (1 punto) Cree las variables criterio1 y criterio2 que guarden los valores
estandarizados (media 0 y varianza 1) de la tasa de pobreza y la variable creada en
el punto anterior, respectivamente. (help egen)
• (2 puntos) Exporte a Distritos.xlsx el nombre del departamento, provincia, distrito
de los 50 distritos con el mayor índice para

• (pendiente 1 punto - programación estructurada) Exporte listas para valores de


entre 0.1 y 0.9 con incrementos de 0.1. Debe ser notorio a que corresponde cada
lista.
(4.5 puntos) Ejercicio basado en 2018-2b
Las bases de datos enaho01-2004-200 y enaho01-2017-200
corresponden al módulo de Características de los Miembros del Hogar de
la ENAHO del 2004 y del 2017, respectivamente. Cree la base
menores.dta a nivel de hogar del 2004 y 2017 que contenga, además de
las variables de identificación, la edad del jefe de hogar (p208a), el
número de miembros del hogar (p204) y el número de miembros del
hogar menores de edad.

NOTAS: (1) Se le recomienda transformar las variables de identificación


de textuales a numéricas. (2) La variable que contiene el año de
referencia se denomina a_o en el 2004 y year en el 2017.
(4 puntos) Ejercicio basado en 2018-1
(3) Cree la base enaho.dta que contiene la información de cuatro bases de
datos: enaho01a-2004-300, enaho01a-2016-300, enaho01a-2016-500 y
enaho01a-2004-500.
NOTAS: (anio) La variable anio cambia de tipo según la base de datos: es numérica en
ambas bases del 2004, textual en el módulo 5 del 2016 y no existe en el módulo 3 del
2016. (conglome) La codificación de la variable conglome cambia según la base de
datos: en el módulo 3 del 2004 es “XXXX” mientras que en las demás bases es
“00XXXX”.
(1) A partir de enaho_ayuda.dta, cree las siguientes variables:
• Salario mensual por ocupación principal. Revise las variables entre d529 e i524.
• Grupo según lengua materna y sexo. Revise las variables p300a y p207. Guíese del
gráfico para definir qué categorías toma esta variable. Defina lengua indoeuropea
como castellano, portugués u otra lengua extranjera. Puede contener missings.
(4 puntos) Ejercicio basado en 2018-0b
• (1) Cree base.dta que incluya el módulo de gobernabilidad entre el 2005 y el 2013
(enaho01b-xxxx-2.dta) y sumaria (sumaria_2005-2013.dta).
• NOTAS: Las variables desde conglome hasta codperso son numéricas en el 2005 y 2006, y textuales
desde 2007 en adelante. Según el año, la variable que identifica el año de la encuesta se denomina
aÑo o a_o. En el módulo de gobernabilidad aÑo es textual y en sumaria es numérica.
• (pendiente 1 – programación estructurada) Sistematizar la unión de bases de año a año.
• (.5) Cambie las etiquetas de la variable p32 a “Ahorra” si es 1, “Equilibrado” si es 2, “Des-
ahorra” si es 3 y “Se endeuda” si es 4.
• (1.5) En base a las variables p39a, p39b1 y p39b2, cree la variable p39x que contiene el
quintil en el que el hogar se ubica.
• NOTAS: (2005 – 2006) La variable p39a toma el valor de 6 cuando el informante no sabe o no
responde. (2012 – 2013) La variable p39b2 identifica si el informante no sabe o no responde y la
variable p39b1 contiene el decil. Dada la formulación de la pregunta, no se puede identificar el quintil
para el período 2007 – 2011. Etiquete p39x como "Ud. considera que su hogar se ubica en el
quintil ...".
(3 puntos) Ejercicio basado en 2017-2
(.5) Anexe las bases enaho_2007 y enaho_2015.
(2) Genere las siguientes variables:
• (.5 freq) Número de periodos en un año, puede asumir que un año tiene 360 días,
52 semanas, 24 quincenas y 12 meses. (p523)
• (.5 ingreso) Ingreso monetario anual en soles nominales. Utilice: p524a1 es el
ingreso nominal en la frecuencia indicada en p523, p5441b es la gratificación
nominal anual de navidad y p5442b de fiestas patrias.
• (.5 impuesto) Impuestos pagados en miles de soles nominales. La variable p524c1 es
el impuesto pagado en soles nominales en la frecuencia indicada en p523.
• (.5 uit) Unidad impositiva tributaria en soles nominales (3,450 en 2007 y 3,950 en
2015).
(.5) Quédese con las observaciones cuyo ingreso es diferente de missing.
(4 puntos) Ejercicio basado en 2017-2
A partir de base0.dta, cree la variable Tasa Rango de ingreso restante (ingreso – 7 UIT)
2007
formal_2007 que guarda el impuesto por 15% Sobre las primeras 27 UIT del ingreso restante
quinta categoría en soles nominales que 21% Por el exceso del 27 UIT y hasta 54 UIT
deberían pagar todos los individuos observados 30% Por el exceso de 54 UIT
(inclusive aquellos que no corresponden al año 2015
de referencia, es decir, el impuesto que 8% Sobre las primeras 5 UIT del ingreso restante
deberían pagar los individuos observados el 14% Por el exceso de 5 UIT y hasta 20 UIT
17% Por el exceso de 20 UIT y hasta 35 UIT
año 2015 si se aplicara el esquema impositivo 20% Por el exceso de 35 UIT y hasta 45 UIT
del 2007 con la UIT vigente del 2015). Del 30% Por el exceso de 45 UIT
mismo modo generar la variable formal_2015.
Según el esquema impositivo de ambos años,
las primeras 7 UIT del ingreso están exentas del
cobro de impuestos, el ingreso restante se
grava según las tasas escalonadas que muestra
el cuadro
Ejercicio extra correlación Anscombe
• Analice nuevamente la bd use
http://www.stata-press.com/data/kk/anscombe, clear
• Cree scatter plots de las variables xi vs yi donde i está entre 1 y 4

• El comando es
• graph twoway (lfit yi xi) (scatter yi xi)
• Analice: ¿cómo son las correlaciones?
• ¿Cómo son los scatter plots?
• Sabiendo que la correlación es una medida lineal, ¿cómo puede explicar los scatter
plots?
• Su respuesta aquí:
• https://forms.gle/w3p3bYfWPJJWdsXaA

También podría gustarte