sábado, 30 de marzo de 2019

Comandos tostring y destring. Video

Los comandos tostring y destring se usan para cambiar el formato de almacenamiento de variables que tienen números.

Usualmente, si una variable tiene números y está en formato numérico, no requiere de más transformaciones. Pero a veces una variable con números puede estar almacenada en formato de cadena.


Un ejemplo: una variable que tiene números podemos importarla desde Excel y encontrarnos con que tiene un formato de cadena. Esto es, si por ejemplo en un caso tenemos el número 145, Stata puede no ver allí un número sino una sucesión de caracteres: un "1" seguido de un "4", seguido de un "5". O sea, ve el 145 como una cadena de caracteres, y no como un número que puede ser sumado, restado, etc.

Cuando tenemos números con los que queremos operar matemáticamente y figuran como de cadena, necesitamos reconvertirlos a formato numérico. Esto se hace con el comando destring.

A su vez, en alguna ocasión podemos querer transformar una variable numérica en una variable de cadena que tenga números. Por ejemplo, podemos desear hacer esto si tenemos varios archivos con una variable, por ejemplo "código", y en unos está como de cadena y en otros como numérica. Si deseamos fusionar estos archivos, tenemos que llevarlas a un mismo formato, por ejemplo de cadena. Podemos hacer esto con el comando tostring.

Mostraremos el uso de estos comandos con la base que se crea luego de correr este do file:

*********************************
clear all
set obs 100
set seed 1240
gen double altura = round(rnormal(170,5))
gen double peso = altura - 100 + rnormal(0,4)
replace peso = round(peso, 0.1)
tostring peso, gen(peso_str) force
replace peso_str= subinstr(peso_str, ".", ",", 1)
tostring altura, replace
gen salario = rnormal(300,50)
gen patrimonio = int(rnormal(10000,500))
tostring patrimonio, replace
replace patrimonio = "NA" in 4
*********************************


Video

miércoles, 20 de marzo de 2019

Ejercicio de fusión de archivos (sin solución)


En este ejercicio se presentan dos archivos, uno de personas y otro de hogares.

El de hogares tiene información sobre el tipo de techo de la vivienda y sobre si tiene patio. El de personas tiene información sobre sexo y edad.



Se pide fusionar los archivos y a continuación contestar  las siguientes preguntas:

¿Cuántas personas viven en casa con techo de losa?

¿Cuántos menores de 14 (de cualquier sexo) viven en casas con patio?

¿Cuantas mujeres viven en casas con patio o con techo de losa?



Archivo hogar

Archivo personas


domingo, 10 de marzo de 2019

Comando merge 1 a muchos, y muchos a 1. Video.

En esta entrada se mostrará como fusionar archivos en las modalidades uno a muchos (1:m) y muchos a uno (m:1).

Ambas modalidades realizan la misma fusión. Se diferencian solo del archivo que abren primero.




Archivo nombre_cargo

Archivo cargo_sueldo

Video

domingo, 10 de febrero de 2019

Ejercicio de fusión de archivos (sin solución)


La DGI tiene un archivo sobre cuánto pagan las personas de impuesto al patrimonio. A su vez, consiguió archivos sobre la gente que posee autos y sobre la que manda a sus hijos a colegios privados.

Algunos inspectores desean auditar a quienes no pagan nada de impuesto al patrimonio, y están en una de las tres situaciones que siguen:

a) tienen un auto de alta gama
b) mandan a sus hijos a un colegio de alta gama
c) tienen auto y mandan sus hijos a colegio privado (sean o no de alta gama)


Se pide:

Indique cuántas personas deberían ser auditadas usando los criterios anteriores.

Impuestos patrimonio
Autos
Colegios

miércoles, 30 de enero de 2019

Problema con fusión de archivos (con solución en video)


Se produjo un robo mediante la modalidad de entrar a través de un boquete.

La policía recibe la información de que fue visto el probable delincuente y que mide entre 175 y 180 cm de altura, ambos extremos incluidos.

Sospecha además que debe estar en su lista de boqueteros, y a su vez desea descartar a los que están presos. Tiene un archivo total de boqueteros del país, y otro de los boqueteros presos.

Problema:


Indicar cuántos boqueteros libres miden entre 175 y 180 y son por tanto sospechosos en primera instancia.



Boqueteros_total

Boqueteros_presos

Video con solución

sábado, 26 de enero de 2019

Ejercicio 5 de repaso acumulativo. Sin solución



Razas de perros



La base adjunta tiene información sobre perros.

  1. Indique cuál es el número total de perros de la base.

  1. Represente la variable Raza mediante una gráfica adecuada, con las razas con más ejemplares primero.

  1. Represente la variable Raza mediante una tabla de frecuencia adecuada, con las razas con más ejemplares primero.

  1. Represente la variable peso mediante una gráfica adecuada. Comente la forma de la distribución: ¿es simétrica? ¿es unimodal? ¿es sesgada a izquierda o derecha? ¿tiene outliers marcados?

  1. Si tiene valores imposibles, recodifique ese valor a un missing.

  1. Represente mediante los estadísticos adecuados la variable peso.

  1. Represente la variable Docilidad mediante una gráfica adecuada.

  1. Represente la variable Docilidad mediante estadísticos de resumen adecuados.

  1. Estudie la relación entre Raza y docilidad gráficamente. ¿Qué conclusiones saca? (No son necesarias aquí pruebas de significación ni coeficientes de asociación).

  1. Estudie la relación entre Raza y docilidad mediante tablas numéricas adecuadas. ¿Llega a las mismas conclusiones que mediante las gráficas?

  1. Estudie gráficamente la relación entre peso de los perros y fuerza. ¿Qué conclusión extrae?

  1. Recodifique el peso de los perros en estas franjas:

    • 0 a 12 kg, incluidos ambos extremos. Serán llamados "Peso Liviano".
    • 12 a 29 kg, incluida la última cifra. Serán llamados "Peso mediano – bajo".
    • 29 a 35 kg, incluida la última cifra. Serán llamados "Peso mediano – pesado".
    • Más de 35 kg. Serán llamados "Peso pesado".

  1. Las rotulaciones de estas categorías se harán mediante sintaxis.

  1. Haga una tabla en donde aparezcan de un lado las categorías de peso del punto anterior, y de otro las medianas de fuerza. ¿Qué pasa con la fuerza cuando aumenta el peso en la tabla?


