Primeira vez aqui? Seja bem vindo e cheque o FAQ!
x

Analise empírica da base de dados de taxas de fatalidades no trânsito fornecida pelo livro Introduction to Econometrics - Stock e Watson" capítulo 10 através de exercícios econométricos no python

0 votos
9 visitas
perguntada Nov 18 em Economia por JOAO PAULO (1 ponto)  

Estimação no Python das equações do capítulo 10 e análise dos resultados.

Compartilhe

2 Respostas

0 votos
respondida Nov 18 por JOAO PAULO (1 ponto)  
editado 6 dias atrás por JOAO PAULO

O exercício se refere a aplicação empírica de dados em painel onde se analisa os efeitos de impostos sobre cerveja e leis de trânsito sobre a mortalidade no trânsito.
Os dados são baseados nos 48 estados contíguos americanos, durante os anos de 1982 a 1988. Os dados utilizados nessa análise são:
• Taxa de mortalidade no trânsito,
• impostos sobre bebidas alcoólicas,
• a penalidade imposta caso a pessoa é pega dirigindo depois de ingerir bebida alcoólica (penalidade essa que se subdvide em: prisão e/ou prestação de serviço comunitário, ou nada),
• idade mínima permitida para dirigir,
• milhas médias percorridas por veículo,
• Renda per capita,
• Taxa de desemprego,

A base de dados contém outras variáveis que não foram utilizadas no estudo em questão; mas que podem, porventura, serem relevantes caso ocorra alguma indagação sobre a qualidade dos resultados. Em geral, temos que os dados empregados nos possibilitam controlar por inúmeras outras variáveis que possivelmente mudaram no decorrer do tempo (1982-1988) e também entre os estados.

Justificativa e primeiros resultados:

Todo ano há aproximadamente 40.000 mortes no trânsito nos Estados Unidos, sendo uma das maiores taxas de fatalidade per capita no mundo desenvolvido. Apesar dessa taxa vir decaindo no passar do tempo, principalmente em relação à década de 80, os acidentes também são causa de mais de 4 milhões de feridos. Sendo assim, é mais do que necessário averiguarmos o que motiva esses acidentes de trânsito e assim podermos aplicar políticas públicas a fim de mitigar esse tipo de evento.
Ao analisar as causas de acidentes Levitt and Porter (2001) estimaram que até um quarto dos motoristas que dirigem de madrugada (entre 1h:00 e 3h:00) ingeriram bebida alcoólica e que aquelas que fizeram essa ingestão, são 13 vezes mais propensos de causar um acidente fatal do que aqueles que não beberam. Nesse sentido, os estados americanos começaram a aplicar políticas de desencorajamento de bebida e direção. Uma dessas políticas foi a aplicação de impostos sobre cerveja (muito provável que em alguns estados essa política tenha ocorrido para fins arrecadatórios apenas). É esperado que esse imposto tenha uma relação negativa com a taxa de mortalidade no trânsito pois, uma elevação no preço de cerveja desencoraja o consumo dela, acarretando menos acidentes fatais.
Com esse pensamento, podemos começar a analisar econometricamente como esses dados relacionam. De início vamos gerar regressões simples de anos específicos. Abaixo há o código para gerar os scatterplot da Figura 10.1 assim como as respectivas regressões. Foi necessário importar as bibliotecas “pandas” e “statsmodels”. As regressões são estimadas via OLS.

import numpy as np
import matplotlib.pyplot as plt
#%matplotlib inline
import pandas as pd
import statsmodels.api as sm
from statsmodels.iolib.summary2 import summary_col


#tratamento de dados
df1 = pd.read_excel(r'D:\Doutorado\Dados exercicio\fatality_alt.xlsx')
df1.head()


df1['mrall']=df1['mrall'].apply(lambda x: x* 10000)
df1982_subset= df1.dropna(subset=['beertax', 'mrall'])
df1982_subset= df1982_subset[df1982_subset['year'] == 1982]
df1982_subset['const'] = 1

