martes, 10 de diciembre de 2019

Problema de regresión múltiple (sin solución)


El problema que se presentará consiste en responder a la pregunta: ¿son más altos los puntajes SAT en estados de EEUU que gastan más dinero en educación después de controlar por otros factores?


Se usará la base que sigue:

states.dta 


Se trabajará con las siguientes variables:

csat (puntajes en pruebas SAT)
expense (gastos por alumno)
percent (% de estudiantes egresados que toman la prueba SAT)
income (ingreso medio de los hogares)
high (% de adultos que terminaron high school)
college (% de adultos con universidad)
region (región)


La página de la cual se extrajo el ejemplo es https://www.princeton.edu/~otorres/Regression101.pdf

Se pide:

  1. Estudie gráficamente la relación de las variables predictoras con la variable csat y comente.
  2. Haga un modelo de regresión múltiple con las variables predictoras de arriba.
  3. Grabe este primer modelo
  4. Elimine de a una las variables no significativas, si las hubiera.
  5. Grabe los sucesivos modelos
  6. Preséntelos en una tabla comparativa y seleccione fundadamente el que a su juicio es el mejor.
  7. Indique la ecuación de regresión de dicho modelo.
  8. Indique qué variables muestran mayor capacidad predictora.
  9. Corra los test diagnósticos usuales para evaluar la adecuación del modelo, y comente los resultados.









sábado, 30 de noviembre de 2019

Variables que deben registrarse en una investigación, e integrarse en el análisis


La relación entre un posible factor causal y un efecto puede verse afectada por terceras variables.

Hay terceras variables que deben tenerse en cuenta, especialmente en estudios observacionales: son otras causas que influyen sobre el efecto y que pueden estar asociadas con el factor de estudio que nos ocupa.

Cuando incorporamos esas terceras variables al análisis, la relación original puede desaparecer o aumentar. Incluso puede surgir cuando en primera instancia no se veía.

Además, las terceras variables importan por posibles modificaciones del efecto, esto es, por posibles interacciones.

Es imprescindible el conocimiento previo de las variables que pueden afectar la relación que más nos interesa en un estudio, es decir, de los factores de riesgo para el efecto.

Esto significa que debe hacerse una revisión bibliográfica completa previa a la investigación para determinar los factores de riesgo conocido, de tal forma de incluirlos en el análisis y disminuir los riesgos de efectos sub o sobreestimados y de interacciones pasadas por alto.

miércoles, 27 de noviembre de 2019

Ejercicio de regresión lineal múltiple, con término cuadrático y graficación con margins y marginsplot (sin solución)

Se ha sostenido que el estrés mantiene una relación curvilínea con el rendimiento en los exámenes: un poco de estrés ayuda a estar alerta y concentrado. Pero mucho estrés puede generar bloqueos. Otra variable que también influye es el nivel de conocimientos.

En este ejercicio se chequeará si los datos (hipotéticos) de esta base con compatibles con las hipótesis anteriores. 

La base se generará corriendo la sintaxis que sigue. 


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

set obs 500

set seed 1234

gen estres = runiform() * 100

gen conocimiento = runiform() * 100

gen rendimientoExamen = 5 * estres - 0.04 * estres^2  + conocimiento+ rnormal(10, 9)

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


  1. Explore gráficamente la relación entre rendimiento en examen y estrés.
  2. Si la relación es curvilínea, explore la posibilidad de usar una regresión lineal para predecir mediante la introducción de un término cuadrático.
  3. El modelo en su conjunto, ¿es significativo?
  4. En la ecuación de regresión, ¿el término cuadrático es significativo?
  5. ¿Cuál es la varianza explicada por el modelo con el término cuadrático?
  6. Haga uso de los comandos margins y marginsplot para graficar cómo cambia el rendimiento en el examen con la variación del estrés.


martes, 26 de noviembre de 2019