domingo, 20 de enero de 2019

Fusión de archivos. Añadir variables 1 a 1. Comando merge. Video


En ocasiones es necesario unir informaciones que están en más de un archivo.

Por ejemplo, podríamos tener información sobre las personas, identificadas por su número de cédula, en 2 archivos: uno de ellos de jubilaciones percibidas y otro de deudas con el Banco República.

Para descontar las deudas, tenemos que generar un único archivo que tenga los ingresos y también las deudas de las personas, para así calcular los descuentos.

O se puede tener un archivo de personas que viajaron al exterior y otro de personas con Covid19, y se puede querer reunirlos para saber cuántas de las personas infectadas viajaron al exterior.

En estos casos y otros, se hace una fusión de archivos con el comando merge, en la modalidad uno a uno.

El video muestra una fusión con los archivos adjuntos.


Video


Archivo 1

Archivo 2

jueves, 10 de enero de 2019

Ejercicio 4 de repaso acumulativo. Sin solución.



Buscando empleados


Una empresa de colocaciones requiere personal para distintos puestos.
  1. Para el puesto 1, se solicita hombre para seguridad. Los requisitos: altura > 170, que hable inglés o alemán ( o ambos), y que tenga un índice de masa corporal de 23 o más. Si hay más de 10 aspirantes que reúnan los requisitos, seleccione los 10 más altos y haga una lista con las siguientes variables: identificación, altura, peso, habla alemán y habla inglés. Si hubiera menos de 10 se listarán todos.
  2. Para el puesto 2, se requiere hombre o mujer para recepción. Presencia formal, que hable inglés o alemán, pero no ambos, y que esté uno de los dos quintiles más altos de educación. Ordene la lista en sentido descendente según años de educación (las personas con más educación quedarán primeras), y luego emita una lista de 10 candidatos con las siguientes variables: identificación, habla alemán, habla inglés, presencia formal, años de educación. Si hubiera menos de 10, se listarán los que haya.
  3. Para el puesto 3, se requiere una mujer para relaciones públicas. Debe medir entre 164 y 175 cm. Su índice de masa corporal debe estar entre 22 y 24. No debe ser atea. Ordene la base por altura, y liste 10 posibles candidatos que cumplan con los requisitos. La lista contendrá las variables altura, índice de masa corporal, religión.
  4. El puesto 4 es de telefonista en embajada de Pakistán. Puede ser hombre o mujer. Debe saber inglés. Debe vestirse formalmente. No debe ser de religión hinduista. Debe estar en los quintiles 2, 3 o 4 de altura. Si hubiera más de 10 candidatos que cumplan con los requisitos, liste los 10 primeros por orden de altura (los más bajos tienen preferencia). Las variables que se listarán serán identificación, habla inglés, presencia formal, religión y altura.



domingo, 30 de diciembre de 2018

Autoevaluación parcial 1. Cuatro problemas con soluciones escritas.


Se adjuntan cuatro ejercicios.

Se invita al estudiante a tratar de resolverlos con los recursos aprendidos, y solo luego consultar mi solución.

Es un magnífico método de aprendizaje, y a la vez ayudará al estudiante a detectar aquellos puntos que necesitan repaso.




Bases y Letra evaluación parcial

Solución escrita y do file.

jueves, 20 de diciembre de 2018

Ejercicio con preserve, restore, keep y drop (sin solución)


En este ejercicio se tomará un archivo de la red, se dividirá en dos partes y luego se fusionarán esas dos partes para volver a tener un archivo similar al original.



  1. Corra el comando webuse lifeexp. Así cargará el archivo de datos lifeexp.dta. Dicho archivo tiene una variable región, que contiene las categorías Europa y Asia, Norteamérica y Sudamérica.
  2. Indique si la variable region tiene faltantes.
  3. Preserve ("saque una foto") del archivo lifeexp.dta (comando preserve)
  4. Quédese con los casos correspondientes a América. Grabe esos casos con el nombre America.dta (comandos keep o drop)
  5. Restaure el archivo lifeexp.dta con el comando restore.
  6. Quédese ahora con los casos que corresponden a Europa y Asia.
  7. Grabe dicho archivo con el nombre Europa_Asia.dta.
  8. Elimine los datos que Stata tiene en memoria con el comando clear all
  9. Abra el archivo que guardó con el nombre América.dta, y fusiónelo con el llamado Europa_Asia.dta.
  10. Pida una frecuencia de la variable region. ¿Están todos los casos originales?

lunes, 10 de diciembre de 2018

Comandos preserve / restore. Video.


Los comandos preserve y restore se usan en conjunto.

preserve "saca una foto" del estado de una base de datos en el momento en que se ejecuta.

Luego podemos generar variables, cambiarlas, eliminarlas, añadir casos, eliminarlos o lo que se desee.

El comando restore vuelve la base al momento en que se ejecutó el comando preserve.

Si más tarde se desea modificar nuevamente la base y volverla a la situación en que está al momento del preserve, se deberá correr nuevamente este comando. El preserve original se agota luego del restore, no sigue vigente.


Video

viernes, 30 de noviembre de 2018

Comando append. Video

El comando append permite fusionar archivos de datos de Stata que tienen fundamentalmente las mismas variables.

Por ejemplo, se generan archivos de personal en distintas sucursales y luego se desea reunirlos en un archivo único a nivel de empresa.

Los archivos deben tener las mismas variables y en los mismos formatos.

