lunes, 30 de diciembre de 2019
viernes, 20 de diciembre de 2019
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
- Estudie gráficamente la relación de las variables predictoras con la variable csat y comente.
- Haga un modelo de regresión múltiple con las variables predictoras de arriba.
- Grabe este primer modelo
- Elimine de a una las variables no significativas, si las hubiera.
- Grabe los sucesivos modelos
- Preséntelos en una tabla comparativa y seleccione fundadamente el que a su juicio es el mejor.
- Indique la ecuación de regresión de dicho modelo.
- Indique qué variables muestran mayor capacidad predictora.
- 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)
- Explore gráficamente la relación entre rendimiento en examen y estrés.
- 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.
- El modelo en su conjunto, ¿es significativo?
- En la ecuación de regresión, ¿el término cuadrático es significativo?
- ¿Cuál es la varianza explicada por el modelo con el término cuadrático?
- 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.
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:
- Sexo
- Años de educación
- Años de experiencia
- Interacción entre años de experiencia y sexo
¿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
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
***********************************************
viernes, 15 de noviembre de 2019
Regresión lineal. Pruebas diagnósticas. Video
Predict res, res seguido de kdensity res. (Para estudiar normalidad de residuos)
predict cook, cooksd , seguido de extremes cook (Para analizar si hay outliers que están pesando demasiado en la ecuación de predicción).
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
************************************
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
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:
jueves, 10 de octubre de 2019
Interacción. Dos variables cualitativas y una continua. Video.
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.
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.
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
jueves, 5 de septiembre de 2019
viernes, 30 de agosto de 2019
Confusión. Ejemplo con variables continuas y regresión lineal. Video
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
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
sábado, 10 de agosto de 2019
jueves, 25 de julio de 2019
Notación factorial. Texto
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.
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
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.
lunes, 10 de junio de 2019
Regresión lineal: relaciones curvilíneas. Video
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
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
- Pida las medias de puntaje para cada uno de los deportes.
- 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).
- ¿Se puede rechazar la hipotesis nula de que conocer el deporte que practica no aporta a la predicción del puntaje aeróbico? Explique.
- ¿Cuál es la varianza explicada por el modelo?
- ¿Cuál es la ecuación de predicción del modelo?
- ¿Qué predice el modelo para quienes practican cricket, fútbol, básquetbol, maratonismo y golf?
- ¿Coinciden estas predicciones con las medias de puntaje de los distintos deportes?
- Efectúe una regresión pidiendo como categoría base el golf. ¿Cuántos puntos adicionales sobre el golf se esperan para un maratonista?
- 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
¿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).
****************************
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))
****************************
- Grafique la relación entre tiempo de estudio y evaluación.
- ¿La relación se muestra aproximadamente lineal?
- ¿Hay outliers (valores extremos) muy marcados? ¿Hay puntos muy apartados de la nube de puntos?
- 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.
- ¿El modelo es significativo? Explique cómo lo sabe a partir de la regresión y qué significa esto.
- ¿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?
- ¿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)
***********************
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
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
lunes, 25 de marzo de 2019
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.
Ambas modalidades realizan la misma fusión. Se diferencian solo del archivo que abren primero.
Archivo nombre_cargo
Archivo cargo_sueldo
Video
miércoles, 20 de febrero de 2019
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