Términos cuadráticos y la necesidad de usar el símbolo de numeral (#)

 

Cuando hacemos regresiones con términos cuadráticos (y también con interacciones), es casi obligatorio usar el símbolo de numeral para los términos al cuadrado.

Esto es así porque si pensamos utilizar posteriormente los comandos margins y marginsplot, estos lo requieren.

Sea dos variables predictoras: una x y otra x^2.

Lo podemos escribir c.x c.x#c.x  Lo anterior es x y x^2.

También podríamos haberlo escrito con dos numerales: c.x##c.x. Esto también es x y x^2.

Las dos formas anteriores funcionan muy bien con margins. Cuando le pidamos predicciones para ciertos valores de x, margins sabe que cuando se modifica x se modifica, necesariamente, x^2.

Pero si generamos una variable  con gen xCuadrado = x^2, luego el comando margins no sabrá que cuando se modifica x tiene que modificar xCuadrado, y por lo tanto da gráficas incorrectas.


Video





sábado, 23 de noviembre de 2019

Problema de regresión múltiple con interacción y test diagnósticos (sin solución)

 La sintaxis que sigue genera una base con las variables salario_hora, años de educación, años de experiencia laboral y sexo.


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

clear all

set seed 1500

set obs 500

gen sexo = rbinomial(1, 0.5)

label define sexo 0 "hombre" 1 "mujer"

label values sexo sexo

gen años_educ  = round(rnormal(10, 3))

gen años_experiencia = round(runiform() * 15)

gen salario_hora = 200 + años_educ * 5 + años_exp * 4 + rnormal(0,10) if sexo ==0

replace salario_hora = 150 + años_educ * 5 + años_exp * 1.5 + rnormal(0,10) if sexo ==1

cls

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


Un investigador sospecha que existe una interacción entre años de experiencia y sexo: o sea que la experiencia no es recompensada de la misma manera en hombres y mujeres.


Se pide:

Halle la ecuación de regresión para estimar el salario hora a partir de las siguientes variables:

  1. Sexo
  2. Años de educación
  3. Años de experiencia
  4. Interacción entre años de experiencia y sexo

¿Se puede rechazar la hipótesis nula en esta regresión lineal? Explique.

¿Cuál es la varianza explicada por el modelo?

¿Cuál es la Root MSE? ¿Qué indica este valor?

¿La interacción sexo - años de experiencia se muestra significativa?

¿Cuál es la predicción de salario hora para una mujer con 10 años de educación y 10 de experiencia?

¿Cuál es la predicción de salario hora para un hombre con 10 años de educación?

Los residuos del modelo ¿se muestran normales?

En los test de pos estimación, ¿aparecen outliers? Explique.

¿Se advierte heterocedasticidad o relaciones curvilíneas en los test de post estimación? Explique.



jueves, 21 de noviembre de 2019

Familia de comandos ESTIMATE, para almacenar y comparar modelos. Video

Hay distintas estrategias para hallar "el mejor modelo de regresión". El modelo "mejor" depende en parte de si buscamos predecir o hallar relaciones causales, de las variables que tenemos disponibles, etc. 

Pero es necesario con muchísima frecuencia comparar modelos alternativos. Construimos varios modelos -hay distintos criterios para hacerlo- y luego los comparamos: cuál tiene mayor R2 ajustado, cuál tiene menor RMSE (error estándar de la estimación), cuál menor BIC o AIC. Todas estas medidas generalmente nos llevan a elegir el mismo modelo, pero no siempre. Además ¿cómo varían los coeficientes de las distintas variables independientes? Para hacer estas comparaciones entre modelos Stata nos ofrece la familia de comandos ESTIMATES.



Luego de correr una regresión, podemos almacenar el modelo. Si deseamos llamar al modelo "m1" corremos el siguiente comando:


estimates store m1


Si luego corremos una segunda regresión con algunas variables removidas o añadidas, podemos almacenar este segundo modelo, por ejemplo con el nombre "m2". Para hacerlo corremos este comando:


estimates store m2


Podríamos correr más modelos, y almacenarlos con los nombres que deseemos. Y luego podemos compararlos así:


estimates table *, stats (r2_a, bic, aic, N, rmse)

En el comando de arriba pedimos las estadísticas R2 ajustada, BIC, AIC, el tamaño de la muestra (N), y la error estándar de la estimación (Root MSE). Podríamos haber pedido solo una parte de estas estadísticas o ninguna.

¿Cuál es el aspecto de estas tablas comparativas? El que sigue:

En la tabla de arriba se comparan tres modelos, con sus respectivos R2 ajustado, N (tamaño de las muestras), BIC y AIC. También se puede ver cómo cambian los coeficientes de las variables independientes para los distintos modelos.



Y si en algún momento deseamos eliminar los modelos de la memoria de Stata, hacemos:

estimates clear

 

El ejemplo que se mostrará en el video se tomará de una muy interesante página web de la Universidad de Princeton que vale la pena ver: https://dss.princeton.edu/training/Regression101.pdf

 

Video

States.dta

do file



 

martes, 19 de noviembre de 2019

BIC y AIC. Regresión lineal: Elección de modelos. Texto.

 BIC y AIC son dos estadísticos que se calculan para elegir entre modelos alternativos de regresión. Aquí se presentarán someramente.


AIC extrae su nombre de Akaike Information Criterion, y BIC de Bayesian Information Criterion.

Ambos privilegian el poder explicativo de los modelos, y a la vez penalizan la cantidad de variables predictoras: cuantas menos, mejor. Esto es, privilegian el poder explicativo y la parsimonia, la simplicidad de los modelos. 

No son demasiado distintos del R2 ajustado, que también penaliza la cantidad de variables. Sin embargo, se calculan de diferentes maneras y no siempre coinciden

Ambos ayudan a elegir entre varios modelos alternativos en competencia para predecir una cierta variable dependiente.

Si usamos AIC para comparar dos modelos, el que tiene un AIC menor es considerado mejor modelo. Con BIC es igual: dados dos modelos, el que tiene un puntaje BIC menor es el considerado más próximo a la verdad. 

Generalmente el uso de BIC o de AIC lleva a similares conclusiones. De todas formas no siempre es así: BIC penaliza la complejidad del modelo más pesadamente que AIC.

Son usados en ocasiones para elegir los mejores conjuntos de variables predictoras en regresión, y a menudo se usan para comparar modelos no necesariamente anidados. (Dos modelos se dicen anidados si todas las variables de un modelo están presentes en el otro modelo. Por ejemplo, si un modelo predice con las variables A, B, C y D, y el otro con las variables A, B y C, estos dos modelos se llaman anidados).

Para usar entonces BIC o AIC no es necesario estar en presencia de modelos anidados.

Raftery usa el siguiente criterio acerca de las diferencias en los BIC entre modelos: si la diferencia es menor a 2 casi ni vale la pena tenerla en cuenta, si está entre 2 y 5 es digna de atención, entre 5 y 10 es fuerte, y mayor a 10 es muy fuerte. 

 

Con respecto a AIC, tenemos:

relativa verosimilud de los modelos = e^ [(AIC1 - AIC2)/2]

En la literatura que tuve ocasión de consultar, no está establecido que se considera una verosimilitud relativa menor, media o grande.




domingo, 17 de noviembre de 2019

Regresión lineal múltiple. Ejemplo de detección de heterocedasticidad en tests diagnósticos. Video

 Se mostrará cómo detectar heterocedasticidad mediante rvfplot (¿y avplots?).

En el video se utilizará la sintaxis que sigue:


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

*creación de base

clear all

set seed 1204

set obs 1000

gen x1 = round(runiform() * 100) + 5

gen x2 = round(runiform() * 100) + 5

gen y = 2 * x1 + 2 *x2 + rnormal(0, 4*x1)

*gráficas iniciales exploratorias

lowess y x1

lowess y x2

*construcción del modelo

regress y x1 x2

rvfplot

avplots

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

Video



viernes, 15 de noviembre de 2019

Regresión lineal. Pruebas diagnósticas. Video

Las regresiones lineales piden, para ser enteramente confiables, que se cumplan una serie de supuestos. Luego de creado un modelo se verifica hasta donde se cumplen esos modelos. 

La inspección inicial de las relaciones entre la variable dependiente y las independientes nos dan una primera guía acerca del cumplimiento de los supuestos, pero una visión más definitiva, en particular para los modelos con múltiples variables independientes, se obtienen con comandos de pos estimación, esto es, con comandos que se corren luego de establecido el modelo.

Aquí veremos los siguientes comandos de pos estimación para chequear supuestos:

rvfplot. (Nos permite ver la relación entre residuos y valores predichos. Brinda un gráfico similar al de zpred contra zresid de SPSS).

Predict res, res seguido de kdensity res. (Para estudiar normalidad de residuos)

avplots (Para estudiar linealidad de las relaciones de cada una de las variables

predict cook, cooksd , seguido de extremes cook (Para analizar si hay outliers que están pesando demasiado en la ecuación de predicción).

Se verá cómo trabajar con estos comandos usando la sintaxis adjunta.



miércoles, 13 de noviembre de 2019

Regresión lineal: coeficientes beta estandarizados. Video


En regresión múltiple, los coeficientes beta estandarizados permiten valorar la importancia relativa de cada variable independiente dentro de la ecuación.

Son los coeficientes que obtendríamos si estandarizáramos (con valores z) todas las variables.

Los coeficientes beta indican cuánto cambia la variable dependiente por cada desviación estándar de la variable predictora.

Si el coeficiente beta es negativo, el coeficiente beta nos indica en cuánto decrece la variable dependiente por cada incremento de una desviación estándar de la variable predictora.

En regresión múltiple, los coeficientes beta estandarizados permiten valorar la importancia relativa de cada variable independiente dentro de la ecuación.

Para obtener los coeficientes beta, se usa la opción beta luego del comando regress.

regress var_depen var_indep1 var_indep2 varindep3, beta


Estos coeficientes proporcionan una pista muy útil sobre la importancia relativa de cada variable independiente en la ecuación de regresión. En general, una variable tiene tanto más peso (importancia) en la ecuación de regresión cuanto mayor (en valor absoluto) es su coeficiente de regresión estandarizado.



Para el video adjunto, se utilizará la base creada a partir de la sintaxis que sigue:


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

clear

set obs 300

set seed 1234

gen edad = trunc(runiform() * 40 + 30)

gen presion_art = round(((edad * 0.07 + 8) + rnormal(5, 3)), .1)

replace presion_art = round((18 + rnormal(0, 1)), .1) if presion_art > 21

gen puntaje_memoria = round(294 - edad * 1.50 - 4.0* pres + rnormal(0, 12))

regress puntaje_memoria edad pres, beta

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


Video








lunes, 11 de noviembre de 2019

Recomendaciones de Isabel dos Santos para realizar un análisis multivariado


A continuación transcribo las recomendaciones que da Isabel dos Santos Silva en su libro "Epidemiología del Cancer: Principios y Métodos", libro patrocinado por una agencia de la Organización Mundial de la Salud.

En la página 346 pueden leerse los puntos que aquí presento ligeramente modificados y con mis propias palabras:


1) Produzca tablas de frecuencias y tablas cruzadas para chequear que no hay datos erróneos.

2) Sea la enfermedad E y sean A, B, C y D posibles predictores. En este paso analícense las relaciones bivariadas A-E, B-E, C-E y D-E.