df1988_subset= df1.dropna(subset=['beertax', 'mrall'])
df1988_subset= df1988_subset[df1988_subset['year'] == 1988]
df1988_subset['const'] = 1


X_1982 = df1982_subset['beertax']
y_1982 = df1982_subset['mrall']
labels = df1982_subset['state']

X_1988 = df1988_subset['beertax']
y_1988 = df1988_subset['mrall']
labels = df1988_subset['state']


#geração da figura referente ao ano de 1982

fig, ax1982 = plt.subplots()
ax1982.scatter(X_1982, y_1982, marker='.')


# linha de tendência linear
ax1982.plot(np.unique(X_1982),
         np.poly1d(np.polyfit(X_1982, y_1982, 1))(np.unique(X_1982)),
         color='black')

ax1982.set_xlim([0,3])
ax1982.set_ylim([0,4.5])
ax1982.set_xlabel('Beer Tax')
ax1982.set_ylabel('Fatality rate')
ax1982.set_title('The traffic Fatality')
fig.suptitle('1982 data', fontsize=16)
plt.show()


#geração da figura referente ao ano de 1988
fig, ax1988 = plt.subplots()
ax1988.scatter(X_1988, y_1988, marker='.')

#linha de tendencia linear
ax1988.plot(np.unique(X_1988),
         np.poly1d(np.polyfit(X_1988, y_1988, 1))(np.unique(X_1988)),
         color='black')

ax1988.set_xlim([0,3])
ax1988.set_ylim([0,4.5])
ax1988.set_xlabel('Beer Tax')
ax1988.set_ylabel('Fatality rate')
ax1988.set_title('The traffic Fatality')
fig.suptitle('1988 data', fontsize=16)
plt.show()


#estimação das regressões e os resultados
reg1982 = sm.OLS(endog=df1982_subset['mrall'], exog=df1982_subset[['const', 'beertax']], \
    missing='drop')
type(reg1982)

results = reg1982.fit(cov_type='HC0')
type(results)
print(results.summary())

reg1988 = sm.OLS(endog=df1988_subset['mrall'], exog=df1988_subset[['const', 'beertax']], \
    missing='drop')
type(reg1988)

results = reg1988.fit(cov_type='HC0')
type(results)
print(results.summary())

A imagem será apresentada aqui.
A imagem será apresentada aqui.

A imagem será apresentada aqui.

A imagem será apresentada aqui.

Note que para os anos de 1982 e 1988 os resultados contrariam o que esperaríamos. Eles sugerem que aumento nos impostos da cerveja implica elevação na taxa de fatalidade no trânsito. Logicamente, por se tratar de uma regressão simples, sem controles adicionais, esse resultado provavelmente não ilustra a realidade. Nesse caso, é bastante plausível que haja viés de variável omitida. E quais seriam essas variáveis? Bom, pode ser a segurança dos carros fabricados, a qualidade das rodovias e até fatores sociais de como as pessoas encaram o consumo de álcool. Se algumas dessas variáveis forem correlacionadas com a nossa variável independente, teremos viés de variável omitida

Efeitos fixos – um primeiro resultado
Como temos muitas hipóteses para justificar um possível viés de variável omitida, o próximo passo é tentarmos tratar esse problema. Uma das maneiras mais simples, é fazermos a diferença das variáveis que estamos analisando entre dois períodos diferentes. Em outras palavras: seja \(Z_i \) uma variável não observada fixa no tempo e que varia entre os estados. Logo, temos as seguintes equações:

\[FatalityRate_{i1982}=β_0+β_1*BeerTax_{i1982}+β_2*Z_i+u_{i1982}\]
\[FatalityRate_{i1988}=β_0+β_1*BeerTax_{i1988}+β_2*Z_i+u_{i1988}\]

\(FatalityRate_i1988-FatalityRate_{i1982}=β_0+\)
\( β_1*(BeerTax_{i1988}-BeerTax_{i1982} )+u_{i1988}-u_{i1982}\)