El comando append es similar a la función añadir casos de SPSS.


Video

martes, 20 de noviembre de 2018

Ejercicio 3 de repaso acumulativo. Sin solución.



Costo de políticas sociales


La base CostoPoliticasSociales.dat simula una serie de hogares, e indica los ingresos del hogar, el número de hijos chicos y los ingresos totales del hogar.
Se está estimado el costo de algunas políticas sociales.

  • Entregar $ 4000 a aquellos hogares que tienen hijos y que viven en viviendas deficitarias.
  • Entregar $ 2000 a cada hogar en que no hay cónyuge y hay 2 o más hijos.
  • Entregar $ 3000 a los hogares del primer quintil de ingresos.
  • Entregar $6000 a aquellos hogares con hijos y jefatura femenina sin conexión a Internet.
  1. Calcule cuánto recibiría cada hogar si recibiera todos los beneficios a los que sus condiciones de vida les darían derechos.
  2. Indique cuánto recibiría el hogar más favorecido y cuál es su identificación, y cuánto el hogar menos favorecido, y cuál es su identificación.
  3. Indique en una tabla cuál es la media de los beneficios que recibirían los hogares con jefatura femenina y cuál la media de los hogares con jefatura masculina.


sábado, 10 de noviembre de 2018

Ejercicio 2 de repaso acumulativo. Sin solución.



Investigación criminal.


La base InvestigacionCriminal.dat simula una base de personas con antecedentes penales.

Se ha cometido un crimen y hay tres testigos.

  • El primero de ellos dice que el culpable es un hombre de entre 165 y 175 cm (ambos extremos incluidos) con un tatuaje en el brazo derecho.
  • El segundo testigo dice que es un hombre de apellido López, que es obeso (se interpretó como un índice de masa corporal > 30).
  • El tercer testigo afirma que es un hombre con sobrepeso u obeso (se interpretó como un índice de masa corporal superior a 25), y con un tatuaje en uno de los brazos.
  1. Se desea saber qué personas de la base (si las hay) concuerdan simultáneamente con las descripciones de los tres testigos. Haga una lista, ordenada por identificación, con las identificaciones de los que cumplen con las descripciones de los tres testigos (Si la lista excede los 10 casos presente solo los 10 primeros).
  2. Adicionalmente se quiere saber qué personas concuerdan con por lo menos dos de las descripciones. Presente una lista, ordenada por identificación, de las identificaciones de los sospechosos (si la lista excede los 15 casos, presente solo los 15 primeros).


martes, 30 de octubre de 2018

Ejercicio1 de repaso acumulativo. Sin solución.



En este ejercicio se repasa:  exploración general de la base, análisis univariado, análisis bivariado, recodificaciones, cálculos, confección de listados.



Base y letra del problema (archivo rar)

sábado, 20 de octubre de 2018

Comando de usuario asdoc. Video

El comando de usuario asdoc permite exportar tablas de calidad a un documento Word. La ventaja de exportarlas así es que se puede editar: añadirle títulos, ponerle notas al pie, etc.

asdoc permite además ponerle títulos a las tablas, elegir el tamaño de la letra, elegir la cantidad de cifras decimales, etc.


Video

lunes, 10 de septiembre de 2018

Ejercicio con sort e in (sin solución)


Abra el archivo lifeexp.dta que viene con Stata.

Conteste las siguientes preguntas:

¿Cuáles son los 3 países con menor PBI per cápita (variable gnppc) de la base?

¿Cuáles son los 3 países con menor PBI per cápita de la región Europa _ Asia?

¿Cuáles son los 5 países con mayor porcentaje de agua potable de la región sudamericana?

¿De los países que tienen una expectativa de vida mayor o igual a 60 años, cuál es el que tiene menor PBI per cápita?


jueves, 30 de agosto de 2018

Ejercicio con sort e in (con solución en video)


Cárguese en memoria el archivo auto.dta, que viene con Stata.

Conteste las siguientes preguntas:

¿Cuáles son las 5 marcas y modelos (variable make) más económicas de la base?

De los autos que rinden entre 28 y 36 millas por galón (variable mpg), ¿cuáles son las tres marcas (variable make) más económicas?

El auto de mayor peso, ¿es nacional o extranjero (variable foreign)? ¿de qué marca es (variable make)?


Video

sábado, 25 de agosto de 2018

Ejercicio con comando egen, sobre familias y alturas. Sin solución.


Base de datos

Letra del problema

El calificador "in" (texto)


Se dice que "in" es un calificador. ¿Por qué?

Porque califica, especifica, las observaciones a que se aplicarán un conjunto de comandos.

 En la ayuda de "in" se ponen los siguientes ejemplos.



 sysuse auto
        . list price in 10                                                                                                                   
 Ese "in 10" significa que solo se tomará la observación Nro. 10.

        . list price in 10/20












"in 10/20" significa que se listarán las observaciones que van del 10 al 20





        . list price in 20/l 
"in 20/l" indica que se tomarán las observaciones de 20 hasta la última (l por last: No es un 1).


"in 20/L" es una expresión sinónima de la anterior, esta vez con mayúscula.
                                                                                                                                      
        . list price in -10/l  (expresión sinónima de -10/L)
"in -10/l" significa las 10 últimas. De la menos 10 a la última (last). No confundir la letra l con un número 1.










Este calificador se aplica con frecuencia en combinación con sort.
Por ejemplo, si queremos los 8 precios más baratos, podemos ordenar la base y luego pedir los primeros ocho casos.


sort precio
list precio in 1/8


Y si quisiéramos los siete precios más caros los podríamos pedir así:
gsort - precio
list precio in 1/7

lunes, 20 de agosto de 2018

Comandos "sort" y "gsort". Video.


Los comandos sort y gsort sirven para ordenar la base según una o más variables.

sort

sort ordena la base de forma ascendente.

Ejemplo: si queremos ordenar una base de forma ascendente según la variable precio deberemos escribir el comando
sort precio



