14
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

Tutorial de econometria espacial utilizando o stata

Embed Size (px)

Citation preview

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)

f) Interpretando as saídascap log close