Portanto, ao lidarmos com uma variável omitida (que seja fixa no tempo), podemos reduzir bastante esse viés, já que pela diferença entre as equações de 1982 e 1988, \( Z_i\) “some”. Abaixo há o código para gerar o scatterplot da figura 10.2 e a respectiva equação.

import numpy as np
import matplotlib.pyplot as plt
#%matplotlib inline
import pandas as pd
import statsmodels.api as sm
from statsmodels.iolib.summary2 import summary_col
#from linearmodels.iv import IV2SLS


# Tratamento de dados
df1 = pd.read_excel(r'D:\Doutorado\Dados exercicio\fatality_alt.xlsx')
df1.head()
df1['mrall']=df1['mrall'].apply(lambda x: x* 10000)


df1982_subset= df1.dropna(subset=['beertax', 'mrall'])
df1982_subset= df1982_subset[df1982_subset['year'] == 1982]
df1982_subset['const'] = 1

df1988_subset= df1.dropna(subset=['beertax', 'mrall'])
df1988_subset= df1988_subset[df1988_subset['year'] == 1988]
df1988_subset['const'] = 1


X_1982 = df1982_subset['beertax']
y_1982 = df1982_subset['mrall']
labels = df1982_subset['state']

X_1988 = df1988_subset['beertax']
y_1988 = df1988_subset['mrall']
labels = df1988_subset['state']

df1982_subset_new = df1982_subset.set_index('state')
df1988_subset_new = df1988_subset.set_index('state')

d_y = df1988_subset_new['mrall']-df1982_subset_new['mrall']
d_x=  df1988_subset_new['beertax']-df1982_subset_new['beertax']
d_state=df1988_subset['state']
d_y=d_y.to_frame()
d_x=d_x.to_frame()



base_fixed_effects=d_y.join(d_x,d_state)
base_fixed_effects['const'] = 1
#base_fixed_effects = add.d_state


# Gerar a regressão
reg_fixed_effects = sm.OLS(endog=base_fixed_effects['mrall'], exog=base_fixed_effects[['const', 'beertax']], \
    missing='drop')
type(reg_fixed_effects)

#results = reg_fixed_effects.fit(cov_type='HAC',cov_kwds={'maxlags':10})
results = reg_fixed_effects.fit(cov_type='HC1')
type(results)
print(results.summary())

X_change = base_fixed_effects['beertax']
y_change = base_fixed_effects['mrall']


# Gerar a figura e a linha de tendencia
fig, ax_change = plt.subplots() 
ax_change.scatter(X_change, y_change, marker='.')
ax_change.plot(np.unique(X_change),
         np.poly1d(np.polyfit(X_change, y_change, 1))(np.unique(X_change)),
         color='blue')

ax_change.set_xlim([-0.6,0.6])
ax_change.set_ylim([-1.5,1.0])
ax_change.set_xlabel('Change in beer Tax')
ax_change.set_ylabel('Change in fatality rate')
ax_change.set_title('Changes in Fatality Rate and Beer Taxes, 1982-1988')
plt.show()

A imagem será apresentada aqui.

A imagem será apresentada aqui.

Note que ao estimarmos a nova equação, os coeficientes reportados passam a ser coerentes com a teoria econômica, ou seja: negativo (e significante a 5%). Nesse caso específico conseguimos ver como o viés de variável omitida impactou os primeiros resultados que reportamos mais acima e como é importante levarmos em conta esse tipo de evento. Em relação ao resultado da equação temos que uma elevação de 1 dólar por cerveja reduz a taxa de mortalidade em torno de 1,04 mortes por 10.000 pessoas. Como a média da taxa de mortalidade nos estados é aproximadamente 2, estamos falando que um aumento de 1 dólar nos impostos reduz a fatalidade pela metade.

Stock e Watson nesse ponto afirmam que esse resultado é bastante expressivo, mas é importante fazer algumas ressalvas. Se “beer case” estiver tratando de um pack com 24 cervejas, estamos falando de um preço médio em torno de 20 dólares ao consideramos o mapa abaixo. Mas isso é em relação aos preços atuais. Se colocarmos a preços de 1988, como é feito pelo exercício, com uma inflação acumulada em torno de 120% até 2019, teremos que o pack de cerveja médio foi em torno de U$9,00, em dólares de 1988. Portanto, quando se diz que um aumento de “apenas” U$1,00 na taxação, o que se está falando é que o governo irá aumentar o imposto de bebidas fortemente.