gsort

El comando gsort (por generalized sort) es más amplio: permite ordenar en forma ascendente o descendente.

Si quisiéramos ordenar por precios ascendentes, podemos escribir:

gsort price (o, lo que es equivalente, gsort + price)


Si quisiéramos ordenar por precios descendentes, podemos escribir:

gsort - price


Ordenando por dos o más variables


Tanto con gsort como con sort es posible ordenar por dos variables o más. ¿Qué quiere decir ordenar por dos variables? Ordenar por la primera variable, y si hay empates en la primera, ordenar los casos empatados en la primera por una segunda variable.

Por ejemplo, el comando

gsort color -precio

ordenaría primero por color, y dentro de cada color, si hay empates, en forma descendente por precio.



Pero, ¿para qué sirve ordenar la base?

En general las bases se ordenan cuando se desean conocer los valores menores o mayores de alguna variable.

Por ejemplo, si tenemos una base de libros puede interesarnos saber cuáles son los más vendidos, o los menos vendidos.

Si vamos a comprar un auto, puede ser interesante conocer cuáles tienen mejor kilometraje por litro de nafta, etc.






Video










sábado, 18 de agosto de 2018

Ejercicio sobre escuelas y alumnos, con comando egen y otros (sin solución)




En la base anexa hay datos sobre escuelas y alumnos.


  1. ¿Qué variables se refieren a las clases?
  2. ¿Qué variables se refieren a los alumnos?
  3. ¿Hay relación entre la cantidad de alumnos que tienen las clases y las notas individuales que sacan los alumnos? ¿Parecen ser mejores iguales o peores las notas de los alumnos de clases más grandes?
  4. ¿Qué porcentaje de los alumnos excelentes (10 o más puntos) cursó con un equipamiento bueno?


Base de datos

sábado, 11 de agosto de 2018

Problema de tipología de hogares (sin solución).Comando egen y otros

Se trabajará con una base extraida de la Encuesta Continua de Hogares 2019. Se pedirá la identificación de hogares con jefatura femenina y datos sobre dichos hogares y los niños que habitan en ellos.



Base de datos

Letra del problema

viernes, 10 de agosto de 2018

Comando egen y prefijo bysort: tipología de hogares. Ejercicio con resolución en video


En esta entrada se plantea un problema a resolver usando fundamentalmente el prefijo bysort y el comando egen: se pide clasificar a los hogares de la Encuesta Continua de Hogares según una cierta tipología.

A continuación se hacen dos preguntas que se apoyan en dicha tipología.




Base de datos

Letra del problema

Do file

Video

martes, 7 de agosto de 2018

Ejercicio sobre nivel educativo del hogar, con comando egen y otros (sin solución)

La base adjunta simula una base que fusiona datos de hogares y de personas.

Para las personas se recogió su rol en el hogar (padre, madre o hijo), la edad, los años de educación, y para los niños también el promedio de notas con que atraviesan su recorrido educacional.

Se pregunta:

Calcule tres formas de nivel educativo.

a) Se calculará el NivelEducativo1 que consistirá de la máxima cantidad de años alcanzados ya sea por la madre o por el padre. O sea, si, pe. el padre tuviese 12 y la madre 14, NivelEducativo1 tomará el valor 14.

b) Se calculará el NivelEducativo2, que consistirá del promedio de años de educación alcanzados por el padre y por la madre. Ej: si el padre tuviese 8 y la madre 10, Nivel Educativo2 tomará el valor 9.

c) Se calculará el NivelEducativo3, que consistirá de los años de educación alcanzados por la madre.

d) Se estudiará cuál presenta una correlación mayor con las notas de los hijos. Para esto se utilizará la rho de Spearman.

e) Se elegirá la variable que presente mayor correlación con las notas. Esta variable será dicotomizada en nivel educativo el hogar alto y nivel educativo bajo. Queda a criterio del estudiante el punto de corte para dicotomizar.

f) Se hará una tabla que vincule el nivel educativo con las notas medias de los hijos.


Base de datos

lunes, 6 de agosto de 2018

Ejercicio con egen y bysort, resuelto en Video


En el archivo do file se plantean algunas preguntas, encabezadas por asteriscos, lo que las transforma en comentarios.

Se refieren a la base de datos, que simula equipos que compiten en aeronáutica, y que están compuestos por pilotos, entrenadores y psicólogos.



Do file

Base de datos

Video


domingo, 5 de agosto de 2018

Ejemplo de uso de egen y bysort. Video


El archivo dta contiene información ficticia sobre personas que viven en 5 hogares distintos.

Con la información de las personas se crearán variables que caracterizarán a cada uno de los hogares: número de integrantes, salarios totales del hogar, etc. Estas variables requerirán el uso del comando egen, con varias de sus funciones, y del prefijo sortby.



Archivo dta

Archivo do


Video

lunes, 30 de julio de 2018

Continuación de comando egen, y comando egen con prefijo bysort. Video

El comando egen se llama así por "extended gen" o "extended generate".

Tiene una gran cantidad de opciones que le permiten hacer cosas muy diversas, solo algunas de las cuales se verán en el video anexo. Las que veremos aquí son similares a las que ofrece el comando aggregate en SPSS.

En términos generales, el formato de los comandos egen es el siguiente:

egen nombre_nueva_variable = función(vieja_variable)

Por ejemplo, si quisiéramos el precio medio de los autos en el archivo auto.dta, el comando sería:

egen precio_medio = mean(price)

y si quisiéramos la media de las milla por galón diferenciando los autos domésticos de los extranjeros, deberíamos pedir:

bysort foreign: egen media_mpg = mean(mpg)

Las funciones que veremos en este video serán:

mean
max
min
rank
count
total


Video


viernes, 27 de julio de 2018

Ejercicio de cálculo con comando egen (sin solución)


Genérese una base de datos corriendo la siguiente sintaxis:

**********************************
cls
clear all
set obs 300
set seed 1234
gen nro_cliente = _n
gen art1 = 20 if runiform() < 0.90
gen art2 = 20 if runiform() < 0.90
gen art3 = 10 if runiform() < 0.60
gen art4 = 40 if runiform() < 0.80
gen art5 = 10 if runiform() < 0.20
gen art6 = 11 if runiform() < 0.10
gen sexo = rbinomial(1, 0.55)
label define sexo 1 "Hombre" 0 "Mujer"
label values sexo sexo
**********************************

Esta base de datos simula 300 clientes que pueden comprar o no hasta 6 artículos. Si el cliente compró un artículo, figura el precio de la compra. Si no compró, hay un faltante.

El comerciante otorga descuentos a los que compraron 4 artículos o más. El precio descontado es el del artículo de menor valor.

Se pide al estudiante:

  1. Indique cuántos clientes compraron 4 artículos o más.
  2. Calcule cuánto pagó cada cliente, teniendo en cuenta el descuento del comerciante.
  3. Indique la recaudación total del comerciante.
  4. Indique qué monto recaudó de mujeres y de hombres. 
  5. Indique el monto máximo comprado. Haga una lista con dichos montos y con la identificación de los clientes que lo compraron. 

jueves, 26 de julio de 2018

Ejercicio con egen (funciones en fila). Video

La sintaxis siguiente genera una base de datos de supuestas compras hechas por 12 clientes. Los vendedores hacen, para quienes compran más de un artículo, un descuento del 25 % sobre el artículo de menor precio.



***********************************************
clear
set seed 5799
set obs 12
gen cliente = _n
gen monto_compra1 = round(rnormal(100, 20))
gen monto_compra2 = round(rnormal(100, 20))
replace monto_compra2 = . if rnormal(100,20) < 100
gen sexo = runiform() <.5
label define sexo 0 "hombre" 1 "mujer"
label values sexo sexo
cls
***********************************************

Se pide:

Haga una lista de los montos gastados por cada cliente

Indique cuánto gastaron hombres y cuánto mujeres.


Video

Do file


martes, 24 de julio de 2018

Prefijo bysort. Video


El prefijo bysort se utiliza para separar análisis, o para realizar operaciones, por grupos.

Por ejemplo, si hiciéramos

bysort sexo: summarize altura

nos daría dos sumarios de altura, uno para cada sexo.

O si hiciéramos

bysort region: pwcorr pbi expectativa_vida

nos daría dos medidas de correlación entre pbi y expectativa de vida, una para cada región.

Este prefijo funciona con la estructura que sigue:

bysort variable_categórica : comando...

bysort va seguido de una variable categórica y de dos puntos, y luego un comando de Stata emitido de manera habitual.



Video

viernes, 20 de julio de 2018

Algunos usos del comando egen: Funciones de fila. Video


El comando egen se llama así por extended generate. Sirve para generar nuevas variables mediante muy diversas funciones.

Veremos en esta entrada algunas de ellas que operan en cada renglón.

Se verán:


  • rowmiss (cuenta los casos faltantes en un renglón)
  • rownonmiss (cuenta los casos no faltantes en un renglón)
  • rowmax (calcula el máximo entre una serie de variables en un renglón)
  • rowmin (calcula el mínimo entre una serie de variables en un renglón)
  • rowmean (calcula la media entre una serie de variables en un renglón)
  • rowtotal (calcula la suma total de una serie de variables en un renglón).

Rowmiss


La sintaxis para la función rowmiss de egen puede verse a continuación.

egen NombreNuevaVariable = rowmiss (lista de variables)

Esto genera una nueva variable (en el ejemplo llamada n_faltantes) con la cantidad de faltantes en cada renglón.




Rownonmiss

La función rownonmiss nos indica el número de valores no faltantes en las variables a, b, c y d, dentro de cada renglón.





Rowmax

La función rowmax nos indica en valor máximo de una lista de variables en una nueva variable por renglón. Nótese que calcula el máximo sin tener en cuenta a los faltantes.





Rowmin

La función rowmin de egen nos indica el valor mínimo de una serie de variables en una nueva variable. Nótese que calcula el mínimo sin tener en cuenta los faltantes.




Rowtotal

La función rowtotal calcula la suma total entre una serie de variables. No tiene en cuenta los valores faltantes.





Rowmean

La función rowmean del comando egen calcula el promedio entre varias variables, renglón por renglón.



Do file

Video




domingo, 15 de julio de 2018

Relaciones bivariadas, y recodificación. Ejercicio de revisión 4 (sin solución).