3) Estratifíquese por posibles confusores o variables que puedan interactuar: por ejemplo, si se tiene la relación A-E y se piensa que puede estar confundida por B, o interactuar con B, háganse estratos con los distintos valores de B, y en cada uno de ellos analícese la relación A-E.

4) Puede pasar que los estratos den valores similares entre sí y similares a la relación cruda A_E. En este caso no hay confusión ni interacción.

5) Puede pasar que los estratos muestren similares asociaciones A-E, pero que estas asociaciones sean distintas de la asociación cruda A-E. En estos casos hay confusión.

6) Puede pasar que los estratos muestren distintas asociaciones A-E, y que el valor de la asociación dependa del estrato. En estos casos hay interacción o, lo que es lo mismo, modificación del efecto.


7) Use técnicas de regresión para ajustar simultáneamete por todos los confusores y dar cuenta de las interacciones relevantes.

Y ahora con palabras de dos Santos:

"The simple classical methods based on stratification should always be used in the initial phase of an analysis. The cross-tabulations used in stratification keep the investigator in touch with the data".

"Regresion models can be used in a second stage of the analysis to adjust simultaneously for several confounders. In contrast to the classical methods, regression modelling is, to a certain extent, a 'black bos' approach an because of this, it may lead to serious errors. These methods ara complex statistical procedures that should never be used by those who are unfamiliar to them."

domingo, 10 de noviembre de 2019

Ejercicio de interacción de variable continua con variable categórica (sin solución)


Un investigador cree que los puntajes alcanzados en el sistema educativo pesan fuertemente sobre el salario, por lo que significan en tanto conocimientos aprendidos y en capacidad para aprender. Pero cree también que hay un efecto de interacción entre los colegios a que concurrieron los alumnos y los puntajes: mayores puntajes son mejor retribuidos si las personas fueron a colegios de elite.

Se pide al estudiante que:

1) Analice mediante una regresión con interacción las hipótesis arriba planteadas.

2) Grafique, con ayuda de los comandos margins y marginsplot, la relación entre salarios, puntajes alcanzados y caracter del colegio (elite o no).

3) Interprete la gráfica.


************** Sintaxis de construcción de la base********
clear all
set obs 300
set seed 1699
gen colegio_elite = rbinomial(1, 0.10)
label define colegio_elite 0 "No elite" 1 "Elite"
label values colegio_elite colegio_elite
gen puntaje_conocimientos = rnormal() * 15 + 100
gen salario = puntaje_conocimientos * 15 + colegio * 60 + rnormal(0,95) if colegio == 1 
replace salario = puntaje_conocimientos * 9 + 550+ rnormal(0, 95)  if colegio == 0 

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

miércoles, 30 de octubre de 2019

Problema de interacción de dos variables continuas (sin solución)


