13.4 Aplicación a la demanda de cigarrillos

¿Son válidos el impuesto general sobre las ventas y el impuesto específico a los cigarrillos? De lo contrario, MC2E no es útil para estimar la elasticidad de la demanda de cigarrillos discutida en el Capítulo 13.2. Como se discutió en el Capítulo 13.1, es probable que ambas variables sean relevantes, pero si son exógenas es una cuestión diferente.

Se sostiene que los impuestos específicos a los cigarrillos podrían ser endógenos porque podrían haber factores históricos específicos del estado, como la importancia económica del cultivo de tabaco y la industria de producción de cigarrillos, que presionan para obtener impuestos bajos específicos de los cigarrillos. Dado que es plausible que los estados productores de tabaco tengan tasas de tabaquismo más altas que otros, esto conduciría a la endogeneidad de los impuestos específicos a los cigarrillos. Si se tuvieran datos sobre el tamaño de la industria del tabaco y los cigarrillos, se podría resolver este problema potencial al incluir la información en la regresión. Desafortunadamente, este no es el caso.

Sin embargo, dado que el papel de la industria del tabaco y los cigarrillos es un factor que se puede asumir que difiere entre los estados, pero no con el tiempo; en su lugar, se puede aprovechar la estructura del panel de CigarettesSW: Como se muestra en el Capítulo 11.2, cuando la regresión usa datos sobre cambios entre dos períodos de tiempo elimina tales efectos específicos del estado e invariantes en el tiempo. Se consideran los cambios en las variables entre 1985 y 1995. Es decir, interesa estimar la elasticidad a largo plazo de la demanda de cigarrillos.

El modelo que será estimado por MC2E utiliza el impuesto general a las ventas y el impuesto a las ventas específicas de cigarrillos como instrumentos, por lo tanto, es

\[\begin{align} \begin{split} \log(Q_{i,1995}^{cigarettes}) - \log(Q_{i,1995}^{cigarettes}) =& \, \beta_0 + \beta_1 \left[\log(P_{i,1995}^{cigarettes}) - \log(P_{i,1985}^{cigarettes}) \right] \\ &+ \beta_2 \left[\log(income_{i,1995}) - \log(income_{i,1985})\right] + u_i. \end{split}\tag{13.10} \end{align}\]

Primero se crean diferencias de 1985 a 1995 para la variable dependiente, los regresores y ambos instrumentos.

# subconjunto de los datos para el año 1985
c1985 <- subset(CigarettesSW, year == "1985")

# definir diferencias en variables
packsdiff <- log(c1995$packs) - log(c1985$packs)

pricediff <- log(c1995$price/c1995$cpi) - log(c1985$price/c1985$cpi)

incomediff <- log(c1995$income/c1995$population/c1995$cpi) -
log(c1985$income/c1985$population/c1985$cpi)

salestaxdiff <- (c1995$taxs - c1995$tax)/c1995$cpi - (c1985$taxs - c1985$tax)/c1985$cpi

cigtaxdiff <- c1995$tax/c1995$cpi - c1985$tax/c1985$cpi

Ahora se realizan tres estimaciones de VI diferentes de (13.10) usando ivreg():

  1. MC2E utilizando solo la diferencia en los impuestos sobre las ventas entre 1985 y 1995 como instrumento.

  2. MC2E utilizando solo la diferencia en los impuestos a las ventas específicos de cigarrillos 1985 y 1995 como instrumento.

  3. MC2E utilizando como instrumentos tanto la diferencia en los impuestos a las ventas de 1985 y 1995 como la diferencia en los impuestos a las ventas específicas de cigarrillos de 1985 y 1995.

# estimar los tres modelos
cig_ivreg_diff1 <- ivreg(packsdiff ~ pricediff + incomediff | incomediff + 
                         salestaxdiff)

cig_ivreg_diff2 <- ivreg(packsdiff ~ pricediff + incomediff | incomediff + 
                         cigtaxdiff)

cig_ivreg_diff3 <- ivreg(packsdiff ~ pricediff + incomediff | incomediff + 
                         salestaxdiff + cigtaxdiff)

Como de costumbre, se usa coeftest() junto con vcovHC() para obtener resúmenes robustos de coeficientes para todos los modelos.

# resumen robusto de coeficientes para 1.
coeftest(cig_ivreg_diff1, vcov = vcovHC, type = "HC1")
#> 
#> t test of coefficients:
#> 
#>              Estimate Std. Error t value  Pr(>|t|)    
#> (Intercept) -0.117962   0.068217 -1.7292   0.09062 .  
#> pricediff   -0.938014   0.207502 -4.5205 4.454e-05 ***
#> incomediff   0.525970   0.339494  1.5493   0.12832    
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