A imagem será apresentada aqui.

De fato, ao analisarmos a séries temporal de estado para estado durante 1988 a 1999, são poucos os pontos em que observamos um aumento interanual considerável (acima de 10%) nos impostos; provavelmente por este aumento ser significativo e de difícil implementação (impopular).

Regressão com Efeitos fixos e tempo fixo:
O próximo passo é estimar o modelo levando em conta todos os 7 anos da amostra. Para fazer essa regressão a estratégia será utilizar efeitos fixos para todas as entidades, no caso os estados. Como explicado, essa estratégia nos permite controlar para variáveis não observáveis que varia de estado para estado (entidades) mas é fixa no tempo.
Em um primeiro momento, podemos pensar em muitas variáveis que variam entre estados e são relativamente constantes durante o tempo. No estado de Luisiana, por exemplo, o consumo de bebida alcoólica é permitido nas vias públicas, ao passo que na grande maioria dos outros estados americanos esse comportamento é veementemente proibido. Portanto, é esperado que o consumo de cerveja em Luisiana seja muito mais tolerante perante a sociedade do que na Georgia, por exemplo. Assim, se não controlarmos para esse tipo de característica (evento) que tende a ser imutável no período analisado, nossos resultados serão enviesados.
O interessante da regressão com efeito fixo é que ela permite tratarmos praticamente todas as variáveis não observáveis que variam entre os estados (entidades) e sejam teoricamente fixas no tempo analisado. Econometricamente, considere a seguinte regressão:

\[FatalityRate_{it}=β_0+β_1*BeerTax_{it}+β_2*Z_i+u_{it} (10.9)\]

Onde \(Z_i \)representa variáveis não observáveis (como a cultura de bebida) que variam de um estado para outro. Logo, é possível interpretarmos a equação acima como tendo n interceptos para cada estado i, da seguinte maneira:

\[FatalityRate_{it}=β_1*BeerTax_{it}+α_i+u_{it} (10.10)\]
Onde \(α_i=β_0+β_2*Z_i\)

A equação (10.10) é conhecida como equação de efeitos fixos. Ela também pode ser escrita por meio de variáveis dummies \(Dn_i\) as quais representam cada uma das i entidades analisadas. A equação (10.10) ficaria da seguinte forma:

\[FatalityRate_{it}=β_1*BeerTax_{it}+γ_2*D2_i+γ_3*D3_i+γ_n+Dn_i+u_{it} (10.11)\]

O Python disponibiliza um pacote chamado “linearmodels” que facilita bastante a estimação em painel, com as opções de aplicação de efeitos fixos. Esse pacote ao estimar o painel com efeitos fixos utiliza uma abordagem parecida a da equação (10.11). Abaixo podemos ver o código:

import numpy as np
import matplotlib.pyplot as plt
#%matplotlib inline
import pandas as pd
import statsmodels.api as sm
from statsmodels.iolib.summary2 import summary_col
from linearmodels import PanelOLS


# tratamento de dados
df1 = pd.read_excel(r'D:\Doutorado\Dados exercicio\fatality_alt.xlsx')
df1.head()
df1['mrall']=df1['mrall'].apply(lambda x: x* 10000)

df1 = df1.set_index(['state','year'])

#estimação do modelo
mod = PanelOLS.from_formula('mrall ~ beertax + EntityEffects', df1)
res1 = mod.fit(cov_type='clustered', cluster_entity=True)
print(res1)

A imagem será apresentada aqui.