Análisis de relaciones bivariadas (análisis gráfico, numérico, de significación y de fuerza de la asociación.



Se trabajará con el archivo Gss93 subset.dta



DK significa don't know
NA significa no answer
NAP significa not applicable



1.
Explore las variables letdie (permitir que mueran los pacientes incurables) y sexeduc (actitud ante la educación sexual en las escuelas).
Explore si existe relación entre ambas variables, gráfica y numéricamente, luego de pasar los DK, NA y NAP a faltante (.).
Asumiendo que esta es una muestra aleatoria simple, ¿se puede descartar la hipótesis nula? Nota: usar chi2.
¿Cuál es el grado de asociación? Comente.



2.
Explore las variables sei (índice de status socioeconómico) y educ (año más alto de educación completado).
Si es necesario pase valores a faltantes.
Explore si existe relación entre ambas variables, gráfica y numéricamente.
Asumiendo que esta es una muestra aleatoria simple, ¿se puede descartar la hipótesis nula de que, no hay relación entre años de educación y nivel socioeconómico?
¿Cuál es el grado de asociación?
¿Es la relación significativa?



3.
Explore las variables age (edad del respondente) y tvhours (horas diarias de TV).
Explore si existe relación entre ambas variables, gráfica y numéricamente.
Asumiendo que esta es una muestra aleatoria simple, ¿se puede descartar la hipótesis nula? (variables continuas: usar rho de spearman o r de Pearson. ¿Se puede descartar la hipótesis nula de que la rho de Spearman o la r de Pearson sean iguales a 0? 


4.
Explore las variables degree2 (terminó o no terminó el college, dicotómica) y sei (índice de status socioeconómico, continua).
Explore si existe relación entre ambas variables gráficamente y numéricamente.
Asumiendo que esta es una muestra aleatoria simple, ¿se puede descartar la hipótesis nula de igualdad de medias? (ttest)
Indique el grado de asociación a través de la diferencia en sei entre ambos grupos y también con la d de Cohen y g de Hedges [ comando esize two sei, by(degree2) ]



5.
Explore las variables musicals (gusto por los musicales de Broadway, escala Likert con 5 categorías) y classiccl (gusto por la música clásica, escala Likert con 5 categorías).
Explore si existe relación entre ambas variables, gráfica y numéricamente.
Asumiendo que esta es una muestra aleatoria simple, ¿se puede descartar la hipótesis nula de que cuando crece el gusto por un tipo de música no crece el gusto por la otra? (usar tab2 con porcentajes con la opción tau b. También usar ktau para tener la significación de tau b)
¿Cuál es el grado de asociación?




6.
Explore las variables sex (sexo, dicotómica) y agewed (edad al casarse por primera vez, continua).
Explore si existe relación entre ambas variables, gráfica y numéricamente.
Asumiendo que esta es una muestra aleatoria simple, ¿se puede descartar la hipótesis nula de que las medias de edad para casarse son iguales para ambos sexos? (ttest)
Cuáles son las edades de las 12 personas que se casaron con más edad en la muestra,  y cuál es el sexo de esas personas? 




7.
Explore las variables folk (gusto por la música folk, escala Likert de 5 puntos) y jazz (gusto por el jazz, escala Likert de 5 puntos).
Explore si existe relación entre ambas variables, gráfica y numéricamente.
Asumiendo que esta es una muestra aleatoria simple, ¿se puede descartar la hipótesis nula? (usar tab2 con porcentajes y también ktau, y allí taub).
¿Cuál es el grado de asociación?



8.
Explore las variables spanking (estar de acuerdo con palmadas para disciplinar a los niños) y polviews (autoidentificación ideológica como liberales o conservadores).
Explore si existe relación entre ambas variables, gráfica y numéricamente.
Asumiendo que esta es una muestra aleatoria simple, ¿se puede descartar la hipótesis nula?
¿Cuál es el grado de asociación?


martes, 10 de julio de 2018

Ejercicio de recodificación (sin solución)


Genere la base de datos corriendo la sintaxis que sigue:

**********************************************************
clear
set obs 400
set seed 999
gen religion = trunc(1+(4)*runiform())
label define religion 1 "catolico" 2 "protestante" 3 "judío" 4 "islam" 5 "otro"
label values religion religion
gen glicemia = rnormal(100, 25)
gen industria = trunc(1+(9)*runiform())
gen voto = trunc(1+(5)*runiform())
label define voto 1 "FA" 2 "PC" 3 "PN" 4 "CA" 5 "Otros"
label values voto voto
replace voto = 9 in 2
**********************************************************

La variable religión tiene   categorías:
1. católico 2. protestante 3. judío 4. islam y 5. otro.
Recodifíquela y rotúlela en una nueva variable con las categorías 1. cristiano (abarcará católicos y protestantes) y 2. otros (abarcará judío, islam y otro).

Haga, para verificar la corrección de la recodificación, una lista que muestre los primeros 20 renglones de las variables religión y religión recodificada. [Nota: para ver los 20 primeros renglones añadir al comando in 1/20 Así, la sintaxis podría quedar list religion religion_rec in 1/20]


La variable glicemia (azúcar en sangre) tiene una gama de valores. Recodifíquelos y rotúlelos en una nueva variable, glicemia_rec, en 1. hipoglicémico (69 o menos) 2. normal (70 a 100) 3. prediabético (101 a 125) y 4. (126 o más) diabético.

Haga, para verificar, una lista que muestre los primeros 20 renglones de las variables glicemia y glicemia_rec.


La variable industria tiene 9 categorías. Recodifíquelas y rotúlelas en una nueva variable, llamada sector, según sigue:
1, 2 y 8 pasan a 1. Sector primario
3, 4 y 5 pasan a 2. Sector secundario
6, 7 y 9 pasan a 3. Sector terciario.

Haga una lista que muestre los primeros 20 renglones de las variables industria y sector.


La variable voto tiene 5 categorías: FA, PC, PN, CA y Otros. Hay un valor incomprensible: 9.
Lleve en la misma variable ese 9 a valor faltante.

Pida una tabla de frecuencias y verifique que ya no está el valor 9.


jueves, 5 de julio de 2018

Recode: puntos de corte

 En este video se verá cómo tratar los puntos de corte de una recodificación en caso de que un mismo valor sea informado en más de una categoría.

La tabla de arriba provee de información para formar un score utilizado por los médicos. Se deben recodificar 6 variables.

Pero algunos valores (35 y 8 en la primera variable y 85 y 92 en la segunda) aparecen citados debajo de dos puntuaciones distintas cada uno.

Esto exige recodificar con cuidado.

sábado, 30 de junio de 2018

Recodificar en la misma variable. Video


En general se aconseja recodificar en otras variables distintas de las originales.
Pero en algunas ocasiones parece más práctico recodificar sobreescribiendo la misma variable. Por ejemplo, cuando se detecta un error obvio en un valor.

La sintaxis que sigue genera una pequeña base, con 8 casos, con las variables altura y peso. En altura habrá un error obvio que podemos pasarlo a faltante o al valor correcto si dispusiéramos de él.

*****************************************
clear
set obs 8
gen id = _n
set seed 1234
gen altura = round(rnormal(165, 8))
gen peso = round(rnormal(65,5))
replace altura = 1619 in 1
*****************************************


Video

domingo, 25 de junio de 2017

Ejercicio de recodificación y cálculo de cuantiles con solución en video


Genérese una base de datos corriendo la sintaxis que sigue:

**************************************************
clear all
set obs 500
set seed 1234
gen años_educ = round(rchi2(5))
gen salario_hora = round(años_edu * 50 + rnormal(0,3))
gen voto = rbinomial(3, 0.40)
replace voto = 12 in 18
label define voto 0 "Izquierda unida" 1 "Derecha patriótica" 2 "Izquierda obrera"  3 "Derecha tradicional"
label values voto voto
gen patrimonio = round((1 - rbeta(200, 3)) * 2000000)
replace patrimonio = patrimonio + 50000 if voto ==1 | voto == 3
**************************************************

Recodifique y rotule la variable años_educ según los siguientes criterios:
Hasta 5 años inclusive: Primaria Incompleta
Hasta 8 años inclusive: Primaria completa
Hasta 11 años inclusive: Ciclo Básico Completo
12 años: Ciclo Superior Completo
Más de 12 años: Universidad o superior

Indique el salario hora medio para cada una de las categorías anteriores.


La variable voto tiene un valor erróneo: 12. Recodifique dicho valor a faltante (lo suponemos un error sin posibilidad de averiguar el valor verdadero), y los restantes valores a las categorías Izquierda y Derecha.

Establezca los quintiles de la variable patrimonio, e indique si tienen una relación significativa con voto dicotomizado de izquierda o de derecha.


Video


sábado, 24 de junio de 2017

recode y xtile. Video


En este video se verán dos maneras que pueden ser usadas para categorizar variables continuas: a través de los comandos recode y xtile.

Se usará la base que se genera corriendo la sintaxis que sigue.


**********************************
clear *
set obs 200
set seed 15863
gen sueldo = rchi2(2) * 10000 + 5000
gen imc = rnormal(25,4)

**********************************


viernes, 23 de junio de 2017

Relaciones bivariadas y recodificación. Ejercicio de revisión 6 (sin solución)




General Social Survey 2016

El archivo gss2016.dat tiene datos reales. Las variables seleccionadas son parte de la encuesta llamada "General Social Survey", realizada en 2016.


ATENCION: Si desea tratar una variable como ordinal, pero los códigos no corresponden con ese orden (por ejemplo 1. Bajo 2. Alto y 3. Intermedio), deberá recodificarla de tal forma que los códigos queden ordenados (por ejemplo: 1. Bajo 2. Intermedio y 3. Alto). Esta aclaración se hace por única vez para todo el ejercicio.


Se desea:

  1. Estudie la relación entre las variables colscinm (número de cursos científicos que el respondente tomó a nivel universitario) y astrosci (¿es científica la astrología?). Grafique la relación, indique si es significativa y cuál es la fuerza de la asociación. Haga una tabla que indique la media de la cantidad de cursos científicos que tomaron creyentes y no creyentes en la astrología. Comente sobre la relación.
  2. Estudie la relación entre las variables Zodiac (signo del zodíaco al cual pertenece el respondente) y age (edad). Grafique la relación, indique si la asociación entre estas dos variables es significativa, y haga una tabla con las edades medias y medianas para cada signo. Comente sobre la relación.
  3. Estudie la relación entre las variables gender1 (género del respondente) y attend (concurrencia a servicios religiosos). Grafique la relación, indique si es significativa y la fuerza de la asociación, genere tabla e indique donde hay excesos de casos notorios si los hay. Comente sobre la relación.
  4. Estudie la relación entre polviews (orientación política) y poleff16 (desconfianza a las promesas de los congresales). Grafique, indique si la relación es significativa y su fuerza, genere una tabla e indique donde hay excesos relativos de casos notorios si los hay. Comente sobre la relación.
  5. Estudie la relación entre la variable attend (concurrencia a servicios religiosos) y popespks (el Papa es infalible en materia de fe y de moral). Grafique la relación, indique si es significativa, la fuerza de la asociación y las celdas donde hay notorios excesos relativos de casos). Comente sobre la relación.
  6. Estudie la relación entre Tvhours (horas por día mirando TV) y educ (año más alto de educación completado por el respondente). Grafique la relación, indique si la asociación entre las variables es significativa y cuál es su fuerza. Comente.
  7. Estudie la relación entre las variables maeduc (educación de la madre) y paeduc (educación del padre). Grafique la relación, indique si la asociación es significativa y cuál es su fuerza. Comente sobre la relación.



martes, 20 de junio de 2017

Ejercicio de cálculo (sin solución)

Genérese una base corriendo la sintaxis que sigue:

*******************************************
set obs 500
set seed 12324
gen sueldo = runiform() *20000 + 20000
gen hijos = rbinomial(3, 0.50)
*******************************************

Esta base simula información sobre trabajadores. Están sus salarios y su cantidad de hijos.

Un economista está tratando de calcular el rendimiento de dos posibles impuestos.

El primer impuesto propondría no grabar los sueldos de hasta $20000. Los sueldos de más de 20000 y hasta 30000 pagarían un 10%, y los sueldos de más de 30000 un 20%. ¿Cuánto recaudaría este primer impuesto para los trabajadores de la base?

Un segundo impuesto alternativo sería del 20% para los que tienen menos de 2 hijos, y del 15% para los que tienen 2 o más hijos. ¿Cuánto recaudaría este segundo impuesto?

lunes, 19 de junio de 2017

Ejercicio de cálculo con resolución en video.


Este ejercicio simula una base con datos de hombres que subieron sus características de altura, memoria y color de pelo a una aplicación para citas tipo Tinder.

Distintas mujeres desean saber qué hombres tienen los rasgos que ellas desean.

Es un ejercicio para realizar cálculos de variables 0-1. Adicionalmente se practican otros comandos.



Letra del problema

Base

Resolución en video

viernes, 16 de junio de 2017

Ejercicio de cálculo 0-1. Resolución en Video.

En esta entrada se resolverá un problema en donde una serie de mujeres desean saber que citas hay disponibles para ellas en una base de datos de una aplicación tipo Tinder.

La base se creará con la siguiente sintaxis:


*******************************************
clear all
set obs 400
set seed 12546
gen identificacion = _n
gen memoria = rnormal(100, 15)
replace memoria = . in 25/31
gen altura = rnormal(170, 7)
gen colorpelo = int(runiform() *4)+1
replace colorpelo = . in 330/334
gen habla_aleman = int(runiform() *3)+1
label define colorpelo 1 "rubio" 2 "pelirrojo" 3 "castaño" 4 "negro"
label values colorpelo colorpelo
label define habla_aleman 1 "No habla o habla mal" 2 "Bien" 3 "Muy bien"
label values habla_aleman habla_aleman


******************************************* 

Letra del problema: 


La base adjunta ser de una app de citas, y tiene datos de hombres interesados. Se pide:

  1. Indique cuántas variables y cuántos casos hay en la base.
  1. Indique si hay faltantes, en qué variables los hay, y cuántos.
  1. Mariela desea conocer personas entre 170 y 185 cm de altura (ambos extremos incluidos), con color de pelo rubio o castaño. Indique cuántas personas cumplen con las condiciones de Mariela.
  1. Haga un listado de 10 de personas que cumplan estas condiciones, en orden creciente de Identificación. El listado tendrá las variables altura, color de pelo e Identificación.
  1. Helena desea conocer personas que hablen alemán bien o muy bien, y cuya memoria esté en el séptimo decil o superior. Indique cuántas personas cumplen con las condiciones de Helena.
  1. Haga un listado de 10 de las personas que cumplan estas condiciones, en orden creciente de Identificación. El listado tendrá las variables Habla_aleman, decil de memoria e identificación.
  1. Natalia desea conocer personas con un color de pelo que no sea rubio y con altura superior a 175 cm. Indique cuántas personas cumplen con las condiciones de Natalia.
  1. Haga un listado de 10 de estas personas, en orden creciente de identificación. Las variables serán color de pelo, altura e identificacion.
  1. Indique cuántos hombres interesan simultáneamente a Mariela, Helena y Natalia.


jueves, 15 de junio de 2017

Usos adicionales de los comandos generate y replace. Cálculo 0-1. _n. Video

En este video se mostrará cómo crear variables dummy (o variables binarias, o variables indicador: son nombres sinónimos). Estas son variables que toman el valor 1 cuando se cumplen ciertas condiciones o 0 si no se cumplen.

Por ejemplo, podemos generar una variable llamada hombre hipertenso que tome el valor 1 en el caso de hombres hipertensos y 0 en otras situaciones.

Si tuvieramos las variables sexo (1 hombre, 2 mujer) y altura (en cm) podríamos generar la variable hombre alto para hombres de más de 180 cm:

gen hombre_alto = sexo == 1 & altura > 180

Otro uso que se mostrará es la generación de números consecutivos, por ejemplo:

gen numero_caso = _n

El comando anterior crea una variable llamada numero_caso que toma los valores consecutivos 1, 2, 3, etc.





Video

sábado, 10 de junio de 2017

Etiquetado de variable, y de los valores que puede tomar la variable. Video


En el video adjunto se mostrará cómo etiquetar
1) variables
2) valores que toman las variables