# resumen robusto de coeficientes para 2.
coeftest(cig_ivreg_diff2, vcov = vcovHC, type = "HC1")
#> 
#> t test of coefficients:
#> 
#>              Estimate Std. Error t value  Pr(>|t|)    
#> (Intercept) -0.017049   0.067217 -0.2536    0.8009    
#> pricediff   -1.342515   0.228661 -5.8712 4.848e-07 ***
#> incomediff   0.428146   0.298718  1.4333    0.1587    
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

# resumen robusto de coeficientes para 3.
coeftest(cig_ivreg_diff3, vcov = vcovHC, type = "HC1")
#> 
#> t test of coefficients:
#> 
#>              Estimate Std. Error t value  Pr(>|t|)    
#> (Intercept) -0.052003   0.062488 -0.8322    0.4097    
#> pricediff   -1.202403   0.196943 -6.1053 2.178e-07 ***
#> incomediff   0.462030   0.309341  1.4936    0.1423    
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Se procede a generar un resumen tabulado de los resultados de la estimación utilizando stargazer()).

# recopilar errores estándar robustos en una lista
rob_se <- list(sqrt(diag(vcovHC(cig_ivreg_diff1, type = "HC1"))),
               sqrt(diag(vcovHC(cig_ivreg_diff2, type = "HC1"))),
               sqrt(diag(vcovHC(cig_ivreg_diff3, type = "HC1"))))

# generar tabla
stargazer(cig_ivreg_diff1, cig_ivreg_diff2,cig_ivreg_diff3,
  header = FALSE, 
  type = "html",
  omit.table.layout = "n",
  digits = 3, 
  column.labels = c("IV: Impuesto sobre las ventas", "IV: Impuesto sobre los cigarros", "IV: Impuesto sobre las ventas, impuesto sobre el consumo"),
  dep.var.labels.include = FALSE,
  dep.var.caption = "Variable dependiente: Diferencia 1985-1995 en el precio de registro por paquete",
  se = rob_se)
Variable dependiente: Diferencia 1985-1995 en el precio de registro por paquete
IV: Impuesto sobre las ventasIV: Impuesto sobre los cigarrosIV: Impuesto sobre las ventas, impuesto sobre el consumo
(1)(2)(3)
pricediff-0.938***-1.343***-1.202***
(0.208)(0.229)(0.197)
incomediff0.5260.4280.462
(0.339)(0.299)(0.309)
Constant-0.118*-0.017-0.052
(0.068)(0.067)(0.062)
Observations484848
R20.5500.5200.547
Adjusted R20.5300.4980.526
Residual Std. Error (df = 45)0.0910.0940.091
Note:*p<0.1; **p<0.05; ***p<0.01

Table 13.1: Estimaciones de MC2E de la elasticidad a largo plazo de la demanda de cigarrillos utilizando datos de panel

La tabla @ref(pestaña:MC2Eeotlteotdfcupd) informa estimaciones negativas del coeficiente de priceiff que son bastante diferentes en magnitud. ¿En cuál se debe confiar? Esto depende de la validez de los instrumentos utilizados. Para evaluar esto, se calculan los estadísticos \(F\) para las regresiones de la primera etapa de los tres modelos para verificar la relevancia del instrumento.

# regresiones de primera etapa
mod_relevance1 <- lm(pricediff ~ salestaxdiff + incomediff)
mod_relevance2 <- lm(pricediff ~ cigtaxdiff + incomediff)
mod_relevance3 <- lm(pricediff ~ incomediff + salestaxdiff + cigtaxdiff)
# comprobar la relevancia del instrumento para el modelo (1)
linearHypothesis(mod_relevance1, 
                 "salestaxdiff = 0", 
                 vcov = vcovHC, type = "HC1")
#> Linear hypothesis test
#> 
#> Hypothesis:
#> salestaxdiff = 0
#> 
#> Model 1: restricted model
#> Model 2: pricediff ~ salestaxdiff + incomediff
#> 
#> Note: Coefficient covariance matrix supplied.
#> 
#>   Res.Df Df      F    Pr(>F)    
#> 1     46                        
#> 2     45  1 28.445 3.009e-06 ***
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# comprobar la relevancia del instrumento para el modelo (2)
linearHypothesis(mod_relevance2, 
                 "cigtaxdiff = 0", 
                 vcov = vcovHC, type = "HC1")