Conforme o esperado, a relação entre impostos de cerveja e taxa de fatalidade no trânsito é negativa. No entanto, é natural pensarmos que há outros fatores que podem afetar o coeficiente estimado. Por exemplo, os itens de segurança de carros mais novos podem ter contribuído para reduzir a taxa de acidentes fatais. Seguindo o mesmo raciocínio, podemos uma analogia sobre a qualidade das vias. É provável que o governo ao analisar os pontos mais críticos onde há acidentes fatais faça um túnel ou um viaduto para evitar esse tipo de evento. Assim, mesmo quando controlamos para efeitos fixos, precisamos controlar para variáveis não observáveis que mudam no decorrer do tempo. Esse controle é chamado de efeito de tempo fixo (time fixed effects) e pode ser mostrado da seguinte forma:

\[FatalityRate_{it}=β_0+β_1*BeerTax_{it}+β_2*Z_i+β_3*S_t+u_{it} (10.16)\]

Onde \(S_t\) representa variáveis não observáveis que são iguais entre os estados mas que variam no tempo. Da mesma maneira que reescrevemos o modelo de efeito fixo com variáveis dummies representando cada um dos estados (entidades), também é possível fazer essa representação com o modelo de efeito de tempo fixos; porém as dummies irão se referir aos anos analisados.
Novamente o pacote linearmodels nos auxilia bastante a estimar o modelo. Abaixo está o código necessário para rodar o painel com efeitos fixos e efeitos de tempo fixo.

# tratamento de dados
df1 = pd.read_excel(r'D:\Doutorado\Dados exercicio\fatality_alt.xlsx')
df1.head()
df1['mrall']=df1['mrall'].apply(lambda x: x* 10000)

df1 = df1.set_index(['state','year'])

#estimação do modelo
mod2 = PanelOLS.from_formula('mrall ~ beertax + EntityEffects + TimeEffects', df1)
res2 = mod2.fit(cov_type='clustered', cluster_entity=True, cluster_time=True)
print(res2)

A imagem será apresentada aqui.

Note como a estimação se manteve negativa, coerente com a teoria e com magnitude parecida a estimação anterior. No entanto, a significância se reduziu (é significante a 10% ao invés de 5% como anteriormente). Salienta-se que nessa estimação os graus de liberdade são menores também, pois estamos lidando com mais 6 dummies indicando cada um dos anos analisados.
Um ponto não analisado por Stock Watson e que poderia ter sido desenvolvido aqui se refere a elasticidade preço da demanda por cerveja nos estamos americanos. Digo isso, pois as estimações até aqui realizadas se baseiam em uma relação indireta entre pessoas que estão envolvidas em acidentes fatais de trânsito e o consumo de bebidas alcoólicas. Os autores talvez pudessem trazer mais informação caso nos mostrassem essa elasticidade em um primeiro momento; pois mesmo “controlando para tudo o que é possível” é provável que esse aumento nos impostos de cerveja não afete quem está disposto a beber e dirigir. Em outras palavras, é possível termos um problema de identificação pois hora alguma se mostrou qual seria a elasticidade preço da demanda por cerveja. Nesse ponto, caso se encontre uma elasticidade baixíssima seria difícil defender a magnitude do coeficiente BeerTax encontrado (ele provavelmente seria devido a outros fatores e não o BeerTax por si). O problema se torna ainda maior, pois é possível que quem está disposto a beber e dirigir tenha uma elasticidade preço muito menor do que a o restante da população.

0 votos
respondida Nov 18 por JOAO PAULO (1 ponto)  
editado 6 dias atrás por JOAO PAULO

Mortes no trânsito e leis (de trânsito) relacionadas a bebidas alcoólicas:

Obviamente existem outros fatores que impactam a redução de acidentes fatais de trânsito além dos impostos sobre cerveja. É com esse pensamento que vamos para a última parte do exercício. Nessa parte do exercício iremos estimar 7 modelos com diferentes variáveis e ver como cada uma delas se relacionam a taxa de mortalidade no trânsito. Novamente utilizamos a biblioteca linearmodels para gerar as estimações abaixo:

