#cargar librerias

library(stargazer) 
## 
## Please cite as:
##  Hlavac, Marek (2022). stargazer: Well-Formatted Regression and Summary Statistics Tables.
##  R package version 5.2.3. https://CRAN.R-project.org/package=stargazer
library(htmltools)
## Warning: package 'htmltools' was built under R version 4.5.3
library(sandwich)
## Warning: package 'sandwich' was built under R version 4.5.3

#Estimacion del modelo

modelo_smoke <- lm(cigs ~ cigpric + lcigpric + income + lincome +
                     age + agesq + educ + white + restaurn,
                   data = data)

GENERACIÓN DE TABLA COMPARATIVA EN FORMATO HTML (Vía stargazer)

# 4. GENERACIÓN DE LA TABLA COMPARATIVA EN UNA SOLA TABLA
stargazer(modelo_smoke, modelo_smoke, 
          se = list(NULL, se_hac),
          column.labels = c("Modelo Original (MCO)", "Modelo Corregido (HAC)"), 
          title = "Comparación de Estimaciones: Efectos sobre el Consumo de Cigarrillos", 
          type = "html", 
          no.space = TRUE, 
          model.numbers = FALSE)
Comparación de Estimaciones: Efectos sobre el Consumo de Cigarrillos
Dependent variable:
cigs
Modelo Original (MCO) Modelo Corregido (HAC)
cigpric 2.002 2.002
(1.493) (1.483)
lcigpric -115.273 -115.273
(85.424) (83.865)
income -0.00005 -0.00005
(0.0001) (0.0001)
lincome 1.404 1.404
(1.708) (1.293)
age 0.778*** 0.778***
(0.161) (0.139)
agesq -0.009*** -0.009***
(0.002) (0.001)
educ -0.495*** -0.495***
(0.168) (0.169)
white -0.531 -0.531
(1.461) (1.323)
restaurn -2.644** -2.644**
(1.130) (1.043)
Constant 340.804 340.804
(260.016) (255.948)
Observations 807 807
R2 0.055 0.055
Adjusted R2 0.044 0.044
Residual Std. Error (df = 797) 13.413 13.413
F Statistic (df = 9; 797) 5.169*** 5.169***
Note: p<0.1; p<0.05; p<0.01

DESPLIEGUE Y RENDERIZADO CON htmltools

tabla_html_raw <- stargazer(modelo_smoke, modelo_smoke, 
                            se = list(NULL, se_hac), 
                            column.labels = c("Modelo Original (MCO)", "Modelo Corregido (HAC)"), 
                            title = "Comparación de Estimaciones: Efectos sobre el Consumo de Cigarrillos", 
                            type = "html", 
                            no.space = TRUE, 
                            model.numbers = FALSE)
