Está en la página 1de 15

Modelo_regresion_lineal_simple_II

April 23, 2022

0.0.1 Inferencia causal?


• Nuestro modelo poblacional es:

𝑦𝑖 = 𝛽0 + 𝛽1 𝑥𝑖 + 𝑢𝑖
• Qué es necesario para que 𝛽1 sea el parámetro de efecto causal de 𝑋 sobre 𝑌 ?
– Intervención: Δ𝑥 = 𝑥𝑖|intervención − 𝑥𝑖|no intervención
– Efecto: Δ𝑦 = 𝑦𝑖|intervención − 𝑦𝑖|no intervención
– Si 𝛽1 es el parámetro de efecto causal en el sentido de que Δ𝑥 ⇒ Δ𝑦 entonces:

Δ𝑦
Δ𝑦 = 𝛽1 Δ𝑥 ⟹ 𝛽1 =
Δ𝑥
– A partir del modelo poblacional:

Δ𝑦 = (𝛽 0 + 𝛽1 𝑥𝑖|intervención + 𝑢𝑖|intervención ) − (𝛽
⏟⏟⏟⏟⏟⏟⏟⏟⏟⏟⏟⏟⏟⏟⏟ 0 + 𝛽1 𝑥𝑖|no intervención + 𝑢𝑖|no intervención )
⏟⏟⏟⏟⏟⏟⏟⏟⏟⏟⏟⏟⏟⏟⏟⏟⏟
=𝑦𝑖|intervención =𝑦𝑖|no intervención

Δ𝑦 = 𝛽1 Δ𝑥 + 𝑢𝑖|intervención − 𝑢𝑖|no intervención

– Es necesario que:

𝑢𝑖|intervención − 𝑢𝑖|no intervención ≡ Δ𝑢 = 0 ⟹ 𝑢𝑖 no tiene relación con la intervención

– Esto se cumple si 𝑋 es una variable i.i.d dentro de la población, es decir, los valores de
𝑋 deben ser asignados aleatoriamente dentro de la población!!
– Si esto se cumple, entonces 𝛽1̂ = 𝜎̂ 𝑋𝑌
2
𝜎̂ 𝑋
es el correcto estimador del parámetro de efecto
causal 𝛽1 .
• Discusión: Qué implicaría esto si queremos establecer el efecto causal de la educación sobre
el salario a partir del modelo poblacional

salario𝑖 = 𝛽0 + 𝛽1 nivel de educación𝑖 + 𝑢𝑖

1
… creen que el nivel de educación es una variable asignada aleatoriamente dentro
de la población?

0.0.2 Supuestos para la inferencia causal


Supuesto 2 (Exogeneidad condicionada):

𝐸[𝑢|𝑋] = 0

• Formalmente, si tomamos el valor esperado condicionado al valor 𝑋 = 𝑥𝑖 en nuestro modelo


poblacional:

𝐸[𝑦𝑖 |𝑋 = 𝑥𝑖 ] = 𝐸[𝛽0 + 𝛽1 𝑥𝑖 + 𝑢𝑖 |𝑋 = 𝑥𝑖 ]

𝐸[𝑦𝑖 |𝑋 = 𝑥𝑖 ] = 𝛽0 + 𝛽1 𝑥𝑖 + 𝐸[𝑢𝑖 |𝑋 = 𝑥𝑖 ]

si se cumple el Supuesto 2 entonces:

𝐸[𝑦𝑖 |𝑋 = 𝑥𝑖 ] = 𝛽0 + 𝛽1 𝑥𝑖

• Ley de las expectativas iteradas: Para cualquiera par de variables aleatorias 𝑊 y 𝑍

𝐸[𝐸[𝑊 |𝑍 = 𝑧]] = 𝐸[𝑊 ]

• Una implicación del Supuesto 2 para el modelo poblacional:

𝐸[𝑢𝑖 |𝑋 = 𝑥𝑖 ] = 0

aplicando la ley de expectativas iteradas:

𝐸[𝐸[𝑢𝑖 |𝑋 = 𝑥𝑖 ]] = 𝐸[0]
𝐸[𝑢𝑖 ] = 0

• Para que sea plausible que el Supuesto 2 se cumpla:

Supuesto 3: 𝑥𝑖 y 𝑦𝑖 son variables aleatorias i.i.d. para todo 𝑖 en la población.

Supuesto 4: La distribución conjunta de 𝑋 y 𝑌 es tal que valores atípicos tienen baja


probabilidad de realizarse, i.e. 0 < 𝐸[𝑥4𝑖 ] < ∞ y 0 < 𝐸[𝑦𝑖4 ] < ∞.

0.0.3 Causalidad: interpretación de los valores 𝛽0 y 𝛽1


• Si 𝐸[𝑦𝑖 |𝑋 = 𝑥𝑖 ] = 𝛽0 + 𝛽1 𝑥𝑖 , 𝛽1 se interpreta como:

𝐸[𝑦𝑖 |𝑋 = 𝑥𝑖′ ] − 𝐸[𝑦𝑖 |𝑋 = 𝑥𝑖 ]


𝛽1 = ; 𝑥𝑖 ≠ 𝑥𝑖′ .
𝑥𝑖′ − 𝑥𝑖
En particular, si 𝑋 es una variable aleatoria continua:
𝑑𝐸[𝑦𝑖 |𝑋]
𝛽1 =
𝑑𝑋

2
[46]: # Hagamos un ejemplo con nuestra base de datos wage1:
library(wooldridge)
head(wage1)
# Creemos la siguiente "submuestra"
muestra <- subset(wage1, married == 0 & services == 1 & educ >= 12)
head(muestra)
# Solo para ilustración de la interpretación de los coeficientes
# SUPUESTO FUERTE: la regresion salario~años de educación cumple con
# el supuesto de exogeneidad condicional estricta
reg_wedu <- lm(wage~educ, data = muestra)
reg_wedu

wage educ exper tenure nonwhite female married numdep smsa no


<dbl> <int> <int> <int> <int> <int> <int> <int> <int> <
1 3.10 11 2 0 0 1 0 2 1 0
2 3.24 12 22 2 0 1 1 3 1 0
A data.frame: 6 × 24
3 3.00 11 2 0 0 0 0 2 0 0
4 6.00 8 44 28 0 0 1 0 1 0
5 5.30 12 7 2 0 0 1 1 0 0
6 8.75 16 9 8 0 0 1 0 1 0
wage educ exper tenure nonwhite female married numdep smsa
<dbl> <int> <int> <int> <int> <int> <int> <int> <int>
24 0.53 12 3 1 0 1 0 0 1
35 4.68 12 3 0 0 1 0 0 1
A data.frame: 6 × 24
51 1.63 12 18 0 0 1 0 2 0
70 2.00 12 3 2 0 1 0 4 1
166 2.00 13 2 6 0 1 0 0 1
238 3.25 12 4 0 0 0 0 0 1

Call:
lm(formula = wage ~ educ, data = muestra)

Coefficients:
(Intercept) educ
-9.082 1.016

• Caso especial de variable discreta D:


{1 si i es ”Mujer”
𝐷𝑖 = ⎨
{
⎩0 si i es ”Hombre”

– Población: Individuos entre 25 y 35 años de edad, con educación terciaria completa,


solteros, empleados en el sector servicios, y que viven en Bogotá.
– Modelo poblacional:

salario mensual𝑖 = 𝛽0 + 𝛽1 𝐷𝑖 + 𝑢𝑖

3
∗ Cómo interpretar el valor de 𝛽1 (y 𝛽0 )?

𝐸[salario mensual𝑖 |𝐷 = 1] − 𝐸[salario mensual𝑖 |𝐷 = 0]


𝛽1 =
1−0

𝛽1 = 𝐸[salario mensual𝑖 |𝐷 = 1] − 𝐸[salario


⏟⏟⏟⏟⏟⏟⏟⏟⏟⏟⏟ mensual𝑖 |𝐷 = 0]
⏟⏟⏟⏟⏟⏟⏟⏟⏟⏟⏟
=𝛽0 +𝛽1 =𝛽0

[47]: # Nuestra submuestra del ejemplo anterior es algo similar al ejemplo


reg_wfem <- lm(wage~female, data = muestra)
reg_wfem

Call:
lm(formula = wage ~ female, data = muestra)

Coefficients:
(Intercept) female
5.957 -3.480

0.0.4 Distribución muestral de los estimadores MCO (OLS)


• Recuerden que utilizando la muestra:

{𝑥1 , … , 𝑥𝑁 }
{𝑦1 , … , 𝑦𝑁 }

los estimadores MCO de 𝛽1 y 𝛽0 son:

1 𝑁 1 𝑁
𝛽0̂ = 𝑦 ̄ − 𝛽1̂ 𝑥̄ = ∑ 𝑦𝑖 − 𝛽1̂ ( ∑ 𝑥𝑖 )
𝑁 𝑖=1 𝑁 𝑖=1

𝑁 1 𝑁
∑𝑖=1 (𝑥𝑖 − 𝑥)(𝑦
̄ 𝑖 − 𝑦)̄ ∑𝑖=1 (𝑥𝑖 − 𝑥)(𝑦
̄ 𝑖 − 𝑦)̄
𝛽1̂ = 𝑁
= 𝑁
𝑁
1
∑𝑖=1 (𝑥𝑖 − 𝑥)̄ 2 𝑁 ∑𝑖=1 (𝑥𝑖 − 𝑥)̄ 2

Ambos estimadores pueden ser escritos como composiciones de promedios!! ⟹ Bajo el


supuesto de muestra grande LGN + TLC implica que para 𝑘 = {0, 1}:

𝛽𝑘̂ ∼ 𝑁 (𝜇𝛽 ̂ , 𝜎𝛽2 ̂ ) ,


𝑘 𝑘

donde 𝜇𝛽 ̂ ≡ 𝐸[𝛽𝑘̂ ] y 𝜎𝛽2 ̂ ≡ 𝑉 (𝛽𝑘̂ ).


𝑘 𝑘

Valor medio de y sesgo de los estimadores 𝛽0̂ y 𝛽1̂

4
El caso de 𝛽1̂
• Noten que a partir del modelo poblacional 𝑦𝑖 = 𝛽0 + 𝛽1 𝑥𝑖 + 𝑢𝑖 , y sumando sobre la muestra:

=𝑁 𝑦̄ =𝑁𝛽0 =𝑁 𝑥̄ =𝑁 𝑢̄

𝑁 ⏞
𝑁 ⏞
𝑁 ⏞
𝑁
∑ 𝑦𝑖 = ∑ 𝛽0 +𝛽1 ∑ 𝑥𝑖 + ∑ 𝑢𝑖
𝑖=1 𝑖=1 𝑖=1 𝑖=1

𝑦 ̄ = 𝛽0 + 𝛽1 𝑥̄ + 𝑢̄

𝑁
∑𝑖=1 (𝑥𝑖 −𝑥)(𝑦
̄ 𝑖 −𝑦)̄
• Utilizando el anterior resultado, 𝛽1̂ = 𝑁 se puede escribir como:
∑𝑖=1 (𝑥𝑖 −𝑥)̄ 2

=𝑦𝑖 =𝑦̄
𝑁
∑𝑖=1 ̄ ⏞
(𝑥𝑖 − 𝑥)(𝛽0⏞
+⏞⏞
𝛽1 𝑥𝑖⏞
+⏞⏞
𝑢𝑖 −(⏞⏞⏞⏞⏞
𝛽0 + 𝛽1 𝑥̄ + 𝑢))
̄
𝛽1̂ = 𝑁
∑𝑖=1 (𝑥𝑖 − 𝑥)̄ 2

𝑁 𝑁
∑𝑖=1 (𝑥𝑖 − 𝑥)(𝛽
̄ 1 (𝑥𝑖 − 𝑥)̄ + (𝑢𝑖 − 𝑢))
̄ ∑𝑖=1 𝛽1 (𝑥𝑖 − 𝑥)̄ 2 + (𝑥𝑖 − 𝑥)(𝑢
̄ 𝑖 − 𝑢)̄
= 𝑁
= 𝑁
∑𝑖=1 (𝑥𝑖 − 𝑥)̄ 2 ∑𝑖=1 (𝑥𝑖 − 𝑥)̄ 2

𝑁 𝑁
𝛽1 ∑𝑖=1 (𝑥𝑖 − 𝑥)̄ 2 ∑𝑖=1 (𝑥𝑖 − 𝑥)(𝑢
̄ 𝑖 − 𝑢)̄
= 𝑁
+ 𝑁
∑𝑖=1 (𝑥𝑖 − 𝑥)̄ 2 ∑𝑖=1 (𝑥𝑖 − 𝑥)̄ 2

𝑁 𝑁 𝑁
∑𝑖=1 (𝑥𝑖 − 𝑥)(𝑢
̄ 𝑖 − 𝑢)̄ ̄ 𝑖 − ∑𝑖=1 (𝑥𝑖 − 𝑥)̄ 𝑢̄
∑𝑖=1 (𝑥𝑖 − 𝑥)𝑢
= 𝛽1 + 𝑁
= 𝑁
∑𝑖=1 (𝑥𝑖 − 𝑥)̄ 2 ∑𝑖=1 (𝑥𝑖 − 𝑥)̄ 2

=𝑁 𝑥̄𝑢̄
𝑁 𝑁 ⏞𝑁
∑𝑖=1 (𝑥𝑖 − 𝑥)𝑢
̄ 𝑖 ∑𝑖=1 𝑥𝑖 𝑢̄ − ∑𝑖=1 𝑥𝑢
̄ ̄
= 𝛽1 + 𝑁
− 𝑁
∑𝑖=1 (𝑥𝑖 − 𝑥)̄ 2 ∑𝑖=1 (𝑥𝑖 − 𝑥)̄ 2

=𝑁 𝑥̄
⏞𝑁
𝑢̄ ∑𝑖=1 𝑥𝑖 −𝑁 𝑥𝑢
⏟⏟⏟⏟⏟⏟⏟ ̄ ̄
𝑁
∑𝑖=1 (𝑥𝑖 − 𝑥)𝑢
̄ 𝑖 =0
= 𝛽1 + 𝑁
− 𝑁
∑𝑖=1 (𝑥𝑖 − 𝑥)̄ 2 ∑𝑖=1 (𝑥𝑖 − 𝑥)̄ 2

por lo tanto:
𝑁
∑𝑖=1 (𝑥𝑖 − 𝑥)𝑢
̄ 𝑖
𝛽1̂ = 𝛽1 + 𝑁
∑𝑖=1 (𝑥𝑖 − 𝑥)̄ 2

5
• Como paso intermedio, vamos a calcular 𝐸[𝛽1̂ |𝑋] aplicando el operador de valor esperado
condicionado a ambos lados de nuestra expresión para 𝛽1̂ :
=𝛽1 𝑁
⏞ ∑𝑖=1 (𝑥𝑖 − 𝑥)𝑢
̄ 𝑖
𝐸[𝛽1̂ |𝑋] = 𝐸[𝛽 1 |𝑋] +𝐸 [ 𝑁
∣𝑋]
∑𝑖=1 (𝑥𝑖 − 𝑥)̄ 2

𝑁
∑𝑖=1 (𝑥𝑖 − 𝑥)𝐸[𝑢
̄ 𝑖 |𝑋]
= 𝛽1 + 𝑁
∑𝑖=1 (𝑥𝑖 − 𝑥)̄ 2
Si el supuesto de exogeneidad condicional se cumple, i.e. 𝐸[𝑢𝑖 |𝑋] = 0 entonces:

𝐸[𝛽1̂ |𝑋] = 𝛽1

• Finalmente, aplicando la ley de expectativas iteradas:


𝐸[𝐸[𝛽1̂ |𝑋]] = 𝐸[𝛽1 ]

𝐸[𝛽1̂ ] = 𝛽1
y el sesgo del estimador es:
𝑆𝑒𝑠𝑔𝑜(𝛽1̂ ) = 𝐸[𝛽1̂ ] − 𝛽1 = 0

El caso de 𝛽0̂
̄ 𝑢.̄ Utilizando este resultado en nuestra expresion 𝛽0̂ = 𝑦−
• Recordemos que 𝑦 ̄ = 𝛽0 +𝛽1 𝑥+ ̄ 𝛽1̂ 𝑥:̄

𝛽0̂ = 𝛽0 + 𝛽1 𝑥̄ + 𝑢̄ − 𝛽1̂ 𝑥̄

1 𝑁
= 𝛽 0 + 𝛽1 𝑥 ̄ + ∑ 𝑢 − 𝛽1̂ 𝑥̄
𝑁 𝑖=1 𝑖

• Calculamos 𝐸[𝛽0̂ |𝑋] aplicando el operador de valor esperado condicionado a ambos lados de
nuestra expresión para 𝛽0̂ :
=𝛽0 =𝛽1
⏞ ⏞ 1 𝑁
𝐸[𝛽0̂ |𝑋] = 𝐸[𝛽 0 |𝑋] + 𝑥 ̄ 𝐸[𝛽 1 |𝑋] + ̄ 𝛽1̂ |𝑋]
∑ 𝐸[𝑢𝑖 |𝑋] − 𝑥𝐸[
𝑁 𝑖=1

1 𝑁
= 𝛽 0 + 𝛽1 𝑥 ̄ + ̄ 𝛽1̂ |𝑋]
∑ 𝐸[𝑢𝑖 |𝑋] − 𝑥𝐸[
𝑁 𝑖=1

• Una vez más, si el supuesto de exogeneidad condicional se cumple, i.e. 𝐸[𝑢𝑖 |𝑋] = 0 entonces
𝐸[𝛽1̂ |𝑋] = 𝛽1 y por lo tanto
𝐸[𝛽0̂ |𝑋] = 𝛽0

6
• Finalmente, aplicando la ley de expectativas iteradas:

𝐸[𝐸[𝛽0̂ |𝑋]] = 𝐸[𝛽0 ]

𝐸[𝛽0̂ ] = 𝛽0

y el sesgo del estimador es:


𝑆𝑒𝑠𝑔𝑜(𝛽0̂ ) = 𝐸[𝛽0̂ ] − 𝛽0 = 0

Varianza de los estimadores 𝛽0̂ y 𝛽1̂ , y eficiencia


• Sea 𝜇𝑋 ≡ 𝐸[𝑥𝑖 ]. En general, posible probar que:

1 𝑉 (𝐻𝑖 𝑢𝑖 ) 𝜇
𝜎𝛽2 ̂ = 2
; 𝐻𝑖 = 1 − ( 𝑋2 ) 𝑥𝑖
0 𝑁 [𝐸[𝐻 2 ]] 𝐸[𝑥𝑖 ]
𝑖

1 𝑉 ((𝑥𝑖 − 𝜇𝑋 )𝑢𝑖 )
𝜎𝛽2 ̂ =
1 𝑁 𝑉 (𝑥𝑖 )2

Noten que para 𝑘 = {0, 1}:


↑ 𝑉 (𝑥𝑖 ) ⟹↓ 𝜎𝛽2 ̂
𝑘

El estimador es más eficiente entre mayor sea la varianza de la variable regresora!!!


• En la práctica tenemos que utilizar las versiones muestrales:

𝑁
1
1
∑𝑖=1 𝐻̂𝑖2 𝑢̂2𝑖 𝑥̄
𝜎̂𝛽2 ̂ = 𝑁−2
2
; 𝐻̂𝑖 = 1 − ( 𝑁
) 𝑥𝑖
0 |Het 𝑁 𝑁 1
∑𝑖=1 𝑥2𝑖
( 𝑁1 ∑𝑖=1 𝐻̂𝑖2 ) 𝑁

1 𝑁
1 𝑁−2 ∑𝑖=1 (𝑥𝑖 − 𝑥)̄ 2 𝑢̂2𝑖
𝜎̂𝛽2 ̂ |Het = 2
1 𝑁 𝑁
( 𝑁1 ∑𝑖=1 (𝑥𝑖 − 𝑥)̄ 2 )

Los errores estándar de los estimadores serían entonces:

𝑆𝐸|Het (𝛽0̂ ) = √𝜎̂ 2 ̂


𝛽0 |Het

𝑆𝐸|Het (𝛽1̂ ) = √𝜎̂ 2 ̂


𝛽1 |Het

7
Homocedasticidad El término de error 𝑢𝑖 se dice Homocedástico si su varianza, condicional
al valor de la variable aleatoria 𝑋 es constante, i.e.
𝑉 (𝑢𝑖 |𝑋) = 𝜎𝑢2

Esto tiene una clara implicación sobre las varianzas de los estimadores. Tomemos el ejemplo de 𝛽1̂ .
Recordemos que:
𝑁
∑𝑖=1 (𝑥𝑖 − 𝑥)𝑢
̄ 𝑖
̂
𝛽1 = 𝛽1 + 𝑁
∑𝑖=1 (𝑥𝑖 − 𝑥)̄ 2

Calculemos la varianza condicional:


=0 𝑁
𝑉 (𝑢𝑖 |𝑋) ∑𝑖=1 (𝑥𝑖 − 𝑥)̄ 2
𝑉 (𝛽1̂ |𝑋) = 𝑉⏞
(𝛽1 |𝑋) + 𝑁
(∑𝑖=1 (𝑥𝑖 − 𝑥)̄ 2 )2

𝜎𝑢2
𝑉 (𝛽1̂ |𝑋) = 𝑁
∑𝑖=1 (𝑥𝑖 − 𝑥)̄ 2

Lo que implica (ley de expectativas iteradas) que:


𝜎𝑢2
𝜎𝛽2 ̂ =
1 𝑁 𝑉 (𝑥𝑖 )

En el caso de 𝛽0̂ , bajo homocedasticidad se tiene:


𝐸[𝑥2𝑖 ] 2
𝜎𝛽2 ̂ = 𝜎
0 𝑁 𝑉 (𝑥𝑖 ) 𝑢

En la práctica sus versiones muestrales serían:


𝑁 𝑁
( 𝑁1 ∑𝑖=1 𝑥2𝑖 ) ( 𝑁−2
1
∑𝑖=1 𝑢̂2𝑖 )
𝜎̂𝛽2 ̂ |Hom = 𝑁
0
∑𝑖=1 (𝑥𝑖 − 𝑥)̄ 2

1 𝑁
𝑁−2 ∑𝑖=1 𝑢̂2𝑖
𝜎̂𝛽2 ̂ |Hom = 𝑁
1
∑𝑖=1 (𝑥𝑖 − 𝑥)̄ 2

Lo que implica que los errores estandar de los estimadores bajo el supuesto de homocedasticidad
serían:
𝑆𝐸|Hom (𝛽0̂ ) = √𝜎̂ 2 ̂
𝛽0 |Hom

𝑆𝐸|Hom (𝛽1̂ ) = √𝜎̂ 2 ̂


𝛽1 |Hom

8
Generalmente estos son los errores estándar calculados por default a través de las funciones de
regresión de cualquier software. En R en particular, serían los errores estándar calculados por la
función lm().

Homecedasticidad vs Heterocedasticidad Antes de observarlo en los datos reales, hagamos


unas simulaciones en R para entender mejor el concepto de Homocedasticidad:
[48]: # SIMULACION DEL MODELO POBLACIONAL (HOMOCEDASTICIDAD)
# Recuerden nuestra simulación de la variable aleatoria discreta:
# Fijamos la semilla para el generador de números aleatorios
set.seed(1234)
# Simulamos una variable aleatoria, con el generador de números
# pseudo-aleatorios con distribución normal de R:
educ_art <- abs(rnorm(10000, mean = 10, sd = 2))
educ_art <- round(educ_art)
# Vamos a denominar:
beta_0_wedart <- 1000000
beta_1_wedart <- 100000
# Ahora simulamos la "variable dependiente", asumiendo que la varianza
# del error poblacional es siempre constante e independiente de
# la variable regresora "educ_art"
wage_art <- beta_0_wedart + beta_1_wedart*educ_art + rnorm(10000, mean = 20000,␣
↪sd = 100000)

# Creamos nuestra "población":


pob1 <- data.frame(wage_art, educ_art)
head(pob1)

# MUESTREO
# Ahora vamos asumir que observamos una muestra aleatoria de nuestra
# población artificial que contiene únicamente valores de la variable
# dependiente y de la variable regresora

# 1. Asignamos numeros aleatorios entre 0 y 1 a cada uno de los individuos


pob1$loteria <- runif(nrow(pob1))
head(pob1)

# 2. Ordenamos nuestra base de datos de acuerdo al valor de la variable


# loteria y a partir de ella extraemos una muestra N=1000
N <- 1000
muestra1 <- pob1[order(-pob1$loteria),][1:N,]
# Eliminamos la variable loteria
muestra1 <- within(muestra1, rm(loteria))
head(muestra1)

# ESTIMACION MCO
reg_weduc_art <- lm(wage_art~educ_art, data = muestra1)
reg_weduc_art

9
# Creamos la serie de errores estimados:
muestra1$residuos1 <- residuals(reg_weduc_art)
head(muestra1)

# "Observando" la Homocedasticidad de los errores:


# Ahora vamos a hacer una gráfica de dispersión de los errores estimados
# vs la variable regresora:
library(ggplot2)
ggplot(muestra1, aes(educ_art,wage_art)) +
geom_point() +
geom_smooth(method = "lm", se = FALSE, color = "red") +
theme_minimal() +
labs(x = 'Anos de educacion', y = 'Salario', title = 'Modelo homocedastico') +␣
↪theme(plot.title = element_text(hjust = 0.5, size = 14, face = 'bold'))

wage_art educ_art
<dbl> <dbl>
1 1638310 8
2 2182717 11
A data.frame: 6 × 2
3 2271809 12
4 1534092 5
5 2265727 11
6 2070640 11
wage_art educ_art loteria
<dbl> <dbl> <dbl>
1 1638310 8 0.04571879
2 2182717 11 0.03803062
A data.frame: 6 × 3
3 2271809 12 0.16973801
4 1534092 5 0.15442048
5 2265727 11 0.25847399
6 2070640 11 0.86357008
wage_art educ_art
<dbl> <dbl>
3192 1978821 9
3331 1660705 6
A data.frame: 6 × 2
4580 1509372 7
5059 2002308 9
7534 1989608 10
8383 2097466 10

Call:
lm(formula = wage_art ~ educ_art, data = muestra1)

Coefficients:
(Intercept) educ_art
1028724 99092

10
wage_art educ_art residuos1
<dbl> <dbl> <dbl>
3192 1978821 9 58271.18
3331 1660705 6 37430.41
A data.frame: 6 × 3
4580 1509372 7 -212993.87
5059 2002308 9 81758.65
7534 1989608 10 -30032.98
8383 2097466 10 77824.77
`geom_smooth()` using formula 'y ~ x'

11
Decimos que si 𝑉 (𝑢𝑖 |𝑋) no es constante entonces los errores son Heterocedásticos. Simulemos
2
1
otro modelo poblacional en el cual 𝑉 (wage_art𝑖 |educ_art) = (100000 (1 − educ_art )) :

[49]: het_factor <- 100000*(1-(1/educ_art))


wage_art2 <- beta_0_wedart + beta_1_wedart*educ_art + rnorm(10000, mean =␣
↪20000, sd = het_factor)

# Creamos de nuevo nuestra "población":


pob2 <- data.frame(wage_art2, educ_art)
head(pob2)

# MUESTREO
# Ahora vamos asumir que observamos una muestra aleatoria de nuestra
# población artificial que contiene únicamente valores de la variable
# dependiente y de la variable regresora

# 1. Asignamos numeros aleatorios entre 0 y 1 a cada uno de los individuos


pob2$loteria <- runif(nrow(pob2))
head(pob2)

# 2. Ordenamos nuestra base de datos de acuerdo al valor de la variable


# loteria y a partir de ella extraemos una muestra N=1000
N <- 1000
muestra2 <- pob2[order(-pob2$loteria),][1:N,]
# Eliminamos la variable loteria
muestra2 <- within(muestra2, rm(loteria))
head(muestra2)

# ESTIMACION MCO
reg_weduc_art2 <- lm(wage_art2~educ_art, data = muestra2)
reg_weduc_art2
# Creamos la serie de errores estimados:
muestra2$residuos2 <- residuals(reg_weduc_art2)
head(muestra2)

# "Observando" la Heterocedasticidad de los errores:


# Ahora vamos a hacer una gráfica de dispersión de los errores estimados
# vs la variable regresora
ggplot(muestra2, aes(educ_art,wage_art2)) +
geom_point() +
geom_smooth(method = "lm", se = FALSE, color = "red") +
theme_minimal() +
labs(x = 'Anos de educacion', y = 'Salario', title = 'Modelo heterocedastico')␣
↪+ theme(plot.title = element_text(hjust = 0.5, size = 14, face = 'bold'))

12
wage_art2 educ_art
<dbl> <dbl>
1 1662711 8
2 2095504 11
A data.frame: 6 × 2
3 2268930 12
4 1491092 5
5 2157638 11
6 2272420 11
wage_art2 educ_art loteria
<dbl> <dbl> <dbl>
1 1662711 8 0.98033005
2 2095504 11 0.13545542
A data.frame: 6 × 3
3 2268930 12 0.83201837
4 1491092 5 0.01231726
5 2157638 11 0.29185645
6 2272420 11 0.14074476
wage_art2 educ_art
<dbl> <dbl>
7682 2173879 12
3844 2068275 11
A data.frame: 6 × 2
8729 2328180 13
7888 1788280 8
8856 1827200 9
5524 1675298 7

Call:
lm(formula = wage_art2 ~ educ_art, data = muestra2)

Coefficients:
(Intercept) educ_art
1028525 98979

wage_art2 educ_art residuos2


<dbl> <dbl> <dbl>
7682 2173879 12 -42389.36
3844 2068275 11 -49014.89
A data.frame: 6 × 3
8729 2328180 13 12933.84
7888 1788280 8 -32073.84
8856 1827200 9 -92131.99
5524 1675298 7 -46076.87
`geom_smooth()` using formula 'y ~ x'

13
Ahora, bajo el supuesto que 𝐸[𝑢𝑖 |Años de educación] = 0, miremos finalmente en qué situación
estaría el modelo con los datos no artificiales, en el cual regresamos el salario contra los años de
educación utilizando la base de datos wage1:

[51]: ggplot(wage1, aes(educ,wage)) +


geom_point() +
geom_smooth(method = "lm", se = FALSE, color = "red") +
theme_minimal() +
labs(x = 'Anos de educacion', y = 'Salario mensual en US$') + theme(plot.title␣
↪= element_text(hjust = 0.5, size = 14, face = 'bold'))

`geom_smooth()` using formula 'y ~ x'

14
En definitiva si 𝐸[𝑢𝑖 |𝑋] = 0, bajo homocedasticidad, para 𝑘 = {0, 1}:

𝛽𝑘̂ ∼ 𝑁 (𝛽𝑘 , 𝜎̂𝛽2 ̂ ),


𝑘 |Hom

y bajo heterocedasticidad:
𝛽𝑘̂ ∼ 𝑁 (𝛽𝑘 , 𝜎̂𝛽2 ̂ ),
𝑘 |Het

15

También podría gustarte