import numpy as np
import matplotlib.pyplot as plt
#%matplotlib inline
import pandas as pd
import statsmodels.api as sm
import statsmodels.stats.anova as anova_lm
from statsmodels.iolib.summary2 import summary_col
from linearmodels import PanelOLS
from linearmodels.panel import compare

#tratamento de dados
df1 = pd.read_excel(r'D:\Doutorado\Dados exercicio\fatality_alt.xlsx')
df1.head()
df1['const'] = 1


df1['mrall']=df1['mrall'].apply(lambda x: x* 10000)
df1['log_perinc']=np.log(df1['perinc'])
df1['jaild_or_comserd']=df1['jaild'] + df1['comserd']
df1['jaild_or_comserd']=df1['jaild_or_comserd'].apply(lambda x: 1 if x>0 else 0)


df1_prov=df1
df1_1982=df1



df1= df1.set_index(['state','year'])
df1_1982['year_1']=df1_1982['year']
df1_1982 = df1_1982.set_index(['year'])
df1_1982= df1_1982.drop([1983,1984,1985,1986,1987])
df1_1982 = df1_1982.set_index(['state','year_1'])



dummy_idade=pd.get_dummies(df1['mlda'])
dummy_idade.head()

dummy_idade1982=pd.get_dummies(df1_1982['mlda'])
dummy_idade1982.head()



df1['dummy_18'] = dummy_idade[18.0]+dummy_idade[18.5]
df1_1982['dummy_18'] = dummy_idade1982[18.0]+dummy_idade1982[18.5]


df1['dummy_19'] = dummy_idade[19.0]+dummy_idade[19.1599998474121] \
    +dummy_idade[19.25]+dummy_idade[19.5]+dummy_idade[19.6700000762939]
df1_1982['dummy_19'] = dummy_idade1982[19.0]+dummy_idade1982[19.5]



df1['dummy_20'] = dummy_idade[20.0]+dummy_idade[20.25]+dummy_idade[20.3299999237061]  \
   + dummy_idade[20.5]
df1_1982['dummy_20'] = dummy_idade1982[20.0]


# Hipoteses que irão ser utilizadas para os testes de Wald mais adiante
hipotese4_1 = '(dummy_18=0, dummy_19=0, dummy_20=0)'
hipotese4_2 = '(log_perinc=0, unrate=0)'

hipotese5_1 = '(dummy_18=0, dummy_19=0, dummy_20=0)'

hipotese6_1 = '(log_perinc=0, unrate=0)'

hipotese7_1 = '(dummy_18=0, dummy_19=0, dummy_20=0)'
hipotese7_2 = '(log_perinc=0, unrate=0)'


# regressões do painel
reg1 = PanelOLS.from_formula('mrall ~ +1+ beertax', df1)
res1 = reg1.fit()


reg2 = PanelOLS.from_formula('mrall ~ beertax + EntityEffects', df1)
res2 = reg2.fit(cov_type='clustered', cluster_entity=True)


reg3 = PanelOLS.from_formula('mrall ~ beertax + EntityEffects + TimeEffects', df1)
res3 = reg3.fit(cov_type='clustered', cluster_entity=True, cluster_time=True)


reg4 = PanelOLS.from_formula('mrall ~ beertax + dummy_18 + dummy_19 + dummy_20 + \
                             jaild_or_comserd + vmiles + unrate + log_perinc + EntityEffects + TimeEffects', df1)
res4 = reg4.fit(cov_type='clustered', cluster_entity=True, cluster_time=True)
wald4_1= res4.wald_test(formula = hipotese4_1)
wald4_2= res4.wald_test(formula = hipotese4_2)

reg5 = PanelOLS.from_formula('mrall ~ beertax + dummy_18 + dummy_19 + dummy_20 + \
                             jaild_or_comserd + vmiles + EntityEffects + TimeEffects', df1)
res5 = reg5.fit(cov_type='clustered', cluster_entity=True, cluster_time=True)
wald5_1= res5.wald_test(formula = hipotese5_1)


reg6 = PanelOLS.from_formula('mrall ~ beertax + mlda + \
                             jaild_or_comserd + vmiles +  unrate + log_perinc+EntityEffects + TimeEffects', df1)