## 
## <table style="text-align:center"><caption><strong>Comparación de Estimaciones: Efectos sobre el Consumo de Cigarrillos</strong></caption>
## <tr><td colspan="3" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left"></td><td colspan="2"><em>Dependent variable:</em></td></tr>
## <tr><td></td><td colspan="2" style="border-bottom: 1px solid black"></td></tr>
## <tr><td style="text-align:left"></td><td colspan="2">cigs</td></tr>
## <tr><td style="text-align:left"></td><td>Modelo Original (MCO)</td><td>Modelo Corregido (HAC)</td></tr>
## <tr><td colspan="3" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">cigpric</td><td>2.002</td><td>2.002</td></tr>
## <tr><td style="text-align:left"></td><td>(1.493)</td><td>(1.483)</td></tr>
## <tr><td style="text-align:left">lcigpric</td><td>-115.273</td><td>-115.273</td></tr>
## <tr><td style="text-align:left"></td><td>(85.424)</td><td>(83.865)</td></tr>
## <tr><td style="text-align:left">income</td><td>-0.00005</td><td>-0.00005</td></tr>
## <tr><td style="text-align:left"></td><td>(0.0001)</td><td>(0.0001)</td></tr>
## <tr><td style="text-align:left">lincome</td><td>1.404</td><td>1.404</td></tr>
## <tr><td style="text-align:left"></td><td>(1.708)</td><td>(1.293)</td></tr>
## <tr><td style="text-align:left">age</td><td>0.778<sup>***</sup></td><td>0.778<sup>***</sup></td></tr>
## <tr><td style="text-align:left"></td><td>(0.161)</td><td>(0.139)</td></tr>
## <tr><td style="text-align:left">agesq</td><td>-0.009<sup>***</sup></td><td>-0.009<sup>***</sup></td></tr>
## <tr><td style="text-align:left"></td><td>(0.002)</td><td>(0.001)</td></tr>
## <tr><td style="text-align:left">educ</td><td>-0.495<sup>***</sup></td><td>-0.495<sup>***</sup></td></tr>
## <tr><td style="text-align:left"></td><td>(0.168)</td><td>(0.169)</td></tr>
## <tr><td style="text-align:left">white</td><td>-0.531</td><td>-0.531</td></tr>
## <tr><td style="text-align:left"></td><td>(1.461)</td><td>(1.323)</td></tr>
## <tr><td style="text-align:left">restaurn</td><td>-2.644<sup>**</sup></td><td>-2.644<sup>**</sup></td></tr>
## <tr><td style="text-align:left"></td><td>(1.130)</td><td>(1.043)</td></tr>
## <tr><td style="text-align:left">Constant</td><td>340.804</td><td>340.804</td></tr>
## <tr><td style="text-align:left"></td><td>(260.016)</td><td>(255.948)</td></tr>
## <tr><td colspan="3" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">Observations</td><td>807</td><td>807</td></tr>
## <tr><td style="text-align:left">R<sup>2</sup></td><td>0.055</td><td>0.055</td></tr>
## <tr><td style="text-align:left">Adjusted R<sup>2</sup></td><td>0.044</td><td>0.044</td></tr>
## <tr><td style="text-align:left">Residual Std. Error (df = 797)</td><td>13.413</td><td>13.413</td></tr>
## <tr><td style="text-align:left">F Statistic (df = 9; 797)</td><td>5.169<sup>***</sup></td><td>5.169<sup>***</sup></td></tr>
## <tr><td colspan="3" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left"><em>Note:</em></td><td colspan="2" style="text-align:right"><sup>*</sup>p<0.1; <sup>**</sup>p<0.05; <sup>***</sup>p<0.01</td></tr>
## </table>
browsable(HTML(tabla_html_raw))
Comparación de Estimaciones: Efectos sobre el Consumo de Cigarrillos
Dependent variable:
cigs
Modelo Original (MCO)Modelo Corregido (HAC)
cigpric2.0022.002
(1.493)(1.483)
lcigpric-115.273-115.273
(85.424)(83.865)
income-0.00005-0.00005
(0.0001)(0.0001)
lincome1.4041.404
(1.708)(1.293)
age0.778***0.778***
(0.161)(0.139)
agesq-0.009***-0.009***
(0.002)(0.001)
educ-0.495***-0.495***
(0.168)(0.169)
white-0.531-0.531
(1.461)(1.323)
restaurn-2.644**-2.644**
(1.130)(1.043)
Constant340.804340.804
(260.016)(255.948)
Observations807807
R20.0550.055
Adjusted R20.0440.044
Residual Std. Error (df = 797)13.41313.413
F Statistic (df = 9; 797)5.169***5.169***
Note:*p<0.1; **p<0.05; ***p<0.01

RESUMEN ANALÍTICO DEL MODELO DE CONSUMO DE CIGARRILLOS (Variable: cigs) # 1. EVALUACIÓN DE LAS VARIABLES ECONÓMICAS Y REGULATORIAS: # PRECIOS (cigpric, lcigpric): Capturan el efecto del costo de las cajetillas. Un coeficiente negativo valida la Ley de la Demanda, indicando que ante incrementos en el precio del tabaco, el consumo diario disminuye.

INGRESO (income, lincome):

Define la naturaleza económica del bien. Un signo positivo determina que el tabaco actúa como un “bien normal” (a mayor capacidad adquisitiva, aumenta el consumo), mientras que un signo negativo lo clasificaría como un “bien inferior”.

RESTRICCIÓN INSTITUCIONAL (restaurn):