#> Linear hypothesis test
#> 
#> Hypothesis:
#> cigtaxdiff = 0
#> 
#> Model 1: restricted model
#> Model 2: pricediff ~ cigtaxdiff + incomediff
#> 
#> Note: Coefficient covariance matrix supplied.
#> 
#>   Res.Df Df      F   Pr(>F)    
#> 1     46                       
#> 2     45  1 98.034 7.09e-13 ***
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# comprobar la relevancia del instrumento para el modelo (3)
linearHypothesis(mod_relevance3, 
                 c("salestaxdiff = 0", "cigtaxdiff = 0"), 
                 vcov = vcovHC, type = "HC1")
#> Linear hypothesis test
#> 
#> Hypothesis:
#> salestaxdiff = 0
#> cigtaxdiff = 0
#> 
#> Model 1: restricted model
#> Model 2: pricediff ~ incomediff + salestaxdiff + cigtaxdiff
#> 
#> Note: Coefficient covariance matrix supplied.
#> 
#>   Res.Df Df      F    Pr(>F)    
#> 1     46                        
#> 2     44  2 76.916 4.339e-15 ***
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

También se realiza la prueba de restricciones de sobreidentificación para el modelo tres, que es el único modelo en que el coeficiente de la diferencia en los logaritmos de los precios está sobreidentificado (\(m = 2\), \(k = 1\)) de modo que se pueda calcular el estadístico de \(J\). Para hacer esto, se toman los residuos almacenados en cig_ivreg_diff3 y se retroceden en ambos instrumentos y en el regresor presuntamente exógeno incomediff. De nuevo, se usa linearHypothesis() para probar si los coeficientes en ambos instrumentos son cero, lo cual es necesario para que se cumpla el supuesto de exogeneidad. Se debe tener en cuenta que con test = “Chisq” se obtiene una estadística de prueba distribuida chi-cuadrada en lugar de un estadístico de \(F\).

# calcular el estadístico J
cig_iv_OR <- lm(residuals(cig_ivreg_diff3) ~ incomediff + salestaxdiff + cigtaxdiff)

cig_OR_test <- linearHypothesis(cig_iv_OR, 
                               c("salestaxdiff = 0", "cigtaxdiff = 0"), 
                               test = "Chisq")
cig_OR_test
#> Linear hypothesis test
#> 
#> Hypothesis:
#> salestaxdiff = 0
#> cigtaxdiff = 0
#> 
#> Model 1: restricted model
#> Model 2: residuals(cig_ivreg_diff3) ~ incomediff + salestaxdiff + cigtaxdiff
#> 
#>   Res.Df     RSS Df Sum of Sq Chisq Pr(>Chisq)  
#> 1     46 0.37472                                
#> 2     44 0.33695  2  0.037769 4.932    0.08492 .
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Precaución: En este caso, el valor \(p\) informado por linearHypothesis() es incorrecto porque los grados de libertad se establecen en \(2\). Esto difiere del grado de sobreidentificación (\(mk = 2-1 = 1\)) por lo que el estadístico \(J\) esta distribuido \(\chi^2_1\), en lugar de seguir una distribución \(\chi^2_2\) como se supone de forma predeterminada por linearHypothesis(). Se puede calcular el valor \(p\) correcto usando pchisq().

# calcular el valor p correcto para el estadístico J
pchisq(cig_OR_test[2, 5], df = 1, lower.tail = FALSE)
#> [1] 0.02636406

Dado que este valor es menor que \(0.05\), se rechaza la hipótesis de que ambos instrumentos son exógenos al nivel de \(5\%\). Esto implica uno de los siguientes:

  1. El impuesto sobre las ventas es un instrumento inválido para el precio por paquete.
  2. El impuesto sobre las ventas específico de cigarrillos es un instrumento inválido para el precio por paquete.
  3. Ambos instrumentos son inválidos.

Se puede sostener que es más probable que se mantenga el supuesto de exogeneidad del instrumento para el impuesto general a las ventas, de modo que la estimación VI de la elasticidad a largo plazo de la demanda de cigarrillos que se considera más fiable es \(-0.94\), la estimación MC2E obtenida utilizando el impuesto general a las ventas como único instrumento.

La interpretación de esta estimación es que durante un período de 10 años, se espera que un aumento en el precio promedio por paquete en un uno por ciento disminuya el consumo en aproximadamente \(0.94\) puntos porcentuales. Esto sugiere que, a largo plazo, los aumentos de precios pueden reducir considerablemente el consumo de cigarrillos.