res6 = reg6.fit(cov_type='clustered', cluster_entity=True, cluster_time=True)
wald6_1= res6.wald_test(formula = hipotese6_1)


reg7 = PanelOLS.from_formula('mrall ~ beertax + dummy_18 + dummy_19 + dummy_20 + \
                             jaild_or_comserd + vmiles + unrate + log_perinc + EntityEffects + TimeEffects', df1_1982)
res7 = reg7.fit(cov_type='clustered', cluster_entity=True, cluster_time=True)
wald7_1= res7.wald_test(formula = hipotese7_1)
wald7_2= res7.wald_test(formula = hipotese7_2)


print(compare({'(1)':res1,'(2)':res2,'(3)':res3,'(4)':res4,'(5)':res5,'(6)':res6,'(7)':res7}))


print('\n')
print('Modelo 4 - H0:',hipotese4_1)
print(wald4_1)
print('\n')

print('Modelo 4 - H0:',hipotese4_2)
print(wald4_2)
print('\n')

print('Modelo 5 - H0:',hipotese5_1)
print(wald5_1)
print('\n')

print('Modelo 6 - H0:',hipotese6_1)
print(wald6_1)
print('\n')

print('Modelo 7 - H0:',hipotese7_1)
print(wald7_1)
print('\n')

print('Modelo 7 - H0:',hipotese7_2)
print(wald7_2)

A imagem será apresentada aqui.

Antes de prosseguirmos na análise do painel é importante salientar um ponto:

• Para realizar os testes de exclusão conjunta de variáveis a biblioteca linearmodels utiliza o teste de Wald. Logo, os testes reportados no código acima não serão os testes F como estão no livro, mas sim testes de Wald com distribuição chi-quadrado que para análise que estamos fazendo desempenha um papel igual. No entanto, os testes de exclusão conjunta de todas as variáveis explicativas é feito pelo teste F padrão.

O modelo (1) é um painel estimado apenas com imposto sobre cerveja, utilizando os 7 anos da base de dados. O resultado (significativo) nos mostra uma relação positiva entre o imposto de cerveja e os acidentes fatais. Porém não estamos controlando para nenhum efeito nessa estimação e por isso o coeficiente deve estar bastante viesado (além do fato da estimação não utilizar uma matriz de var-cov robusta a heterocidasticidade e autocorrelação).

No modelo (2), repetimos a estimação do (1) mas controlando para os efeitos fixos e com matriz de var-cov robusta para esse tipo de especificação (painel com efeitos fixos). Conforme já visto, ao realizar esse tipo de controle, o coeficiente se torna negativo e consistente com a teoria. O modelo (3) adiciona efeitos de tempo fixos ao modelo (2) e a conclusão do modelo 2 se mantem.

A partir do modelo (4) é inserido outras variáveis. A primeira delas é um conjunto de variáveis dummy que representam a idade legal mínima para dirigir nos estados no decorrer dos anos analisados. A justificativa teorica é que geralmente jovens são mais imaturos e imprudentes no trânsito, e assim conceder permissão para pessoas mais novas a dirigir implicaria aumento no número de acidentes (isso é um fato consolidado e é por esse motivo que as seguradoras de veículos costumam cobrar um prêmio maior para jovens). O sinal dos coeficientes das dummies é positivo (conforme o esperado) mas não significantes. De fato, ao realizarmos o teste de Wald, notamos que a as dummies não são estatísticamente diferentes de 0.

Outra variável analisada é a penalidade imposta em quem é pego dirigindo após ingerir bebida alcoolica. Era esperado que punições mais severas (prisão) desencorajassem o consumo de bebidas alcoolicas e por isso o sinal esperado fosse negativo; mas não é isso o que vemos. Apesar do sinal estar positivo, ele é não significante. Esse resultado, a meu modo de ver é bastante curioso, pois esperaria que fosse negativo e significativo. A única explicação possível (e que Stock e Watson poderia ter sinalizado) é a impunidade. Ora, não adianta punições severas se elas não são aplicadas; portanto mesmo que estados possuam pena duríssimas caso alguém for pego dirigindo bêbado, se a população sabe que essa penalidade nunca é aplicada, a lei não surtirá efeito.