Variable dummy fundamental. Un coeficiente negativo y estadísticamente significativo demuestra el impacto real de las políticas públicas antitabaco en establecimientos comerciales, reduciendo la propensión marginal al consumo de los individuos.

  1. VARIABLES DEMOGRÁFICAS Y CICLO DE VIDA:

EDAD (age, agesq):

La combinación de la variable en niveles y al cuadrado evalúa la trayectoria no lineal del consumidor. Estructuralmente, un signo positivo en ‘age’ y uno negativo en ‘agesq’ valida un comportamiento de U-invertida (cóncavo): el consumo crece en la juventud, alcanza un punto máximo (cenit) y decrece de forma sostenida en la edad avanzada.

EDUCACIÓN (educ):

Generalmente presenta una relación inversa (negativa). A mayores años de escolaridad formal, existe un mayor acceso a la información sobre riesgos de salud, disminuyendo el hábito tabáquico.

COMPONENTE ÉTNICO (white):

Controla las variaciones en el intercepto base del consumo dadas las características demográficas de la muestra.

  1. DIAGNÓSTICO CRÍTICO DE LA INFERENCIA: MCO vs. ESTIMADORES HAC

El núcleo metodológico de este ejercicio radica en la sustitución de los errores estándar tradicionales por la matriz de Newey-West (HAC):

#A) INVARIABILIDAD DE PARAMETROS: Los coeficientes (Betas) estimados permanecen exactamente iguales en ambas especificaciones de stargazer, debido a que la corrección HAC altera la precisión del estimador (matriz de varianzas) y no el hiperplano de la regresión de Mínimos Cuadrados.

#B) CORRECCIÓN DEL SESGO EN LA VARIANZA: En presencia de heterocedasticidad o autocorrelación en los residuos, los errores estándar de MCO clásico están sesgados hacia abajo (subestimados), inflando artificialmente los estadísticos ‘t’ y generando “falsos positivos” de significancia (exceso de asteriscos).

#C) VALIDEZ DE LA INFERENCIA: Al aplicar los errores estándar robustos HAC (se_hac), las desviaciones aumentan hacia niveles reales y corregidos. Las conclusiones académicas, los p-valores y las pruebas de hipótesis individuales deben interpretarse EXCLUSIVAMENTE con la segunda columna de stargazer, ya que es la única que blinda el modelo contra fallas en los supuestos de los residuos.

#Diagnóstico del modelo smoke: La matriz de varianza-covarianza de este modelo NO es escalar. #Fuente del problema: Al observar detalladamente la estructura de los datos de la base smoke y la naturaleza de la variable dependiente cigs (cantidad de cigarrillos consumidos diariamente), se identifican dos problemas fundamentales:

#Heterocedasticidad (Fuente principal): El consumo de cigarrillos posee una alta variabilidad que depende intrínsecamente de las características socioeconómicas del individuo (como el nivel de ingresos income o la educación educ). Por ejemplo, las personas con mayores ingresos o diferentes edades muestran dispersiones radicalmente distintas en sus hábitos de consumo. Al no ser la varianza de los residuos constante para todos los individuos, se viola el supuesto de homocedasticidad.

#Naturaleza de los Datos de Sección Cruzada con Agrupamiento (Clustering): Al analizar muestras de comportamiento de consumidores, suelen existir correlaciones espaciales o grupales no observadas (por ejemplo, legislaciones estatales compartidas o efectos regionales en la variable restaurn). Esto introduce patrones de dependencia en los términos de error que destruyen la estructura esférica o escalar de la matriz.Al no ser escalar, los errores estándar convencionales calculados por MCO están sesgados (generalmente subestimados), lo que infla artificialmente los estadísticos \(t\) y genera conclusiones erróneas sobre la significancia de los regresores.

CÁLCULO DEL ESTIMADOR ROBUSTO HAC

# CÁLCULO DEL ESTIMADOR ROBUSTO HAC
#Obtención de la matriz de Varianza-Covarianza HAC solicitada
vcov_HAC <- vcovHAC(modelo_smoke)

#Extracción de los errores estándar robustos para la inferencia
se_hac_smoke <- sqrt(diag(vcov_HAC))