El siguiente ejemplo está inspirado en uno del estupendo libro de Jim Frost Regression Analysis




Imaginemos que deseemos maximizar la resistencia (strength) de una aleación, y que tenemos razones teóricas para creer que depende de la temperatura (temperature), la presión (pressure) y el tiempo (time) en el horno.

Se piensa también, a partir de consideraciones teóricas, que existe interacción entre temperatura, presión y resistencia.

Se pide:


1) Establezca la ecuación de regresión para la variable dependiente resistencia (strength), con las variables independientes temperatura, presión, tiempo, y la interacción entre temperatura y presión.


2) Grafique la relación entre resistencia y temperatura con ayuda de los comandos margins y marginsplot, para distintos puntos de presión.
[margins, at (temperature=( 95 (5) 110)  pressure= (70 (5) 80))
marginsplot]

(Nota: para graficar un caso de interacción de dos variables continuas, se emplea un solo at. Se abre paréntesis y allí se ponen las dos variables, seguidos de signos "=" y de los valores que se desean graficar).


3) Interprete.


4) Grafique la relación entre resistencia y presión, para distintos puntos de temperatura, con ayuda de los comandos margins y marginsplot. [margins, at ( pressure= (70 (5) 80)  temperature=( 95 (5) 110) )]


5) Interprete.




Base de datos

viernes, 25 de octubre de 2019

Regresión lineal. Margins y marginsplot. Texto


Los comandos margins y marginsplot son sumamente útiles cuando estamos en presencia de interacciones y de relaciones curvilíneas.

En el documento se muestran las sintaxis a utilizar y los resultados que producen.


domingo, 20 de octubre de 2019

Interaccion. Dos variables cuantitativas y una categórica. Video

En este ejemplo se analiza la relación entre palabras aprendidas de un idioma extranjero y tiempo de estudio. Luego se introduce la variable Piensa Viajar.

Parece razonable pensar que las palabras aprendidas de un idioma extranjero por hora dependen de si piensa viajar o no. Si piensa viajar aumenta la motivación, y es probable que en cada hora se aprendan más palabras.

La de arriba es una hipótesis de interacción: el efecto de las horas de estudio sobre las palabras aprendidas depende de si piensa viajar o no.

La interacción se representará en la regresión por el producto de las variables en interacción. Aquí se introduce el producto de las variables piensa viajar por horas de estudio.

Cuando hay interacciones se usa una nomenclatura especial:
las palabras categóricas llevan delante una i. Ejemplo: i.piensa_viajar

Las continuas llevan una c. Ejemplo: c.horas_estudio

Y el término de interacción se escribe:
i.piensa_viajar#c.horas_estudio

La base a utilizar surge de la siguiente sintaxis:



*******************************************************************
clear
set seed 2027
set obs 5000
gen piensa_viajar = rbinomial(1, 0.55)
gen horas_estudio = round(rnormal(250, 70))
gen palabras_aprendidas = round(300 + 2 * horas_estudio + rnormal(0,200)) if piensa_viajar == 0
replace palabras_aprendidas = round(500 + 16 * horas_estudio + rnormal(0,200)) if piensa_viajar == 1
*******************************************************************

Video

jueves, 10 de octubre de 2019

Interacción. Dos variables cualitativas y una continua. Video.

La sintaxis adjunta genera una base que simula datos sobre personal administrativo que no habla idiomas, que habla inglés o chino, o que habla ambos idiomas.

Se trata de conocer la importancia que tiene sobre el salario hora, el conocimiento de dichos idiomas por separado y conjuntamente.

Se mostrará una interacción: el efecto de dos características (aquí hablar chino y hablar inglés) es distinto de la suma de ambos efectos! En este caso es una sinergia: saber ambos idiomas redunda más que la suma de cada uno por separado.


************************************************
clear all
set obs 600
set seed 1534
gen habla_chino = rbinomial(1,0.35)

label define habla_chino 0 "No habla chino" 1 "Habla chino"
label values habla_chino habla_chino
gen habla_ingles = rbinomial(1,0.55)

label define habla_ingles 0 "No habla inglés" 1 "Habla inglés"
label values habla_ingles habla_ingles
gen salario_hora = rnormal(500, 15)
replace salario_hora = salario_hora + 100 if habla_chino == 1
replace salario_hora = salario_hora + 150 if habla_ingles == 1
replace salario_hora = salario_hora + 400 if habla_ingles==1 & habla_chino== 1
************************************************


Video

lunes, 30 de septiembre de 2019

Interacción. Ejemplo con tres variables categóricas. Video.

La base adjunta tiene información sobre presos liberados que reciben o no ayuda del Patronato del Liberado.

Se advierte en un primer momento una asociación entre recibir ayuda y no reincidir: quienes son ayudados reinciden menos.

Pero surge una segunda hipótesis que se desea verificar: que la acción del Patronato es más importante en el subgrupo de quienes no tienen capital social (amigos, conocidos, etc.) que en el de quienes sí tienen.

En los datos que nos ocupan sucede eso: el Patronato es importante para quienes no tienen apoyos y no lo es para quienes los tienen.

Este es un caso típico de interacción: para contestar sobre la eficacia del Patronato, debemos decir que depende de una tercera variable: en este caso el capital social del ex preso.




Base

Video

domingo, 15 de septiembre de 2019

Regresión lineal. Ejercicio sobre supresión (sin solución)

 Una compañia de préstamos desea investigar la relación entre ingresos y deuda entre pagadores atrasados. Desea además saber si el sexo influye.

Genere la base (hipotética), corriendo la sintaxis que sigue:


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

cls

clear all

set seed 185966

set obs 500

gen sexo = trunc(runiform() * 2)

label define sexo 0 "Hombre" 1 "Mujer"

label value sexo sexo

gen ingresos = 3500 + runiform() * 2000 - 500 * sexo

gen deuda = -0.5 * ingresos - 1500 * sexo + rnormal(8000, 500)

lowess deuda ingresos

regress deuda ingresos

regress deuda ingresos i.sexo

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


Se pide al estudiante:

1. Grafique la relación entre deuda (variable dependiente) e ingresos.

2. Efectúe una regresión lineal solo con deuda e ingresos.

3. La regresión anterior, ¿da un modelo significativo?

4. ¿Cuál es su R cuadrado ajustado?

5. ¿Cuál es su Root MSE?

6. Ahora genere un nuevo modelo  incorporando además la variable categórica sexo.

7. ¿Este modelo es ahora significativo?

8. ¿Cómo cambió el R cuadrado ajustado?

9. ¿Cómo cambió el Root MSE?

10. ¿Cómo cambió el coeficiente de ingresos?

11. Explique los cambios anteriores.

12. ¿Cuál es la ecuación de regresión del nuevo modelo?

13. Según este último modelo, si se aumentan los ingresos en una unidad, ¿es cuánto varía la estimación de la deuda?



martes, 10 de septiembre de 2019

Confusión. Ejemplo de relación suprimida. Video.

La base que utilizaremos simula sueldos de docentes de idiomas con distintos niveles de solvencia.

Primero se analizará la relación entre sueldo y sexo, y no se verá ninguna relación. Hombres y mujeres ganan lo mismo.

Pero las mujeres tienen en esta base mayores niveles de solvencia, y a igual nivel de solvencia los hombres ganan bastante más que las mujeres.

Esta relación sexo sueldo estaba suprimida, no era visible. Solo se hizo visible cuando se incorporó al modelo la solvencia. La solvencia es una variable confusora en la relación sexo-sueldo.

Base

Video

viernes, 30 de agosto de 2019

Confusión. Ejemplo con variables continuas y regresión lineal. Video

Los casos de confusión también aparecen en regresiones lineales.

Aquí se verá la asociación entre horas viendo el canal de televisión National Geographic y puntaje en examen Geografía.

Un primer análisis sugiere que ver el canal influye fuertemente sobre el puntaje. Pero quienes miran más el canal también estudian más Geografía. Luego de que se tiene esto en cuenta, baja la influencia que se le atribuirá a ver el canal sobre los puntajes.

Base

Video


martes, 20 de agosto de 2019

Confusión. Concepto y ejemplo con dos variables categóricas. Video

En este video se presenta el fenómeno de confusión (emparentado con los conceptos de espureidad, espureidad parcial y supresión manejados con estos nombres en las ciencias sociales).

Se dice que hay confusión cuando las asociaciones entre variables sugieren una posible relación causal que, analizada más de cerca, no existe o es de una magnitud distinta a la que sugiere el primer análisis de datos.

Aquí se analiza una base ficticia que muestra una aparente relación entre tomar café y tener cardiopatías: en la base entre quienes toman café hay más cardiópatas.

Pero ello no se debe a que el café genere cardiopatías, sino a que entre los aficionados al café hay más fumadores.





Base de datos

Video

jueves, 25 de julio de 2019

Notación factorial. Texto

La notación factorial de Stata facilita mucho el trabajo con regresiones.

Hay cuatro elementos:


i.

Se usa en las regresiones para decirle a Stata que una variable es categórica, y así no tener que hacer variables dummy una por una.

Por ejemplo, si queremos predecir ingresos a partir de la variable profesión (con varias categorías) escribiríamos:

regress ingresos i.profesion



#
Se usa en las regresiones para que Stata genere una variable producto de dos variables. Cuando se desean analizar interacciones, se necesitan variables producto. También para cuando se desean valores al cuadrado o al cubo.


Por ejemplo, si deseamos ver la influencia de raza, genero y de su interacción en los ingresos, pediríamos:

regress ingresos i.raza i.genero i.raza#i.genero

i.raza#i.genero calcula automáticamente la variable producto de raza por género, que es necesaria para estudiar interacción. Si no fuera por esta notación, deberíamos crear dicha variable producto con generate.

También se usa para los cuadrados y los cubos en regresiones cuadráticas y cúbicas.
Por ejemplo, si quisiéramos una regresión que tenga como variables predictoras continuas a X y a X cuadrado, pediríamos:

regress y X c.X#c.X

Y si quisiéramos tomar como variables independientes a las variables continuas X, Xcuadrado y Xcubo, podríamos pedir

regress y X  c.X#c.X   c.X#c.X#c.X




c.

Se usa en las regresiones para decirle a Stata que una variable independiente es continua. Siempre se puede usar. En algunas ocasiones es imprescindible usar la c y en otras es opcional. Es obligatorio cuando hay interacciones.

Ejemplos:

regress salario c.aniosEducacion // aquí la c es opcional.

regress salario c.aniosEducacion   i.raza   c.aniosEducacion#i.raza //En las interacciones es obligatoria la c para las variables continuas.




##

El doble numeral indica que se desean los efectos principales y la interacción.

Por ejemplo,

regress y c.x##c.z  // Este comando indica que en la regresión de y, las variables predictoras son tres:  x, z y la interacción entre x y z. (En el ejemplo de arriba la c. indica adicionalmente que las variables son continuas).


Otro ejemplo:

regress rendimiento ansiedad##ansiedad, significa que las variables predictoras son dos: ansiedad y ansiedad multiplicada por ansiedad, es decir, ansiedad y ansiedad al cuadrado.


Otro ejemplo:
Si queremos regresar Y con la variable continua X, con X al cuadrado y con X al cubo,
podemos pedirlo también de la siguiente manera:

regress Y c.X##c.X##c.X


Escribiendo esto así, regresará Y con las variables independientes X, X al cuadrado y X al cubo.



Es extremadamente importante familiarizarse con esta nomenclatura: los comandos margins y marginsplot que se verán más adelante no funcionan si no es con ella.





Ejemplos varios:


regress cholesterol i.smoker##i.agegrp c.bmi i.smoker#c.bmi

Aquí las variables independientes son smoker (categórica), agegrp (categórica),
su interacción, bmi (variable continua: bmi por body mass index) y la interacción
de smoker con bmi.




regress price weight length headroom c.length#c.weight