As outras variáveis são relacionadas a renda e desemprego. Em relação ao efeito esperado da renda temos alguns pontos (teóricos) que atuam em sentido diverso:
• (Negativo) O primeiro ponto é que a renda maior torna possível não somente trocar de carro mais rapidamente mas também trocar por carros com mais acessórios de segurança. Mas note que mesmo controlando para essa variável não observável (aumento da segurança dos carros) temos uma relação que não é controlada. Pessoas com renda mais baixa não conseguem comprar carros novos, logo os acessórios de segurança apesar de existirem, não são consumidos por essa população “mais pobre”. Assim é possível esperar que renda per capita maior reverbere em menos acidentes fatais.

• (Negativo) O segundo ponto (a meu ver, polêmico) se relaciona a custo de oportunidade. Pessoas com renda mais elevada além de serem geralmente mais escolarizadas, tendem a ter uma perda econômica muito maior caso se envolvam em algum tipo de crime, logo elas tendem a evitar a dirigir bêbados ou a acometer qualquer tipo de infração no trânsito.

• (Positivo) O terceiro ponto (a meu ver mais polêmico ainda e sugerido por Stock e Watson para justificar o sinal do coeficiente) se refere ao consumo de cerveja quando a renda é mais alta. O argumento seria que quanto maior a renda, mais álcool as pessoas consumiriam. Isso pode até ser verdade, mas como estamos tratando somente de cerveja, temos que saber se cerveja é um bem normal ou não. Caso for bem normal, a possível justificativa dada por Stock e Watson é válida, caso contrário, não serviria.

• (Positivo) O quarto ponto se refere a quantidade de carros nas ruas. A justificativa é que maior renda aumenta a densidade de carros no trânsito e assim a chance de acidentes.

• (Positivo)O quinto ponto, não foi salientado por Stock e Watson, e talvez possa justificar o sinal encontrado nas estimações. Maior renda implica mais saídas noturnas; como a grande parte dos acidentes fatais ocorrem durante a noite/madrugada, uma maior quantidade de carros nesse horário pode aumentar a taxa de acidentes.

De fato, os resultados mostram que quanto maior a renda per capita maior a taxa de acidentes fatais no trânsito; os resultados do modelo (4) afirmam que a cada 1% de aumento na renda há um aumento de 0.0182 na taxa de fatalidade. Esse resultado, a meu ver, é dicotômico, ou seja: conseguiria justificativa teórica para ambos os sinais, no entanto com o que foi exposto acima, eu ficaria mais confortável se o sinal da renda per capita fosse negativo.
Em relação a taxa de desemprego o sinal é negativo, coerente com sinal observado para renda per capita i.e: se as fatalidades se elevam com maior renda; é esperado que menor desemprego também aumente as fatalidades. Logo, boas condições econômicas aumentam a taxa de fatalidade. É provável que o quinto ponto elencado acima seja preponderante para explicar o sinal desses coeficientes de condições econômicas (desemprego e renda). Por fim, ao realizarmos o teste de Wald para essas duas variáveis conjuntamente, é possível mostrar que elas são estatisticamente significantes.

A última variável estimada e que não possui significância é a média de milhas por motorista. Teoricamente poderíamos esperar que quanto mais milhas os motoristas dirigem, maior a probabilidade de se envolver em acidentes.
As outras estimações (modelos, 5,6,7) não alteram a conclusão dos resultados do modelo (4). Por fim, cabe salientar, que as estimações (a partir do modelo 4) foram controladas por efeitos fixos, efeitos de tempo fixos e matriz de variância e covariância robustas a heterocedasticidade e autocorrelação dos resíduos quando controlamos pelos efeitos.

A base de dados do exercício pode ser encontrada em: https://wps.pearsoned.com/aw_stock_ie_3/178/45691/11696965.cw/index.html

...