#Impresión de la matriz vcov_HAC en la consola de RStudio (Opcional)
print(vcov_HAC)
##               (Intercept)       cigpric      lcigpric        income
## (Intercept)  6.550951e+04  3.778654e+02 -2.144141e+04  1.988193e-03
## cigpric      3.778654e+02  2.200150e+00 -1.241301e+02  5.937686e-06
## lcigpric    -2.144141e+04 -1.241301e+02  7.033301e+03 -3.050133e-04
## income       1.988193e-03  5.937686e-06 -3.050133e-04  1.423620e-08
## lincome     -5.240736e+01 -2.382252e-01  1.311338e+01 -1.373919e-04
## age          3.712707e+00  2.452875e-02 -1.326907e+00 -8.489929e-07
## agesq       -5.090803e-02 -3.283657e-04  1.792118e-02  1.288789e-08
## educ        -1.068798e+00 -3.399137e-03  2.576713e-01 -2.559336e-06
## white       -5.813987e+01 -3.158785e-01  1.857722e+01  1.088341e-05
## restaurn     6.289785e+01  3.605921e-01 -2.103746e+01 -2.380435e-05
##                   lincome           age         agesq          educ
## (Intercept) -5.240736e+01  3.712707e+00 -5.090803e-02 -1.068798e+00
## cigpric     -2.382252e-01  2.452875e-02 -3.283657e-04 -3.399137e-03
## lcigpric     1.311338e+01 -1.326907e+00  1.792118e-02  2.576713e-01
## income      -1.373919e-04 -8.489929e-07  1.288789e-08 -2.559336e-06
## lincome      1.671239e+00 -1.178952e-02  7.583843e-05 -9.709318e-03
## age         -1.178952e-02  1.933521e-02 -2.029809e-04  1.927667e-04
## agesq        7.583843e-05 -2.029809e-04  2.188561e-06  6.056762e-06
## educ        -9.709318e-03  1.927667e-04  6.056762e-06  2.843990e-02
## white       -5.795566e-02  2.904117e-04  1.138464e-05 -1.016281e-02
## restaurn     1.693240e-01  6.037706e-03 -7.430878e-05 -1.528976e-02
##                     white      restaurn
## (Intercept) -5.813987e+01  6.289785e+01
## cigpric     -3.158785e-01  3.605921e-01
## lcigpric     1.857722e+01 -2.103746e+01
## income       1.088341e-05 -2.380435e-05
## lincome     -5.795566e-02  1.693240e-01
## age          2.904117e-04  6.037706e-03
## agesq        1.138464e-05 -7.430878e-05
## educ        -1.016281e-02 -1.528976e-02
## white        1.749837e+00  9.385922e-02
## restaurn     9.385922e-02  1.087066e+00

#modelo “original” y el modelo “corregido” en una sola tabla

stargazer(modelo_smoke, modelo_smoke, 
          se = list(NULL, se_hac),
          column.labels = c("Modelo Original (MCO)", "Modelo (HAC)"), 
          title = "Comparación de Estimaciones: Efectos sobre el Consumo de Cigarrillos", 
          type = "html", 
          no.space = TRUE, 
          model.numbers = FALSE)
Comparación de Estimaciones: Efectos sobre el Consumo de Cigarrillos
Dependent variable:
cigs
Modelo Original (MCO) Modelo (HAC)
cigpric 2.002 2.002
(1.493) (1.483)
lcigpric -115.273 -115.273
(85.424) (83.865)
income -0.00005 -0.00005
(0.0001) (0.0001)
lincome 1.404 1.404
(1.708) (1.293)
age 0.778*** 0.778***
(0.161) (0.139)
agesq -0.009*** -0.009***
(0.002) (0.001)
educ -0.495*** -0.495***
(0.168) (0.169)
white -0.531 -0.531
(1.461) (1.323)
restaurn -2.644** -2.644**
(1.130) (1.043)
Constant 340.804 340.804
(260.016) (255.948)
Observations 807 807
R2 0.055 0.055
Adjusted R2 0.044 0.044
Residual Std. Error (df = 797) 13.413 13.413
F Statistic (df = 9; 797) 5.169*** 5.169***
Note: p<0.1; p<0.05; p<0.01