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.