Aquí las variable independientes son price (es continua, no está la c porque es opcional, weight (continua con c opcional). headroom, y la interacción entre length y weight (en las interacciones con variables continuas, la c es obligatoria).



regress peso_bebe c.edad_madre##i.fumadora

Aqui las variables independientes son edad de la madre (variable continua), su caracter de fumadora (variable categórica) y la interacción entre ambas variables.






sábado, 20 de julio de 2019

Regresión lineal. Modelos polinómicos. Video



En ocasiones tenemos relaciones curvilíneas entre variables. Aún así, la técnica de regresión lineal puede con frecuencia funcionar eficazmente.

Las relaciones curvilíneas muchas veces pueden ser ajustadas introduciendo como variables predictoras adicionales la variable elevada al cuadrado y/o al cubo.


Terminos cuadráticos 

Un término cuadrático es simplemente una variable elevada al cuadrado.


Por ejemplo, véase la siguiente relación entre x e y.






Se grafica abajo, en color rojo, la predicción lineal hallada usando como variables predictoras X y su cuadrado.




 Cuando la curva ajusta bien, se da que 1) aumenta el R^2 ajustado y 2) la variable X^2 se muestra significativa. Además, la verificación de los residuos del modelo nos dirá que estos se distribuyen normalmente y en forma heterocedástica, como se verá más adelante.


Si no ajustara bien, podrán buscarse otros modelos para ajustar dicha curvatura.


En las regresiones no conviene generar una nueva variable con el cuadrado. Para tener el término cuadrado de una variable continua var1, nos conviene pedirlo así: var1#var1. La razón es que los comandos margins y marginsplot exigen esta nomenclatura para funcionar adecuadamente. Todo esto se verá más adelante.



***


Los modelos polinómicos no solo pueden tener términos al cuadrado, también los pueden tener cúbicos, elevados a la cuarta potencia, etc.


Términos cúbicos

 La gráfica que sigue muestra una doble inflexión, primero hacia abajo y luego hacia arriba. 





Estas curvas pueden ser modeladas, a veces, con un término al cuadrado y otro cúbico. O sea, los predictores fueron X, X^2 y X^3. Abajo se muestra el ajuste del modelo. Los valores predichos están graficados en rojo, y como puede verse, reflejan muy bien la relación entre las variables. Los términos cúbicos de variables continuas también conviene pedirlos usando notación factorial. Así var1 al cubo se representará en el comando regress con c.var1#c.var1#c.var1. La c indica que la variable es continua y el símbolo de numeral funciona aquí como si fuera un símbolo de multiplicación.





 ¿Puede un modelo lineal predecir una relación curvilínea? ¿Es lineal un modelo que tiene variables elevadas al cuadrado y al cubo? Sí, es lineal. Veamos la definición matemática de un modelo lineal.


Dice Jim Frost:

“linear models must follow one very particular form:

Dependent variable = constant + parameter * IV + … + parameter * IV
The form is linear in the parameters because all terms are either the constant or a parameter multiplied by an independent variable (IV). A linear regression equation simply sums the terms. While the model must be linear in the parameters, you can raise an independent variable by an exponent to fit a curve. For instance, you can include a squared or cubed term.”



Y si una ecuación no tiene este formato no es lineal.
Por ejemplo, si X figura como exponente en la ecuación (b^x), si hay cosenos de X, etc. Las ecuaciones no lineales son más difíciles de interpretar. Si se puede modelar bien una ecuación mediante modelos lineales es mejor: se interpretan más fácilmente. Para usar modelos no lineales, probablemente el mejor camino sea consultar a estadísticos.


Video













miércoles, 10 de julio de 2019

Regresión lineal. Residuos. Comando predict. Video

En este ejemplo se presentará un hipotético control de la Dirección Impositiva de los impuestos pagados.

Supondremos que se tienen datos sobre lo que los contribuyentes (aquí solamente 10) gastaron con sus tarjetas de crédito y los impuestos que pagaron.

Se hallará una ecuación de regresión y se verá qué tan alejados están los valores pagados de impuestos de la estimación que surge de la ecuación de regresión: cuanto menos hayan pagado de impuestos con respecto al valor esperado, más sospechosa será la persona de haber eludido impuestos.

La resta entre un valor observado y un valor predicho por el modelo se llama RESIDUO.


La base con que trabajaremos se genera corriendo la siguiente sintaxis:


 ***************************************
clear all
set obs 10
set seed 1479
gen gastos_tarjeta = runiform() * 500 + 400
gen impuestos = 300 + gastos_tarjeta * 0.03 + rnormal(0, 3)
***************************************

Video

viernes, 5 de julio de 2019

Ejercicio de regresión lineal con variable categórica (sin solución)


Genérese una base corriendo la sintaxis que sigue:

****************
clear all
set obs 300
set seed 1234
gen tema = trunc(runiform()*3) + 1
label define tema 1 "policial" 2 "comedia" 3 "politica"
label values tema tema
gen presupuesto = round(rnormal(4000, 800))

label variable presupuesto "presupuesto en miles de dólares"
gen taquilla = presupuesto * 2 + (tema==3) * 0.8 + (tema==2) * 800 + rnormal(0, 1600)

label variable taquilla "Taquilla en millones de dólares" 
cls

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

La base simula datos sobre películas: sobre su presupuesto, tema y taquilla.

Un investigador desea predecir la taquilla en base a su presupuesto y tema.

1) De un primer análisis gráfico, ¿se justifica hacer un modelo de predicción lineal con estas variables?

2) Dado ese primer análisis gráfico, ¿qué conclusiones espera?

2)  Efectúe la regresión lineal. ¿Cuál es la ecuación de predicción?

3) ¿Ambas variables son significativas?

4) Las diferencias entre temas (policial, comedia y política), ¿son todas significativas? Explique.

domingo, 30 de junio de 2019

Regresion lineal múltiple. Segundo ejemplo. Video


En este video analizaremos una base real, que tiene datos sobre 400 establecimientos escolares de California del año 2000, base que tomo de esta página


Las variables que nos interesarán son:


api00           Academic Performance Index (Indice de Performance Academíca año                    2000)

