Tutorial de econometria espacial utilizando o stata
-
Upload
ricardo-schuch -
Category
Economy & Finance
-
view
1.710 -
download
32
Transcript of Tutorial de econometria espacial utilizando o stata
Tutorial de econometria espacial utilizando o STATA
Dr. Daniel de Abreu Uhr
Renan Porn Peres
Ricardo Capra Schuch
------------------------------------------------------------------------------------------------------------------
1. STATA: Análise espacial de dados
a) Instalação de pacotes ........................................................................................ 2
b) Baixando e utilizando o Shapefile ...................................................................... 3
i) No Stata ....................................................................................................... 3
ii) No Geoda ................................................................................................... 5
c) Gerando matriz de pesos .................................................................................... 6
i) SPATWMAT ................................................................................................... 6
ii) SPMAT .......................................................................................................... 7
iii) MATA …....................................................................................................... 7
d) Testando a dependência espacial ................................................................... 8
e) Regressão espacial .............................................................................................. 8
i) Especificação do modelo ......................................................................... 8
ii) Modelos de Regressão Espacial ............................................................... 9
A) Modelos com defasagens espaciais nos erros e na variável dependente
B) Modelos com defasagem espacial também nas variáveis explicativas
C)Regressão Variável Instrumental
D) Regressões Espaciais utilizando a matriz gerada no SPATWMAT
f) Interpretando as saídas ....................................................................................... 11
-----------------------------------------------------------------------------------------------------------------
a) Instalar os pacotes necessários no STATA:Definindo diretórios e processamento para lidarmos com matrizes espaciais
set more off
set matsize 1200
cd "C:\Users\User\Desktop\RS"
Para gerar um arquivo txt salvando o que foi feito
cap log using "spatialeconometrics", replace
Você deve instalar alguns pacotes que irão ser uteis para rodar os comandos de econometria espacial:
ssc install spmap
ssc install sppack
ssc install shp2dta
ssc install mif2dta
net install xsmle, all from(http://www.econometrics.it/stata)
findit sg162
Observação O pacote sg162 não esta disponível de modo isolado para o Brasil, por isso usamos o comando findit para acha-lo e assim, baixar os pacotes que ele esta contido.
Este comando atualiza os demais pacotes já existentes:
adoupdate
adoupdate, update
Baixando malhas geográficas
Para qualquer análise espacial é necessário um mapa da área de interesse, assim precisamos baixar estes arquivos shp. de sites como ibge, ipea, etc. que disponibilizam estes arquivos para download. O IBGE oferece uma base de dados completa contendo shapefile de diversos periodos em ftp://geoftp.ibge.gov.br/malhas_digitais/
fftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2005/escala_500mil/proj_policonica/arcview_shp/uf/rs/43mu500pc.zip
Outra opção é o IpeaGEO que já disponibiliza algumas malhas digitais que podem ser baixadas pelo usuário.
Visualização dos arquivos
Só conseguimos visualizar arquivos .dbf com o programa Openofice http://www.openoffice.org/download
i) No STATA:
Precisamos colocar o Shapefile (Arquivo .shp) para dentro do Stata (.dta):
shp2dta using “diretório do arquivo SHP”, database (exemplo1.dta) coordinates (exemplo2.dta) genid (_ID)
Com isso, colocamos uma base de DTA com as informações do Shape para dentro do sistema do STATA. Temos assim, dois arquivos DTA para esse Shape e um identificador que será útil na plotagem dos mapas.
Pareando com seus dados:Precisamos que o banco de dados esteja pareado com o banco gerado pelo arquivo Shape. Para isso:
Nos interessa colocar 4 variáveis no banco exemplo1.dta gerado pelo arquivo shape para o banco de variáveis (dbRS.dta). Estas são codigo id longitude e latitude.
Assim salvamos estas 4 váriaveis em uma arquivo para juntarmos como o banco de dados.use "C:\Users\User\Desktop\RS\banco.dta"
merge m:m codigo using "C:\Users\User\Desktop\RS\cord.dta"
Result # of obs.
-----------------------------------------
matched 496 (_merge==3)
drop _merge
save “"C:\Users\User\Desktop\RS\base.dta"
clear all
Assim temos as mesmas variáveis que serão úteis para a criação das matrizes de pesos e para geração de gráficos em ambos os bancos: coordRS.dta e base.dta
ii) Gerando a matriz de pesos espaciais através do GEODA:
Você deve ter o arquivo shape de interesse e o software Geoda para isso
Carregar Shapefile no Geoda-> Criar Pesos(Create Weights)-> Add Variable-> Código ou Nome da região-> Queen Contiguity -> Create
Salve o a matriz de pesos (arquivo.gal) no diretório de arquivos do STATA.
c) Criando Matriz de PesosPara fazermos inumeras análises espaciais, precisamos cria uma matriz de pesos espaciais. Esta matriz especifica o grau da conexão entre uma unidade espacial com outra. Especifica como unidades i e j se relacionam, um exemplo: são vizinhos?
i) SPMAT é um dos comandos para a criação de matrizes contiguas. Para criarmos matrizes por esse comando precisamos importar a shapefile e utilizar o banco de coordenadas gerado por este processo, como já vimos antes. Veja alguns exemplos: spmat cont WC using "C:\Users\User\Desktop\RS\coordRS.dta", id( _ID )
spmat import WG using "C:\Users\User\Desktop\RS\43mu500gc.gal", geoda
O comando SPMAT pode ser utilizado para a criação de matrizes distâncias. Veja:
spmat idistance WIr _X _Y, id( _ID ) normalize(row)
spmat idistance WId _X _Y, id( _ID ) dfunction(dhaversine)
Para excluir a matriz gerada usamos o seguinte comando:
spmat drop W
Exportar a matriz de pesos em dta:
spmat save W using "filename.dta"
Para visualizar a matriz de pesos devemos salva-la em txt:
spmat export W using "filename.txt"
O código de ID na matriz corresponde ao do Geoda.
Descrição da matriz:
spmat summarize WC
spmat sum WC, links detail
spmat graph WG
Para observarmos os autovalores
spmat eigenvalues WC
ii) SPATWMAT é um dos comandos mais utilizados para a criação de matrizes. Utiliza as coordenadas do banco de dados para a criação da matriz e conecta todas as unidades, no nosso caso os vizinhos, via distância. Veja:
spatwmat, name(W) xcoord(_X) ycoord(_Y) band(0 1) standardize
A matriz de pesos, W, é a inversa da distância da matriz padronizada, de modo que a soma é 1. Os itens xcoord e ycoord especifica quais variáveis contem a localização em coordenadas das localizações.
No item band especificamos a distancia máxima, no nosso exemplo usamos 10 milhas. Vamos dar uma olhada nesta matriz:
mat list W
Podemos também usar a matriz gerada pelo software Geoda, para isso devemos usar o comando
sort _ID
Com o objetivo de ordenar conforme a variável _ID do Geoda, que está no banco de dados, pois a matriz gerada a partir do Geoda utiliza a linha em que está o objeto analisado para identificação.spatwmat using "C:\Users\User\Desktop\RS\geod.dta" ,name(Wg) standardize
iii) Para alterarmos uma Matriz: Temos que usar o MATA
Passando a Matriz da memória do spmat para a memória do MATA:
spmat getmatrix WC A
mata: A
link útil de operações no mata: http://www.stata.com/support/faqs/data-management/element-by-element-operations-on-matrices/
d) Verificando a dependência espacial:Alguns Gráficos para verificar se os dados estão concentrados
Carregando o banco de variáveis:
use base, clear
Agora, vamos descrever as variáveis de interesse
describe _ID furto_veic
i) Gerando um mapa de corrupção para o Rio Grande do Sul:
spmap furto_veic using coordRS, id(_ID) legend(symy(*2) symx(*2) size(*2)) clnumber(5) fcolor(Greens) legstyle(2) title("Furto de veiculos no Rio Grande do Sul", size(*0.8)) note("Pelotas, Rio Grande do Sul 2014 neighorhood data")
O pacote spmap tem muitas opções, aproveite para checar:
help spmap
ii) Diagnóstico Espacial
A) Teste do Índice de Moran
Verificar se as variáveis tem dependência espacial:
spatgsa furto_veic, w(Wg) moran
B) Teste do Índice Local de Dependência Espacial (LISA):
spatlsa furto_veic, w(W) moran id(_ID) sort
spatlsa furto_veic, weights(W) moran graph(moran) symbol(id) id( Municipios )
spatlsa furto_veic, w(W) moran id(_ID) map(coordRS.dta) xcoord(_Y) ycoord(_X) savegraph(spmap)
Podemos observar que o teste de Moran's I foi significativo, então há dependência espacial.
C) Corrarelogramas em relação à distância:
spatcorr furto_veic, bands(0(1)10) xcoord(_X) ycoord(_Y)
spatcorr furto_veic, bands(0(1)10) xcoord(_X) ycoord(_Y) cumulative
spatcorr furto_veic, bands(0(1)10) xcoord(_X) ycoord(_Y) graph
e) Regressões Espaciais i) Especificando o modelo
reg Y Xs, robust
Teste diagnóstico sobre os resultados da estimação OLS (dependência espacial):
spatdiag, weights(W)
Este teste mostra que há um significante efeito espacial e seus resultados vão nos auxiliar na escolha do modelo.
------------------------------------------------------------------------------------------------------------reg furto_veic valor_adic_bruto carros_passag analfabetismo posse_entorp fundo_mun_segpub deleg_polic_civil penitenciaria, robust
Linear regression Number of obs = 496
F( 7, 488) = 894.98
Prob > F = 0.0000
R-squared = 0.9489
Root MSE = 42.461
-----------------------------------------------------------------------------------
| Robust
furto_veic | Coef. Std. Err. t P>|t| [95% Conf. Interval]
------------------+----------------------------------------------------------------
valor_adic_bruto | .000037 .0000237 1.56 0.119 -9.52e-06 .0000835
carros_passag | .0052716 .0012398 4.25 0.000 .0028355 .0077077
analfabetismo | .8713579 .3161347 2.76 0.006 .2502048 1.492511
posse_entorp | -.411659 .3012619 -1.37 0.172 -1.00359 .1802716
fundo_mun_segpub | -27.98689 14.73499 -1.90 0.058 -56.93875 .9649602
deleg_polic_civil | -15.99604 2.137453 -7.48 0.000 -20.19579 -11.79629
penitenciaria | -.026953 .0221671 -1.22 0.225 -.0705078 .0166019
_cons | -11.64398 2.65038 -4.39 0.000 -16.85155 -6.436417
-----------------------------------------------------------------------------------
spatdiag, weights(W)
Diagnostic tests for spatial dependence in OLS regression
Fitted model
------------------------------------------------------------
furto_veic = valor_adic_bruto + carros_passag + analfabetismo + posse_entorp + fundo_mun_segpub + deleg_polic_civil + penitenciaria
------------------------------------------------------------
Weights matrix
------------------------------------------------------------
Name: W
Type: Distance-based (inverse distance)
Distance band: 0.0 < d <= 1.0
Row-standardized: Yes
------------------------------------------------------------
Diagnostics
------------------------------------------------------------
Test | Statistic df p-value
-------------------------------+----------------------------
Spatial error: |
Moran's I | 5.950 1 0.000
Lagrange multiplier | 29.974 1 0.000
Robust Lagrange multiplier | 21.559 1 0.000
|
Spatial lag: |
Lagrange multiplier | 12.441 1 0.000
Robust Lagrange multiplier | 4.025 1 0.045
------------------------------------------------------------
Ao observar estas saídas percebemos que tanto o erro esta correlacionado com o erro dos vizinhos, bem como a variável dependente esta correlacionada com o furto de veículos dos vizinhos, assim precisamos considerar ambas no modelo.
ii) Modelos de regressão espacial
A) Modelos com defasagens espaciais nos erros e na variável dependente
Efeito Global do Erro - ex: novo sistema de produção
Efeito Local do Erro - ex: poluição local
1) Regressão GMM SAR – Quando não tem erro espacial, em dois estágios.
O modelo é Y = dlWy + XB + u, o comando é dado por:
spreg gs2sls Y Xs, id(_ID) dlmat(W) het
2) Regressão ML SARAR - Quando não tem erro espacial
spreg ml Y Xs, id(_ID) dlmat(W)
3) Regressão GMM SEM – Quando não existe lag espacial porem há erro espacial autoregressivo.
O modelo é u = elWu + v, o comando é dado por:
spreg gs2sls Y Xs, id(_ID) elmat(WC) het
4) Regressão ML SEM - Quando não existe lag espacial porem há erro espacial autoregressivo.
spreg ml Y Xs, id(_ID) elmat(W)
Neste modelo, os erros associados com qualquer observalção são uma média dos erros nas regiões vizinhas mais um componente de erro aleatório.
5) Regressão GMM SARAR (SAC)
Neste caso o modelo é dado por Y = dlWy + BX + u, u = elWu + v
spreg gs2sls Y Xs, id(_ID) dlmat(WC) elmat(WC) het
6) Regressão ML SARAR (SAC)
spreg ml Y Xs, id(_ID) dlmat(WC) elmat(WC)
Segundo o modelo um choque na região j afeta todas as outras regiões por intermédio do multiplicador espacial do processo SAR da defasagem espacial, amplificado pelo efeito multiplicador extra proporcionado pelo processo de erro espacial.
Convém lembrar que a consequência de não incorporamos os componentes Wy e Wu quando relevantes, gera estimativas viesadas e ineficientes em amostras pequenas e inconsistentes em grandes amostras.
B) Modelos com defasagem espacial também nas variáveis explicativas.
Para utilizarmos esses modelos precisamos gerar um lag espacial em uma variável explicativa:
spmat lag double Wcar W carros_passag
1) Modelo Durbin GMM(SDM) – Não tem erro espacial
Neste caso o modelo é dado por Y = WY XB + WX + u
spreg gs2sls corrupção gini Wgini, id(_ID) dlmat(WC) het
2) Modelo Durbin ML(SDM) No spatial error
spreg ml corrupção gini Wgini, id(_ID) dlmat(WC)
3) Regressão Durbin do erro(SDEM)GMM – Sem lag espacial na variável dependente.
Neste caso o modelo é dado por Y = XB + WX + u, u = elW2u + v
spreg gs2sls corrupção gini Wgini, id(_ID) elmat(WC) het
4) Regressão Durbin do erro(SDEM)ML– Sem lag espacial na variável dependente.
spreg ml corrupção gini Wgini, id(_ID) elmat(WC)
5) Regressão GMM GSM
spreg gs2sls corrupção gini Wgini, id(_ID) dlmat(WC) elmat(WC) het
6) Regressão ML GSM
spreg ml corrupção gini Wgini, id(_ID) dlmat(WC) elmat(WC)
---------------------------------------------------------------
spreg ml furto_veic valor_adic_bruto carros_passag Wcarros analfabetismo Wanalfab posse_entorp fundo_mun_segpub Wfundsp deleg_polic_civil Wpen penitenciaria, id(_ID) dlmat(WC) elmat(WC)
spreg ml furto_veic valor_adic_bruto carros_passag analfabetismo posse_entorp fundo_mun_segpub deleg_polic_civil penitenciaria Wcarros Wanalfab Wfundsp Wpen, id(_ID) dlmat(WC) elmat(WC)
------------------------------------------------------------------------------
C) Regressão Variável Instrumental
spivreg corrupção (gini = txdesemp), id(_ID) dlmat(WC) elmat(WC) het
predict pol
D) Regressões Espaciais utilizando a matriz gerada no SPATWMAT
O comando spatreg é um pouco limitado, porem é bom saber
Modelo de Erro Espacial:
spatreg corrupção gini , weights(W) eigenval(E) model(error)
Modelo de Lag Espacial:
spatreg corrupção gini, weights(W) eigenval(E) model(lag)