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
***************************************************