meals           pct free meals (% de comidas gratis: indicador indirecto de                        pobreza)

ell             english language learners (Indicador de niños inmigrantes)

yr_rnd          year round school (Escuela que funciona todo el año. La carga                      horaria es la misma: las clases se espacían más)

mobility        pct 1st year in school (Porcentaje de alumnos nuevos en la escuela)

acs_k3          avg class size k-3 (Tamaño promedio de clases en preescolares)

acs_46          avg class size 4-6 (Tamaño promedio clases en la escuela)

full            pct full credential (% de docentes con credenciales plenas)

emer            pct emer credential (% de docentes con credenciales de emergencia)

enroll          number of students (Número de estudiantes en la escuela)



Base

Video

jueves, 20 de junio de 2019

Regresión lineal múltiple. Primer ejemplo. Video


A partir de la constitución de una base con la sintaxis adjunta, se arma modelo para predecir el colesterol a partir de las variables sexo, calorías de la dieta, porcentaje de grasa de la dieta, y minutos de TV -este último como indicador de sedentarismo-.


****************
clear all
set obs 500
set seed 1320
gen minutos_TV = round(rnormal(300,50))
gen pct_grasasDieta = rnormal(30,8)
gen calorias_dieta = round(rnormal(1600,100) + pct_grasasDieta * 10 + rnormal(0, 300))
gen sexo = rbinomial(1,0.4)
label define sexo 0 "Hombre" 1 "Mujer"
label values sexo sexo

gen colesterol = minutos_TV * 0.05 + pct_grasasDieta + 0.02 * calorias_dieta + rnormal(0,17) - 15*sexo
****************


Video

viernes, 14 de junio de 2019

Homocedasticidad, heterocedasticidad, estat hettest y opción robust. Video.

 En este video se verá el concepto de homocedasticidad y su opuesto, el de heterocedasticidad.

Uno de los supuestos del método de regresión lineal es la homocedasticidad. En este video se explica como explorarla gráficamente en las regresiones con una sola variable predictora, se ve un test de significación para la homocedasticidad (estat hettest), y una forma de contrarrestar las dificultades que presenta la heterocedasticidad: usar el comando regress con la opción robust.


do file

Video

lunes, 10 de junio de 2019

Regresión lineal: relaciones curvilíneas. Video

Antes de hacer una regresión hay que graficar.

Hay que graficar para detectar outliers, si los hay.

Hay que graficar para detectar relaciones curvilíneas si las hay.

En el video que sigue, se utilizará la base que surge de correr la sintaxis siguiente.



********************************
clear all
set obs 100
set seed 568995
gen ansiedad = runiform() * 9 + 1
replace ansiedad = round(ansiedad, 0.2)
gen puntaje_examen = 30 + 20 * ansiedad -1.5 * ansiedad^2 + rnormal(0,5)
********************************



Video

jueves, 30 de mayo de 2019

Regresión lineal: outliers. Video

En este video se muestra que es un outlier, cuál es su influencia en las regresiones lineales, y posibles cursos de acción si los hay.

El video hace uso de la base que genera el correr la siguiente sintaxis:

************************************
clear all
set obs 25
set seed 5628
gen años_educacion = round(rnormal(15, 3))
gen salario_hora = 25 + 3 * años_educacion + rnormal(0,5)
set obs 26
replace años_educ = 28 in 26
replace salario_hora = 48 in 26
************************************


Video

domingo, 26 de mayo de 2019

Regresión lineal. Ejercicio con variable predictora con cuatro categorías (sin solución)


Corra la sintaxis que sigue a fin de generar una base de datos.

***************
clear all
set obs 400
set seed 1234
gen metodo= trunc((runiform() * 4) + 1)
gen palabras = trunc(rnormal(3000, 400))
replace palabras = palabras + 500 if metodo == 3

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

La base simula la cantidad de palabras aprendidas en inglés luego de cursos de duración similar dictados según varios métodos de enseñanza, aquí llamados método 1, 2, 3 y 4.

Se pide al estudiante:

1) Haga un análisis gráfico que muestre la relación entre los distintos métodos y la cantidad de palabras aprendidas. ¿Cuáles son las conclusiones preliminares que saca?

2) El análisis gráfico, ¿sugiere que es posible realizar una regresión lineal para predecir la cantidad de palabras aprendidas en función del método?

3) Efectúe la regresión lineal anterior. ¿Cuál es la ecuación de regresión?

4) ¿Cuál es el método que en principio lleva a aprender más palabras?

5) La variable método, ¿es significativa?

6) ¿Entre qué métodos hay diferencias significativas, si las hay?


sábado, 25 de mayo de 2019

testparm y pwcompare. Video


Dos comandos útiles para analizar las variables categóricas en el seno de regresiones son testparm y pwcompare. Estos son comandos postestimación: primero debe hacerse la regresión que interesa y luego de estimarla se corren estos comandos.

testparm es útil para testear la hipótesis de que una variable categórica, introducida como un conjunto de variables dummy, no aporta al modelo. Por ejemplo, podemos tener en una regresion lineal la variable profesion con valores abogacía, escribanía y diplomacia.

testparm testea que los coeficientes de abogacía, escribanía y diplomacia son simultáneamente 0. Si el p-valor de testparm es mayor a 0.05, no podemos descartar la hipótesis nula de que todos los coeficientes sean 0 en el universo, y entonces probablemente no tiene sentido mantener la variable profesión en el modelo.

Si en cambio testparm arroja un p-valor menor a 0.05, no todas las profesiones tienen coeficientes iguales entre sí e iguales a 0 (recuérdese que en un modelo de regresión lineal la categoría base siempre tiene un coeficiente 0).

Y lo que hace pwcompare es comparar cada coeficiente con cada uno de los otros, y establecer cuáles de las diferencias son significativas. Por ejemplo, puede llegarse a la conclusión de que abogacía y diplomacia no tienen diferencias significativas entre sí, pero que sí las tienen con escribanía.

do file
Video

lunes, 20 de mayo de 2019

Ejercicio de regresión lineal con variable cualitativa no dicotómica (sin solución).