Se trabajará con la base que genera ejecutar la siguiente sintaxis:

************************
clear all
set obs 20
set seed 3526
gen ppol = trunc(runiform() *4)
tab1 ppol

************************

La sintaxis anterior genera una variable llamada ppol, que será etiquetada "Partido Político que votó en las últimas elecciones".

Se mostrará cómo se etiquetan variables con la ayuda del comando label variable.

Hay 4 respuestas posibles: 0, 1, 2 y 3.
Estos valores representan a distintos partidos:
0 "Partido del Norte"
1 "Partido Democrático"
2 "Partido Agrícola"
3 "Partido Obrero".

Se mostrará cómo se etiquetan estos valores, con ayuda de los comandos label define y label values.


Video

martes, 30 de mayo de 2017

Comandos generate y replace. Video

En este video se verá el principal comando para crear nuevas variables, generate, y el principal comando para modificar valores de variables ya creadas, replace.

Asimismo se mostrarán los comandos label variable, label define y label values, que permiten rotular las variables y los valores que estas pueden tomar.

Se trabajará sobre la base de datos que se genera ejecutando la sintaxis que sigue:

*****************************************************
cls
clear all
set obs 200
set seed 1234
gen salario_hora_pesos = (rchi2(2) + 5) * 30
gen desocupacion = rbinomial(1, 0.10)
label define desocupacion  0 "Ocupado" 1 "Desocupado"
label values desocupacion desocupacion
replace salario_hora = . if desocupacion == 1
gen altura_pulgadas = round(rnormal(68, 3))
gen peso_kg = round(altura *2.5 - 100 + rnormal(0, 7))
gen ppol = trunc((runiform() *4)+ 1 )
gen horas_trab = rnormal(140, 5) if desocupacion == 0
******************************************************

Para ilustrar el uso de los comandos, se ejecutarán las instrucciones que siguen:


Llevar la altura, que está en pulgadas, a metros. Se recuerda que un metro son 39,37 pulgadas

Calcular el índice de masa corporal: IMC = peso en kilos / (altura en metros) ^2

Calcular el sueldo mensual = salario hora * horas trabajadas

Calcular impuesto1 =
10% del sueldo si el sueldo es menor a 23000,
20% si es de 23000 o más y menos de de 27000,
30% si es de 27000 o más.

Calcular impuesto2 =
15% del sueldo si el salario es menor a 25000
30% del sueldo si el salario es mayor o igual a 25000


Video