El siguiente ejercicio pedirá la construcción e intepretación de una regresión lineal con una variable predictora cualitativa no dicotómica. Se trata de hallar el valor esperado de quienes practican cricket, fútbol, básquetbol, maratonismo y golf dada la base de datos que se genera a partir de sintaxis.

**************************************
clear
set obs 300
set seed 12589
gen deporte = trunc(runiform()*5)
label define deporte  0 "cricket"
1 "futbol" 2 "basquetbol" 3 "maratonismo" 4 "golf" 
label values deporte deporte
gen puntaje_aerobico = round(rnormal(100,15)) if deporte <=2
replace puntaje_aerobico = round(rnormal(140,15)) if deporte == 3
replace puntaje_aerobico = round(rnormal(60,15)) if deporte == 4
**************************************


Ejercicio


  1. Pida las medias de puntaje para cada uno de los deportes.
  2. Corra la regresión, tomando como variable a predecir el puntaje en prueba aeróbica y como variable predictora el deporte practicado (No olvide pedirle a Stata que a partir de la variable  deporte genere variables dummy).
  3. ¿Se puede rechazar la hipotesis nula de que conocer el deporte que practica no aporta a la predicción del puntaje aeróbico? Explique.
  4. ¿Cuál es la varianza explicada por el modelo?
  5. ¿Cuál es la ecuación de predicción del modelo?
  6. ¿Qué predice el modelo para quienes practican cricket, fútbol, básquetbol, maratonismo y golf?
  7. ¿Coinciden estas predicciones con las medias de puntaje de los distintos deportes?
  8. Efectúe una regresión pidiendo como categoría base el golf. ¿Cuántos puntos adicionales sobre el golf se esperan para un maratonista?
  9. Los datos probablemente mostrarán mayor capacidad aeróbica del maratonista. ¿Se puede concluir solo a partir de estos datos que hay aquí una relación causal en la que el maratonismo incrementa la capacidad aeróbica? Fundamente su respuesta.


viernes, 10 de mayo de 2019

Regresión lineal simple. Variables cualitativas no dicotómicas. Video

En un video anterior, dijimos que en la regresión lineal pueden usarse como variables predictoras, variables cuantitativas y variables cualitativas, a condición de que estas sean dicotómicas, esto es, que tomen solo dos valores.

¿Pero que pasa cuando tenemos una variable caulitativa que toma 3 o más valores?

Estas variables también podemos usarlas como variables predictoras, a condición de transformarlas en variables dicotómicas (dummies).

En este video mostraremos como hacerlo.

Se trabajará con la base que genera la siguiente sintaxis.


********************************
clear all
set obs 200
set seed 5635
gen metodo_ensenanza = trunc(runiform() * 4 + 1)
gen puntaje = round(rnormal(200,15)) if metodo_ensenanza < 4
replace puntaje = rnormal(300,15) if metodo_ensenanza == 4
********************************




Video

martes, 30 de abril de 2019

Ejercicio de regresión lineal simple (sin solución).

Imaginemos que un conservatorio musical registró el tiempo que los estudiantes dedicaron al estudio y las evaluaciones que obtuvieron de expertos. Asumamos que los datos son los de la base que se genera a partir de la sintaxis que sigue.

****************************
clear all
set obs 200
set seed 1457
gen tiempo_estudio = round(runiform()* 30 + 150)
gen evaluacion= round(-60 + 1.6 * tiempo_estudio + rnormal(15,8))

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




Ejercicio

Genere una base de datos a partir de la sintaxis de arriba. Luego:

  1. Grafique la relación entre tiempo de estudio y evaluación.
  2. ¿La relación se muestra aproximadamente lineal?
  3. ¿Hay outliers (valores extremos) muy marcados? ¿Hay puntos muy apartados de la nube de puntos?
  4. Si la relación es aproximadamente lineal y no hay grandes outliers, halle la ecuación de regresión para predecir el resultado de la evaluación usando como variable predictora el tiempo de estudio.
  5. ¿El modelo es significativo? Explique cómo lo sabe a partir de la regresión y qué significa esto.
  6. ¿Cuál es el R cuadrado del modelo? ¿Cuál es el valor máximo y el valor mínimo que puede tomar el R^2? ¿Qué nos dice el R^2 del modelo?
  7. ¿Cuál es la ecuación de regresión para este modelo?

sábado, 20 de abril de 2019

Regresión lineal simple. Video


En este video se verán los primeros conceptos de regresión lineal simple. Se analizará la relación entre dos variables continuas: notas promedio en liceo y notas promedio en universidad.

Se trabajará con la base que surge de la siguiente sintaxis:

***************************
clear all
set obs 200
set seed 1458
gen notas_liceo = runiform() * 6 + 6
gen notas_universidad = notas_liceo + rnormal(0,1)
drop if notas_universidad > 12
gen sexo = rbinomial(1, 0.4)
label define sexo 0 "Hombre" 1 "Mujer"
label values sexo sexo
***************************


Video

miércoles, 10 de abril de 2019

Ejercicio de conversión de variables almacenadas como cadenas a variables almacenadas numéricamente (sin solución)

Genere una base de datos corriendo el siguiente archivo do:

***********************
clear all
set obs 200
set seed 1269
gen altura = rnormal(1.70, 0.06)
label variable altura "Altura en metros"
gen peso = altura*100 - 100 + rnormal(0,6)
gen cintura = peso + rnormal(5,7)
label variable cintura "Cintura en cm"
tostring altura, replace force
tostring peso, replace force
tostring cintura, replace force
replace peso = "Sin dato" in 4/6
replace peso = subinstr(peso, ".", "," , .)

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

Imaginemos que estos datos los obtuvimos de una base recogida en un servicio de salud.

Se le pide:
1) indique cuál es la media de peso.
2) indique cuál es la media de altura.
3) calcule el índice de masa corporal (IMC), que tiene como fórmula
IMC= peso en kg / (altura en metros) ^2
4) grafique la relación entre cintura e IMC, e interprete la gráfica


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