Licença

This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.

License: CC BY-SA 4.0

Citação

Sugestão de citação: FIGUEIREDO, Adriano Marcos Rodrigues. Econometria com Panel Data: Exemplo utilizando pder::FinanceGrowth dataset. Campo Grande-MS,Brasil: RStudio/Rpubs, 2019. Disponível em http://rpubs.com/amrofi/Econometrics_panel_FinanceGrowth.

1 Introdução

O estudo envolve uma relação entre a qualidade do sistema financeiro e o crescimento econômico. Para este fim, estimar e analisar um modelo em que o crescimento econômico é uma função de um número de variáveis de controle e de características exógenas do sistema financeiro, em um painel de 74 países com 7 observações de períodos de 5 anos de 1960 a 1995. Os dados estão disponíveis no pacote CRAN ‘pder’ de Croissant e Millo [data(FinanceGrowth)]. Referência: LEVINE, R.; LOAYZA, N.; BECK, T. (2000) “Financial intermediation and growth: causality and causes”, Journal of Monetary Economics, 46, 31-77.

Portanto, os passos para desenvolvimento são:

1.    acessar pacote    
2.    baixar dados    
3.    processar variáveis    
4.    rodar modelo    
5.    interpretar saída.    

2 Puxar dados

Os dados, conforme enunciado, estão em pder::FinanceGrowth. Portanto, o pacote pder deve estar previamente instalado.

library(pder)
data(FinanceGrowth)
# A dataframe containing : country - country name period - period growth -
# growth rate * 100 privo - log private credit / GDP lly - log liquid
# liabilities / GDP btot - log bank credit/total credit lgdp - log initial gdp
# per capita (PPP) sec - mean years of secondary schooling gov - log government
# spending / GDP lbmp - log(1 black market premium) lpi - log(1 + inflation
# rate) trade - log (imports + exports)/GDP

3 Organizando o dataset

4 Estatísticas descritivas originais

# Descriptive statistics
library(knitr)
kable(summary(FinanceGrowth), caption = "Estatísticas descritivas")
Estatísticas descritivas
country period growth privo lly btot lgdp sec gov lbmp lpi trade
Length:546 1961-65:78 Min. :-10.0209 Min. :0.00338 Min. :0.04676 Min. :0.1227 Min. :4.677 Min. :0.000 Min. :0.04064 Min. :-0.05503 Min. :-0.03103 Min. :0.09287
Class :character 1966-70:78 1st Qu.: 0.1729 1st Qu.:0.14997 1st Qu.:0.21791 1st Qu.:0.6567 1st Qu.:6.361 1st Qu.:0.370 1st Qu.:0.10446 1st Qu.: 0.00000 1st Qu.: 0.04050 1st Qu.:0.35988
Mode :character 1971-75:78 Median : 1.9362 Median :0.25714 Median :0.35819 Median :0.8238 Median :7.233 Median :0.850 Median :0.13593 Median : 0.05781 Median : 0.08034 Median :0.50676
NA 1976-80:78 Mean : 1.7717 Mean :0.36699 Mean :0.42464 Mean :0.7673 Mean :7.394 Mean :1.122 Mean :0.14816 Mean : 0.20450 Mean : 0.12595 Mean :0.59962
NA 1981-85:78 3rd Qu.: 3.5465 3rd Qu.:0.48985 3rd Qu.:0.56463 3rd Qu.:0.9408 3rd Qu.:8.599 3rd Qu.:1.620 3rd Qu.:0.18008 3rd Qu.: 0.19525 3rd Qu.: 0.12861 3rd Qu.:0.71749
NA 1986-90:78 Max. : 11.1064 Max. :2.05951 Max. :1.91440 Max. :1.0000 Max. :9.910 Max. :5.150 Max. :0.44972 Max. : 4.70869 Max. : 1.49214 Max. :3.14521
NA 1991-95:78 NA’s :20 NA’s :35 NA’s :35 NA’s :15 NA’s :21 NA’s :15 NA’s :23 NA’s :26 NA’s :38 NA’s :19

Retirando NAs, o painel ficará desbalanceado conforme se verá na função pdim:

library(plm)
data <- na.omit(FinanceGrowth)
panel <- pdata.frame(data, index = c("country", "period"))
summary(panel)
      country        period       growth              privo        
 Australia:  7   1961-65:41   Min.   :-10.02092   Min.   :0.01563  
 Austria  :  7   1966-70:51   1st Qu.:  0.08481   1st Qu.:0.16055  
 Belgium  :  7   1971-75:60   Median :  1.90715   Median :0.27619  
 Bolivia  :  7   1976-80:70   Mean   :  1.63614   Mean   :0.39304  
 Brazil   :  7   1981-85:76   3rd Qu.:  3.39214   3rd Qu.:0.54692  
 Canada   :  7   1986-90:77   Max.   : 11.10643   Max.   :2.05951  
 (Other)  :403   1991-95:70                                        
      lly               btot             lgdp            sec      
 Min.   :0.06724   Min.   :0.1227   Min.   :5.091   Min.   :0.04  
 1st Qu.:0.22731   1st Qu.:0.6633   1st Qu.:6.562   1st Qu.:0.50  
 Median :0.38223   Median :0.8206   Median :7.496   Median :1.04  
 Mean   :0.43189   Mean   :0.7688   Mean   :7.587   Mean   :1.26  
 3rd Qu.:0.57441   3rd Qu.:0.9405   3rd Qu.:8.865   3rd Qu.:1.79  
 Max.   :1.91440   Max.   :0.9998   Max.   :9.910   Max.   :5.15  
                                                                  
      gov               lbmp               lpi               trade        
 Min.   :0.04064   Min.   :-0.05503   Min.   :-0.03103   Min.   :0.09287  
 1st Qu.:0.10561   1st Qu.: 0.00000   1st Qu.: 0.04582   1st Qu.:0.35104  
 Median :0.13687   Median : 0.04631   Median : 0.08497   Median :0.50081  
 Mean   :0.14775   Mean   : 0.20115   Mean   : 0.12842   Mean   :0.54597  
 3rd Qu.:0.17997   3rd Qu.: 0.18611   3rd Qu.: 0.13532   3rd Qu.:0.67721  
 Max.   :0.38016   Max.   : 4.70869   Max.   : 1.49156   Max.   :2.11124  
                                                                          
pdim(panel)  # Unbalanced Panel: n = 77, T = 2-7, N = 445
Unbalanced Panel: n = 77, T = 2-7, N = 445

É possível ver a variação de Y (growth) no tempo e entre cross-sections:

coplot(growth ~ country | period, type = "b", data = panel)  # Points and lines

# Bars at top indicates corresponding graph (i.e. countries) from left to right
# starting on the bottom row (Muenchen/Hilbe:355)

O gráfico de dispersão permite visualizar um pouco mais sobre o painel:

library(gplots)
plotmeans(growth ~ country, main = "Heterogeineity across units", data = panel)

plotmeans(growth ~ period, main = "Heterogeineity across periods", data = panel)

# plotmeansdraw a 95% confidence interval around the means

5 Modelo

A partir desta organização da base de dados em painel, procedem-se as estimativas.

5.1 Pooled OLS (MQO nos Dados Empilhados)

O primeiro estimador é do modelo “empilhado”, ou “Pooled estimator”, obtido com Mínimos Quadrados Ordinários (MQO) na base de dados sem preocupar com a indicação entre cross-section e tempos. Este método não considera a heterogeneidade entre grupos ou tempo.

fm1 <- growth ~ (lgdp) + privo + lly + btot + sec + gov + lbmp + lpi + trade
pooling <- plm(formula = fm1, data = panel, index = c("country", "period"), model = "pooling")
source("aicbic_plm.R")
pooling$AIC <- aicbic_plm(pooling, "AIC")
pooling$BIC <- aicbic_plm(pooling, "BIC")
suppressMessages(library(stargazer))
stargazer(pooling, title = "Título: Resultado da Regressão Pooled OLS", align = TRUE,
    type = "text", style = "all", keep.stat = c("AIC", "BIC", "rsq", "adj.rsq", "n"))

Título: Resultado da Regressão Pooled OLS
===============================================
                        Dependent variable:    
                    ---------------------------
                              growth           
-----------------------------------------------
lgdp                           0.158           
                              (0.178)          
                             t = 0.891         
                             p = 0.374         
privo                        -2.579***         
                              (0.832)          
                            t = -3.100         
                             p = 0.003         
lly                          2.798***          
                              (0.911)          
                             t = 3.070         
                             p = 0.003         
btot                         2.885***          
                              (0.875)          
                             t = 3.297         
                             p = 0.002         
sec                            0.163           
                              (0.199)          
                             t = 0.816         
                             p = 0.415         
gov                          -6.175**          
                              (2.610)          
                            t = -2.366         
                             p = 0.019         
lbmp                         -1.350***         
                              (0.346)          
                            t = -3.903         
                            p = 0.0002         
lpi                          -2.567***         
                              (0.876)          
                            t = -2.930         
                             p = 0.004         
trade                         -0.492           
                              (0.456)          
                            t = -1.079         
                             p = 0.281         
Constant                      -0.401           
                              (1.067)          
                            t = -0.376         
                             p = 0.708         
-----------------------------------------------
Observations                    445            
R2                             0.199           
Adjusted R2                    0.182           
Akaike Inf. Crit.            2,129.200         
Bayesian Inf. Crit.          2,170.100         
===============================================
Note:               *p<0.1; **p<0.05; ***p<0.01

5.2 Fixed effects or within estimator

5.2.1 Oneway (individual) effect Within Model

fixed.one <- plm(formula = fm1, data = panel, index = country, effect = c("individual"),
    model = "within")
summary(fixed.one)
Oneway (individual) effect Within Model

Call:
plm(formula = fm1, data = panel, effect = c("individual"), model = "within", 
    index = country)

Unbalanced Panel: n = 77, T = 2-7, N = 445

Residuals:
      Min.    1st Qu.     Median    3rd Qu.       Max. 
-6.7103192 -0.9755816 -0.0087027  1.0327749  6.5644821 

Coefficients:
       Estimate Std. Error t-value  Pr(>|t|)    
lgdp   -5.25134    0.63715 -8.2419 3.219e-15 ***
privo   0.87795    1.12030  0.7837   0.43375    
lly    -0.20951    1.40682 -0.1489   0.88169    
btot    4.96284    1.15469  4.2980 2.223e-05 ***
sec     0.23991    0.32145  0.7463   0.45596    
gov   -10.74171    4.40085 -2.4408   0.01514 *  
lbmp   -0.40720    0.40594 -1.0031   0.31649    
lpi    -1.99878    0.95303 -2.0973   0.03667 *  
trade   1.50681    0.85540  1.7615   0.07900 .  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Total Sum of Squares:    2078.4
Residual Sum of Squares: 1391.5
R-Squared:      0.33049
Adj. R-Squared: 0.17197
F-statistic: 19.69 on 9 and 359 DF, p-value: < 2.22e-16
source("aicbic_plm.R")
(fixed.one$AIC <- aicbic_plm(fixed.one, "AIC"))
   AIC 
1944.2 
(fixed.one$BIC <- aicbic_plm(fixed.one, "BIC"))
   BIC 
2300.7 

5.3 Oneway (time) effect Within Model

Agora alterando para conter efeitos fixos no tempo.

fixed.onet <- plm(formula = fm1, data = panel, index = c(period), effect = c("time"),
    model = "within")
summary(fixed.onet)
Oneway (time) effect Within Model

Call:
plm(formula = fm1, data = panel, effect = c("time"), model = "within", 
    index = c(period))

Unbalanced Panel: n = 77, T = 2-7, N = 445

Residuals:
     Min.   1st Qu.    Median   3rd Qu.      Max. 
-9.412901 -1.242133 -0.075499  1.356096  7.841079 

Coefficients:
      Estimate Std. Error t-value  Pr(>|t|)    
lgdp  -0.16196    0.17624 -0.9190 0.3586213    
privo -1.74034    0.80259 -2.1684 0.0306765 *  
lly    3.07330    0.86807  3.5404 0.0004433 ***
btot   2.72195    0.83499  3.2599 0.0012034 ** 
sec    0.49964    0.19696  2.5368 0.0115413 *  
gov   -5.42592    2.49933 -2.1709 0.0304827 *  
lbmp  -1.20438    0.33070 -3.6420 0.0003037 ***
lpi   -0.97086    0.87782 -1.1060 0.2693498    
trade  0.22299    0.45218  0.4931 0.6221601    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Total Sum of Squares:    3269
Residual Sum of Squares: 2656.3
R-Squared:      0.18742
Adj. R-Squared: 0.15901
F-statistic: 10.9942 on 9 and 429 DF, p-value: 1.8299e-15
(fixed.onet$AIC <- aicbic_plm(fixed.onet, "AIC"))
   AIC 
2091.9 
(fixed.onet$BIC <- aicbic_plm(fixed.onet, "BIC"))
   BIC 
2161.6 

5.4 Twoways (individual and time) effects Within Model

fixed.two <- plm(formula = fm1, data = panel, index = c(country, period), effect = c("twoways"),
    model = "within")
summary(fixed.two)
Twoways effects Within Model

Call:
plm(formula = fm1, data = panel, effect = c("twoways"), model = "within", 
    index = c(country, period))

Unbalanced Panel: n = 77, T = 2-7, N = 445

Residuals:
     Min.   1st Qu.    Median   3rd Qu.      Max. 
-6.336882 -0.884402 -0.057674  0.960408  5.947032 

Coefficients:
        Estimate Std. Error t-value  Pr(>|t|)    
lgdp   -6.268676   0.684356 -9.1600 < 2.2e-16 ***
privo   0.677204   1.091505  0.6204  0.535374    
lly    -0.425835   1.363303 -0.3124  0.754955    
btot    4.553436   1.134513  4.0136 7.307e-05 ***
sec     0.083537   0.368203  0.2269  0.820651    
gov   -13.032231   4.348358 -2.9970  0.002919 ** 
lbmp   -0.201006   0.398659 -0.5042  0.614431    
lpi    -3.091743   0.977069 -3.1643  0.001690 ** 
trade   1.242336   0.850726  1.4603  0.145090    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Total Sum of Squares:    1726.9
Residual Sum of Squares: 1275.2
R-Squared:      0.2616
Adj. R-Squared: 0.071248
F-statistic: 13.8956 on 9 and 353 DF, p-value: < 2.22e-16
(fixed.two$AIC <- aicbic_plm(fixed.two, "AIC"))
   AIC 
1917.3 
(fixed.two$BIC <- aicbic_plm(fixed.two, "BIC"))
   BIC 
2298.5 

6 Random effects estimator

6.1 Oneway (individual) effect Random Effect Model (Swamy-Arora’s transformation - default)

# Random effects estimator
random <- plm(formula = fm1, data = panel, model = "random")
summary(random)
Oneway (individual) effect Random Effect Model 
   (Swamy-Arora's transformation)

Call:
plm(formula = fm1, data = panel, model = "random")

Unbalanced Panel: n = 77, T = 2-7, N = 445

Effects:
                var std.dev share
idiosyncratic 3.876   1.969 0.693
individual    1.715   1.310 0.307
theta:
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
 0.2716  0.4769  0.5060  0.4764  0.5060  0.5060 

Residuals:
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
-8.1749 -1.2715  0.1670  0.0229  1.2899  7.5833 

Coefficients:
             Estimate Std. Error z-value  Pr(>|z|)    
(Intercept)  0.288085   1.569957  0.1835   0.85441    
lgdp         0.068311   0.253014  0.2700   0.78717    
privo       -2.147670   0.989525 -2.1704   0.02998 *  
lly          1.312022   1.146587  1.1443   0.25251    
btot         4.187461   1.026997  4.0774 4.555e-05 ***
sec         -0.147535   0.257581 -0.5728   0.56680    
gov         -6.663179   3.369314 -1.9776   0.04797 *  
lbmp        -0.799253   0.376190 -2.1246   0.03362 *  
lpi         -3.673719   0.924560 -3.9735 7.083e-05 ***
trade       -0.719581   0.584949 -1.2302   0.21864    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Total Sum of Squares:    2586
Residual Sum of Squares: 2201
R-Squared:      0.14903
Adj. R-Squared: 0.13142
Chisq: 81.3867 on 9 DF, p-value: 8.5668e-14
(random$AIC <- aicbic_plm(random, "AIC"))
   AIC 
1994.2 
(random$BIC <- aicbic_plm(random, "BIC"))
   BIC 
2035.2 

7 Resumo

suppressMessages(library(stargazer))
stargazer(fixed.one, fixed.onet, fixed.two, random, title = "Uma comparação entre Fixed Effects e Random Effects models",
    align = TRUE, type = "text", style = "all", column.labels = c("EF-ind", "EF-time",
        "EFtwo", "EA-ind"), keep.stat = c("AIC", "BIC", "rsq", "adj.rsq", "n"))

Uma comparação entre Fixed Effects e Random Effects models
=================================================================
                                 Dependent variable:             
                    ---------------------------------------------
                                       growth                    
                      EF-ind     EF-time     EFtwo      EA-ind   
                        (1)        (2)        (3)         (4)    
-----------------------------------------------------------------
lgdp                 -5.251***    -0.162   -6.269***     0.068   
                      (0.637)    (0.176)    (0.684)     (0.253)  
                    t = -8.242  t = -0.919 t = -9.160  t = 0.270 
                     p = 0.000  p = 0.359  p = 0.000   p = 0.788 
privo                  0.878     -1.740**    0.677     -2.148**  
                      (1.120)    (0.803)    (1.092)     (0.990)  
                     t = 0.784  t = -2.168 t = 0.620  t = -2.170 
                     p = 0.434  p = 0.031  p = 0.536   p = 0.030 
lly                   -0.210     3.073***    -0.426      1.312   
                      (1.407)    (0.868)    (1.363)     (1.147)  
                    t = -0.149  t = 3.540  t = -0.312  t = 1.144 
                     p = 0.882  p = 0.0005 p = 0.755   p = 0.253 
btot                 4.963***    2.722***   4.553***   4.187***  
                      (1.155)    (0.835)    (1.135)     (1.027)  
                     t = 4.298  t = 3.260  t = 4.014   t = 4.077 
                    p = 0.00003 p = 0.002  p = 0.0001 p = 0.00005
sec                    0.240     0.500**     0.084      -0.148   
                      (0.321)    (0.197)    (0.368)     (0.258)  
                     t = 0.746  t = 2.537  t = 0.227  t = -0.573 
                     p = 0.456  p = 0.012  p = 0.821   p = 0.567 
gov                  -10.742**   -5.426**  -13.032***  -6.663**  
                      (4.401)    (2.499)    (4.348)     (3.369)  
                    t = -2.441  t = -2.171 t = -2.997 t = -1.978 
                     p = 0.016  p = 0.031  p = 0.003   p = 0.048 
lbmp                  -0.407    -1.204***    -0.201    -0.799**  
                      (0.406)    (0.331)    (0.399)     (0.376)  
                    t = -1.003  t = -3.642 t = -0.504 t = -2.125 
                     p = 0.317  p = 0.0004 p = 0.615   p = 0.034 
lpi                  -1.999**     -0.971   -3.092***   -3.674*** 
                      (0.953)    (0.878)    (0.977)     (0.925)  
                    t = -2.097  t = -1.106 t = -3.164 t = -3.973 
                     p = 0.037  p = 0.270  p = 0.002  p = 0.0001 
trade                 1.507*      0.223      1.242      -0.720   
                      (0.855)    (0.452)    (0.851)     (0.585)  
                     t = 1.762  t = 0.493  t = 1.460  t = -1.230 
                     p = 0.079  p = 0.623  p = 0.146   p = 0.219 
Constant                                                 0.288   
                                                        (1.570)  
                                                       t = 0.183 
                                                       p = 0.855 
-----------------------------------------------------------------
Observations            445        445        445         445    
R2                     0.330      0.187      0.262       0.149   
Adjusted R2            0.172      0.159      0.071       0.131   
Akaike Inf. Crit.    1,944.200  2,091.900  1,917.300   1,994.200 
Bayesian Inf. Crit.  2,300.700  2,161.600  2,298.500   2,035.200 
=================================================================
Note:                                 *p<0.1; **p<0.05; ***p<0.01

Basicamente, pelos resultados acima estamos entre os efeitos fixos individuais e os two-ways. Mas faremos os testes mais robustos.

8 Testes para escolha dos modelos

8.1 LM test for panel effects versus OLS

O plmtest realiza testes de multiplicador de Lagrange para efeitos individuais ou de tempo, com base nos resultados do modelo empilhado (pooling).

plmtest(pooling, effect = "individual", type = "honda")

    Lagrange Multiplier Test - (Honda) for unbalanced panels

data:  fm1
normal = 5.6243, p-value = 9.312e-09
alternative hypothesis: significant effects
plmtest(pooling, effect = "time", type = "honda")

    Lagrange Multiplier Test - time effects (Honda) for unbalanced panels

data:  fm1
normal = 7.9717, p-value = 7.827e-16
alternative hypothesis: significant effects
plmtest(pooling, effect = "twoways", type = "honda")

    Lagrange Multiplier Test - two-ways effects (Honda) for unbalanced
    panels

data:  fm1
normal = 9.6138, p-value < 2.2e-16
alternative hypothesis: significant effects

Em todos os casos os efeitos são significativos.

8.2 F test for fixed effects versus OLS

O pFtest calcula testes tipo F dos efeitos baseados na comparação entre o modelo pooling com o modelo de efeitos fixos (within). Os argumentos da função são dois objetos tipo plm (pooling e within). Os efeitos serão obtidos do objeto do modelo ‘within’. Os efeitos foram significativos em todos os casos, preferindo o modelo com efeitos.

pFtest(fixed.one, pooling)

    F test for individual effects

data:  fm1
F = 5.3944, df1 = 76, df2 = 359, p-value < 2.2e-16
alternative hypothesis: significant effects
pFtest(fixed.onet, pooling)

    F test for time effects

data:  fm1
F = 8.7295, df1 = 6, df2 = 429, p-value = 5.535e-09
alternative hypothesis: significant effects
pFtest(fixed.two, pooling)

    F test for twoways effects

data:  fm1
F = 5.7574, df1 = 82, df2 = 353, p-value < 2.2e-16
alternative hypothesis: significant effects

8.3 Hausman test for fixed versus random effects model

O teste phtest de Hausman baseia-se na comparação das estimativas de dois modelos de dados em painel conforme Hausman (1978). Uma aplicação tradicional é feita entre os modelos de efeitos fixos e aleatórios. Em todos os casos, rejeita-se H0 e escolhe-se o modelo de efeitos fixos.

phtest(fixed.one, random)

    Hausman Test

data:  fm1
chisq = 149.04, df = 9, p-value < 2.2e-16
alternative hypothesis: one model is inconsistent
phtest(fixed.onet, random)

    Hausman Test

data:  fm1
chisq = 151.34, df = 9, p-value < 2.2e-16
alternative hypothesis: one model is inconsistent
phtest(fixed.two, random)

    Hausman Test

data:  fm1
chisq = 202.46, df = 9, p-value < 2.2e-16
alternative hypothesis: one model is inconsistent

8.4 Teste de ausência de correlação serial

O teste de efeitos não observados ao estilo de Wooldridge(2002, seção 10.4.4), testa a hipótese nula de que \(σ^2_{μ}= 0\), e não existem efeitos não observados nos resíduos. O teste baseia-se nos resíduos do modelo empilhado estimado por Mínimos Quadrados (pooling).
Não rejeitar H0, favorece o uso do modelo pooled OLS. A rejeição de H0 pode se dar por presença de correlação serial de diferentes formas e não deve ser interpretada de modo a se optar pelo modelo de efeitos aleatórios (Wooldridge, 2002). Sabendo que o modelo preferível é de efeitos fixos, o resultado indica possibilidade de correlação serial e necessidade de realizar estimativas robustas.

pwtest(growth ~ (lgdp) + privo + lly + btot + sec + gov + lbmp + lpi + trade, data = panel)

    Wooldridge's test for unobserved individual effects

data:  formula
z = 2.8218, p-value = 0.004775
alternative hypothesis: unobserved effect

Fizemos também o teste de Baltagi e Li e a hipótese alternativa de erros AR(1) é preferida.

pbsytest(growth ~ (lgdp) + privo + lly + btot + sec + gov + lbmp + lpi + trade, data = panel,
    test = "j")

    Baltagi and Li AR-RE joint test - unbalanced panel

data:  formula
chisq = 55.066, df = 2, p-value = 1.103e-12
alternative hypothesis: AR(1) errors or random effects

9 Modelo final

Realizando a estimativa robusta de Arellano para o modelo de efeitos fixos individuais. Sabendo que as variáveis são:

country  country name
period period
growth growth rate * 100
privo log private credit / GDP
lly log liquid liabilities / GDP
btot log bank credit/total credit
lgdp log initial gdp per capita (PPP)
sec mean years of secondary schooling
gov log government spending / GDP
lbmp log(1 black market premium)
lpi log(1 + inflation rate)
trade log (imports + exports)/GDP

Foram significativas para explicar o crescimento (growth): lgdp, btot, lpi.

# ver plm::vcovHC para detalhes do método e tipo arellano permite uma estrutura
# mais completa e geral para var-cov com heterocedasticidade e correlação
# serial (cross-sectional)
fe_summary <- summary(fixed.one, vcov = function(x) vcovHC(x, method = "arellano",
    type = c("HC1")))
(fe_summary)
Oneway (individual) effect Within Model

Note: Coefficient variance-covariance matrix supplied: function(x) vcovHC(x, method = "arellano", type = c("HC1"))

Call:
plm(formula = fm1, data = panel, effect = c("individual"), model = "within", 
    index = country)

Unbalanced Panel: n = 77, T = 2-7, N = 445

Residuals:
      Min.    1st Qu.     Median    3rd Qu.       Max. 
-6.7103192 -0.9755816 -0.0087027  1.0327749  6.5644821 

Coefficients:
       Estimate Std. Error t-value  Pr(>|t|)    
lgdp   -5.25134    0.76498 -6.8646 2.941e-11 ***
privo   0.87795    1.00012  0.8778  0.380615    
lly    -0.20951    1.44497 -0.1450  0.884796    
btot    4.96284    1.62582  3.0525  0.002438 ** 
sec     0.23991    0.35232  0.6810  0.496339    
gov   -10.74171    6.56983 -1.6350  0.102925    
lbmp   -0.40720    0.60867 -0.6690  0.503929    
lpi    -1.99878    0.86673 -2.3061  0.021673 *  
trade   1.50681    1.31868  1.1427  0.253940    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Total Sum of Squares:    2078.4
Residual Sum of Squares: 1391.5
R-Squared:      0.33049
Adj. R-Squared: 0.17197
F-statistic: 16.8129 on 9 and 76 DF, p-value: 7.4254e-15

9.1 Efeitos fixos (one-way individual)

efeitos <- fixef(fixed.one)
options(max.print = 1e+06)
summary(efeitos)
                          Estimate Std. Error t-value  Pr(>|t|)    
Algeria                    37.5174     4.5742  8.2020 4.259e-15 ***
Argentina                  42.5987     5.0412  8.4501 7.360e-16 ***
Australia                  46.6520     5.2281  8.9233 < 2.2e-16 ***
Austria                    45.8197     5.1041  8.9771 < 2.2e-16 ***
Belgium                    45.8740     5.3414  8.5885 2.725e-16 ***
Bolivia                    34.8437     3.8925  8.9515 < 2.2e-16 ***
Brazil                     40.4997     4.4391  9.1234 < 2.2e-16 ***
Cameroon                   31.3264     4.1012  7.6383 2.019e-13 ***
Canada                     47.6796     5.1997  9.1698 < 2.2e-16 ***
Central African Republic   27.0486     3.6942  7.3220 1.619e-12 ***
Chile                      40.0318     4.4480  9.0000 < 2.2e-16 ***
Colombia                   35.5554     4.1777  8.5107 4.769e-16 ***
Congo                      30.7707     4.3642  7.0507 9.186e-12 ***
Costa Rica                 37.5473     4.4346  8.4670 6.524e-16 ***
Cyprus                     44.5569     4.6463  9.5898 < 2.2e-16 ***
Denmark                    48.5743     5.5123  8.8119 < 2.2e-16 ***
Dominican Republic         34.5941     4.1360  8.3641 1.358e-15 ***
Ecuador                    36.4029     4.1641  8.7421 < 2.2e-16 ***
Egypt, Arab Rep.           36.1898     4.0236  8.9944 < 2.2e-16 ***
El Salvador                33.2847     4.2002  7.9246 2.911e-14 ***
Finland                    47.1713     5.4928  8.5879 2.736e-16 ***
France                     47.1377     5.3689  8.7798 < 2.2e-16 ***
Gambia, The                26.4062     3.7554  7.0316 1.037e-11 ***
Germany                    47.3590     5.5186  8.5816 2.863e-16 ***
Ghana                      32.0107     3.9139  8.1786 5.017e-15 ***
Greece                     44.2766     4.8940  9.0472 < 2.2e-16 ***
Guatemala                  33.7844     4.2605  7.9297 2.810e-14 ***
Guyana                     31.0705     4.3204  7.1916 3.751e-12 ***
Haiti                      29.3291     3.5840  8.1833 4.857e-15 ***
Honduras                   31.7788     4.0122  7.9205 2.993e-14 ***
India                      29.0349     3.4245  8.4786 6.006e-16 ***
Indonesia                  33.0873     3.8280  8.6436 < 2.2e-16 ***
Iran, Islamic Republic of  39.9742     4.9802  8.0267 1.442e-14 ***
Ireland                    43.9979     4.9099  8.9611 < 2.2e-16 ***
Israel                     47.0619     5.1428  9.1510 < 2.2e-16 ***
Italy                      46.1557     5.1132  9.0268 < 2.2e-16 ***
Jamaica                    35.4070     4.3610  8.1190 7.607e-15 ***
Japan                      46.6569     4.8531  9.6139 < 2.2e-16 ***
Kenya                      29.3534     3.6381  8.0683 1.082e-14 ***
Korea, Republic of         41.3932     4.1636  9.9418 < 2.2e-16 ***
Lesotho                    29.2532     3.7256  7.8520 4.778e-14 ***
Malawi                     25.6069     3.4560  7.4095 9.161e-13 ***
Malaysia                   37.1530     4.2387  8.7651 < 2.2e-16 ***
Mauritius                  38.4052     4.3773  8.7738 < 2.2e-16 ***
Mexico                     39.3663     4.6345  8.4941 5.373e-16 ***
Nepal                      27.0537     3.3491  8.0779 1.012e-14 ***
Netherlands                45.2609     5.1424  8.8016 < 2.2e-16 ***
New Zealand                44.7917     5.1067  8.7712 < 2.2e-16 ***
Nicaragua                  29.1317     4.2109  6.9181 2.110e-11 ***
Niger                      25.1349     3.7418  6.7174 7.266e-11 ***
Norway                     48.5633     5.4336  8.9375 < 2.2e-16 ***
Pakistan                   29.7006     3.4238  8.6746 < 2.2e-16 ***
Panama                     37.9620     4.3886  8.6501 < 2.2e-16 ***
Papua New Guinea           32.7467     4.2787  7.6535 1.824e-13 ***
Paraguay                   35.3913     4.2017  8.4232 8.921e-16 ***
Peru                       35.7257     4.3510  8.2108 4.004e-15 ***
Philippines                30.9720     3.8085  8.1324 6.927e-15 ***
Portugal                   40.9539     4.6093  8.8851 < 2.2e-16 ***
Rwanda                     25.2468     3.5020  7.2093 3.350e-12 ***
Senegal                    29.3298     3.9487  7.4278 8.126e-13 ***
Sierra Leone               28.6815     3.6134  7.9376 2.663e-14 ***
South Africa               36.5360     4.5338  8.0585 1.157e-14 ***
Spain                      43.4592     4.8494  8.9618 < 2.2e-16 ***
Sri Lanka                  30.9551     3.4474  8.9794 < 2.2e-16 ***
Sudan                      29.8439     3.8568  7.7380 1.034e-13 ***
Sweden                     48.3760     5.2877  9.1487 < 2.2e-16 ***
Switzerland                46.1069     5.1450  8.9615 < 2.2e-16 ***
Syria                      41.1546     4.5413  9.0623 < 2.2e-16 ***
Thailand                   35.8663     3.9381  9.1075 < 2.2e-16 ***
Togo                       27.0486     3.7096  7.2915 1.973e-12 ***
Trinidad and Tobago        39.5280     4.8197  8.2014 4.278e-15 ***
United Kingdom             46.4033     5.2647  8.8140 < 2.2e-16 ***
United States              47.7378     5.1998  9.1808 < 2.2e-16 ***
Uruguay                    39.7411     4.4818  8.8672 < 2.2e-16 ***
Venezuela                  37.9647     4.8409  7.8426 5.095e-14 ***
Zaire                      26.2708     3.4432  7.6297 2.139e-13 ***
Zimbabwe                   32.2274     4.1501  7.7654 8.596e-14 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
LS0tDQp0aXRsZTogJ0Vjb25vbWV0cmlhIGNvbSBQYW5lbCBEYXRhOiBFeGVtcGxvIHV0aWxpemFuZG8gcGRlcjo6RmluYW5jZUdyb3d0aCBkYXRhc2V0Jw0KYXV0aG9yOiAnQWRyaWFubyBNYXJjb3MgUm9kcmlndWVzIEZpZ3VlaXJlZG8sICplLW1haWw6IGFkcmlhbm8uZmlndWVpcmVkb0B1Zm1zLmJyKicNCmRhdGU6ICJgciBmb3JtYXQoU3lzLkRhdGUoKSwgJyVkICVCICVZJylgIg0Kb3V0cHV0Og0KICBodG1sX2RvY3VtZW50Og0KICAgIGRmX3ByaW50OiBwYWdlZA0KICAgIGZpZ19jYXB0aW9uOiB5ZXMNCiAgICBudW1iZXJfc2VjdGlvbnM6IHllcw0KICAgIHRoZW1lOiBkZWZhdWx0DQogICAgdG9jOiB5ZXMNCiAgICB0b2NfZmxvYXQ6IG5vDQogICAgY29kZV9kb3dubG9hZDogdHJ1ZQ0KICBwZGZfZG9jdW1lbnQ6DQogICAgdG9jOiB5ZXMNCiAgd29yZF9kb2N1bWVudDoNCiAgICB0b2M6IHllcw0KbGlua2NvbG9yOiBibHVlDQphYnN0cmFjdDogVGhpcyBpcyBhbiB1bmRlcmdyYWQgc3R1ZGVudCBsZXZlbCBpbnN0cnVjdGlvbiBmb3IgY2xhc3MgdXNlLiBFeGFtcGxlIHVzaW5nDQogIHBkZXI6OkZpbmFuY2VHcm93dGggZGF0YXNldC4NCi0tLQ0KDQoNCmBgYHtyIGtuaXRyX2luaXQsIGVjaG89RkFMU0UsIGNhY2hlPUZBTFNFfQ0KbGlicmFyeShrbml0cikNCmxpYnJhcnkocm1hcmtkb3duKQ0KbGlicmFyeShybWRmb3JtYXRzKQ0KDQojIyBHbG9iYWwgb3B0aW9ucw0Kb3B0aW9ucyhtYXgucHJpbnQ9IjEwMCIpDQpvcHRzX2NodW5rJHNldChlY2hvPVRSVUUsDQoJICAgICAgICAgICAgIGNhY2hlPVRSVUUsDQogICAgICAgICAgICAgICBwcm9tcHQ9RkFMU0UsDQogICAgICAgICAgICAgICB0aWR5PVRSVUUsDQogICAgICAgICAgICAgICBjb21tZW50PU5BLA0KICAgICAgICAgICAgICAgbWVzc2FnZT1GQUxTRSwNCiAgICAgICAgICAgICAgIHdhcm5pbmc9RkFMU0UpDQpvcHRzX2tuaXQkc2V0KHdpZHRoPTEwMCkNCmBgYA0KDQoNCkxpY2Vuw6dhIHstI0xpY2Vuw6dhfQ0KPT09PT09PT09PT09PT09PT09PQ0KDQpUaGlzIHdvcmsgaXMgbGljZW5zZWQgdW5kZXIgdGhlIENyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24tU2hhcmVBbGlrZSA0LjAgSW50ZXJuYXRpb25hbCBMaWNlbnNlLiBUbyB2aWV3IGEgY29weSBvZiB0aGlzIGxpY2Vuc2UsIHZpc2l0IDxodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1zYS80LjAvPiBvciBzZW5kIGEgbGV0dGVyIHRvIENyZWF0aXZlIENvbW1vbnMsIFBPIEJveCAxODY2LCBNb3VudGFpbiBWaWV3LCBDQSA5NDA0MiwgVVNBLg0KDQohW0xpY2Vuc2U6IENDIEJZLVNBIDQuMF0oaHR0cHM6Ly9taXJyb3JzLmNyZWF0aXZlY29tbW9ucy5vcmcvcHJlc3NraXQvYnV0dG9ucy84OHgzMS9wbmcvYnktc2EucG5nKXsgd2lkdGg9MjUlIH0NCg0KQ2l0YcOnw6NvIHstI0NpdGHDp8Ojb30NCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQoNClN1Z2VzdMOjbyBkZSBjaXRhw6fDo286DQpGSUdVRUlSRURPLCBBZHJpYW5vIE1hcmNvcyBSb2RyaWd1ZXMuIEVjb25vbWV0cmlhIGNvbSBQYW5lbCBEYXRhOiBFeGVtcGxvIHV0aWxpemFuZG8gcGRlcjo6RmluYW5jZUdyb3d0aCBkYXRhc2V0LiBDYW1wbyBHcmFuZGUtTVMsQnJhc2lsOiBSU3R1ZGlvL1JwdWJzLCAyMDE5LiBEaXNwb27DrXZlbCBlbSA8aHR0cDovL3JwdWJzLmNvbS9hbXJvZmkvRWNvbm9tZXRyaWNzX3BhbmVsX0ZpbmFuY2VHcm93dGg+LiANCg0KSW50cm9kdcOnw6NvDQo9PT09PT09PT09PT09PT09PT09PT09DQoNCk8gZXN0dWRvIGVudm9sdmUgdW1hIHJlbGHDp8OjbyBlbnRyZSBhIHF1YWxpZGFkZSBkbyBzaXN0ZW1hIGZpbmFuY2Vpcm8gZSBvIGNyZXNjaW1lbnRvIGVjb27DtG1pY28uIFBhcmEgZXN0ZSBmaW0sIGVzdGltYXIgZSBhbmFsaXNhciB1bSBtb2RlbG8gZW0gcXVlIG8gY3Jlc2NpbWVudG8gZWNvbsO0bWljbyDDqSB1bWEgZnVuw6fDo28gZGUgdW0gbsO6bWVybyBkZSB2YXJpw6F2ZWlzIGRlIGNvbnRyb2xlIGUgZGUgY2FyYWN0ZXLDrXN0aWNhcyBleMOzZ2VuYXMgZG8gc2lzdGVtYSBmaW5hbmNlaXJvLCBlbSB1bSBwYWluZWwgZGUgNzQgcGHDrXNlcyBjb20gNyBvYnNlcnZhw6fDtWVzIGRlIHBlcsOtb2RvcyBkZSA1IGFub3MgZGUgMTk2MCBhIDE5OTUuIE9zIGRhZG9zIGVzdMOjbyBkaXNwb27DrXZlaXMgbm8gcGFjb3RlIENSQU4g4oCYcGRlcuKAmSBkZSBDcm9pc3NhbnQgZSBNaWxsbyBbZGF0YShGaW5hbmNlR3Jvd3RoKV0uIFJlZmVyw6puY2lhOiBMRVZJTkUsIFIuOyBMT0FZWkEsIE4uOyBCRUNLLCBULiAoMjAwMCkg4oCcRmluYW5jaWFsIGludGVybWVkaWF0aW9uIGFuZCBncm93dGg6IGNhdXNhbGl0eSBhbmQgY2F1c2Vz4oCdLCBKb3VybmFsIG9mIE1vbmV0YXJ5IEVjb25vbWljcywgNDYsIDMxLTc3Lg0KDQpQb3J0YW50bywgb3MgcGFzc29zIHBhcmEgZGVzZW52b2x2aW1lbnRvIHPDo286ICAgIA0KDQogICAgMS4gICAgYWNlc3NhciBwYWNvdGUgICAgDQogICAgMi4gICAgYmFpeGFyIGRhZG9zICAgIA0KICAgIDMuICAgIHByb2Nlc3NhciB2YXJpw6F2ZWlzICAgIA0KICAgIDQuICAgIHJvZGFyIG1vZGVsbyAgICANCiAgICA1LiAgICBpbnRlcnByZXRhciBzYcOtZGEuICAgIA0KDQpQdXhhciBkYWRvcw0KPT09PT09PT09PT09PT09DQoNCk9zIGRhZG9zLCBjb25mb3JtZSBlbnVuY2lhZG8sIGVzdMOjbyBlbSBgcGRlcjo6RmluYW5jZUdyb3d0aGAuIFBvcnRhbnRvLCBvIHBhY290ZSBgcGRlcmAgZGV2ZSBlc3RhciBwcmV2aWFtZW50ZSBpbnN0YWxhZG8uIA0KDQpgYGB7cn0NCmxpYnJhcnkocGRlcikNCmRhdGEoRmluYW5jZUdyb3d0aCkNCiMgQSBkYXRhZnJhbWUgY29udGFpbmluZyA6DQojIGNvdW50cnkgLSBjb3VudHJ5IG5hbWUNCiMgcGVyaW9kIC0gcGVyaW9kDQojIGdyb3d0aCAtIGdyb3d0aCByYXRlICogMTAwDQojIHByaXZvIC0gbG9nIHByaXZhdGUgY3JlZGl0IC8gR0RQDQojIGxseSAtIGxvZyBsaXF1aWQgbGlhYmlsaXRpZXMgLyBHRFANCiMgYnRvdCAtIGxvZyBiYW5rIGNyZWRpdC90b3RhbCBjcmVkaXQNCiMgbGdkcCAtIGxvZyBpbml0aWFsIGdkcCBwZXIgY2FwaXRhIChQUFApDQojIHNlYyAtIG1lYW4geWVhcnMgb2Ygc2Vjb25kYXJ5IHNjaG9vbGluZw0KIyBnb3YgLSBsb2cgZ292ZXJubWVudCBzcGVuZGluZyAvIEdEUA0KIyBsYm1wIC0gbG9nKDEgYmxhY2sgbWFya2V0IHByZW1pdW0pDQojIGxwaSAtIGxvZygxICsgaW5mbGF0aW9uIHJhdGUpDQojIHRyYWRlIC0gbG9nIChpbXBvcnRzICsgZXhwb3J0cykvR0RQDQpgYGANCg0KT3JnYW5pemFuZG8gbyBkYXRhc2V0DQo9PT09PT09PT09PT09PQ0KDQojIEVzdGF0w61zdGljYXMgZGVzY3JpdGl2YXMgb3JpZ2luYWlzDQoNCmBgYHtyfQ0KIyBEZXNjcmlwdGl2ZSBzdGF0aXN0aWNzDQpsaWJyYXJ5KGtuaXRyKQ0Ka2FibGUoc3VtbWFyeShGaW5hbmNlR3Jvd3RoKSxjYXB0aW9uPSJFc3RhdMOtc3RpY2FzIGRlc2NyaXRpdmFzIikNCmBgYA0KDQpSZXRpcmFuZG8gTkFzLCBvIHBhaW5lbCBmaWNhcsOhIGRlc2JhbGFuY2VhZG8gY29uZm9ybWUgc2UgdmVyw6EgbmEgZnVuw6fDo28gYHBkaW1gOg0KDQpgYGB7cn0NCmxpYnJhcnkocGxtKQ0KZGF0YTwtbmEub21pdChGaW5hbmNlR3Jvd3RoKQ0KcGFuZWwgPC0gcGRhdGEuZnJhbWUoZGF0YSwgaW5kZXggPSBjKCJjb3VudHJ5IiwgInBlcmlvZCIpKQ0Kc3VtbWFyeShwYW5lbCkNCnBkaW0ocGFuZWwpICAjIFVuYmFsYW5jZWQgUGFuZWw6IG4gPSA3NywgVCA9IDItNywgTiA9IDQ0NQ0KYGBgDQoNCsOJIHBvc3PDrXZlbCB2ZXIgYSB2YXJpYcOnw6NvIGRlIFkgKGBncm93dGhgKSBubyB0ZW1wbyBlIGVudHJlIGNyb3NzLXNlY3Rpb25zOg0KDQpgYGB7cn0NCmNvcGxvdChncm93dGggfiBjb3VudHJ5fHBlcmlvZCwgdHlwZT0iYiIsIGRhdGE9cGFuZWwpICMgUG9pbnRzIGFuZCBsaW5lcw0KIyBCYXJzIGF0IHRvcCBpbmRpY2F0ZXMgY29ycmVzcG9uZGluZyBncmFwaCAoaS5lLiBjb3VudHJpZXMpDQojIGZyb20gbGVmdCB0byByaWdodCBzdGFydGluZyBvbiB0aGUgYm90dG9tIHJvdyAoTXVlbmNoZW4vSGlsYmU6MzU1KQ0KYGBgDQoNCk8gZ3LDoWZpY28gZGUgZGlzcGVyc8OjbyBwZXJtaXRlIHZpc3VhbGl6YXIgdW0gcG91Y28gbWFpcyBzb2JyZSBvIHBhaW5lbDoNCg0KYGBge3IsIHdhcm5pbmc9RkFMU0V9DQpsaWJyYXJ5KGdwbG90cykNCnBsb3RtZWFucyhncm93dGggfiBjb3VudHJ5LCBtYWluPSJIZXRlcm9nZWluZWl0eSBhY3Jvc3MgdW5pdHMiLCBkYXRhPXBhbmVsKQ0KcGxvdG1lYW5zKGdyb3d0aCB+IHBlcmlvZCwgbWFpbj0iSGV0ZXJvZ2VpbmVpdHkgYWNyb3NzIHBlcmlvZHMiLCBkYXRhPXBhbmVsKQ0KIyBwbG90bWVhbnNkcmF3IGEgOTUlIGNvbmZpZGVuY2UgaW50ZXJ2YWwgYXJvdW5kIHRoZSBtZWFucw0KYGBgDQoNCk1vZGVsbw0KPT09PT09PT09PT09PT09PT09PQ0KDQpBIHBhcnRpciBkZXN0YSBvcmdhbml6YcOnw6NvIGRhIGJhc2UgZGUgZGFkb3MgZW0gcGFpbmVsLCBwcm9jZWRlbS1zZSBhcyBlc3RpbWF0aXZhcy4gDQoNCiMjIFBvb2xlZCBPTFMgKE1RTyBub3MgRGFkb3MgRW1waWxoYWRvcykNCg0KTyBwcmltZWlybyBlc3RpbWFkb3Igw6kgZG8gbW9kZWxvICJlbXBpbGhhZG8iLCBvdSAiKlBvb2xlZCBlc3RpbWF0b3IqIiwgb2J0aWRvIGNvbSBNw61uaW1vcyBRdWFkcmFkb3MgT3JkaW7DoXJpb3MgKE1RTykgbmEgYmFzZSBkZSBkYWRvcyBzZW0gcHJlb2N1cGFyIGNvbSBhIGluZGljYcOnw6NvIGVudHJlIGNyb3NzLXNlY3Rpb24gZSB0ZW1wb3MuIEVzdGUgbcOpdG9kbyBuw6NvIGNvbnNpZGVyYSBhIGhldGVyb2dlbmVpZGFkZSBlbnRyZSBncnVwb3Mgb3UgdGVtcG8uDQoNCmBgYHtyfQ0KZm0xIDwtIGdyb3d0aCB+IChsZ2RwKSArIHByaXZvK2xseStidG90K3NlYytnb3YrbGJtcCtscGkrdHJhZGUNCnBvb2xpbmcgPC0gcGxtKGZvcm11bGEgPSBmbTEsDQogICAgICAgICAgICAgZGF0YSA9IHBhbmVsLCBpbmRleCA9IGMoImNvdW50cnkiLCAicGVyaW9kIiksDQogICAgICAgICAgICBtb2RlbCA9ICJwb29saW5nIikNCnNvdXJjZSgiYWljYmljX3BsbS5SIikNCnBvb2xpbmckQUlDIDwtIGFpY2JpY19wbG0ocG9vbGluZywiQUlDIikNCnBvb2xpbmckQklDIDwtIGFpY2JpY19wbG0ocG9vbGluZywiQklDIikNCnN1cHByZXNzTWVzc2FnZXMobGlicmFyeShzdGFyZ2F6ZXIpKQ0Kc3RhcmdhemVyKHBvb2xpbmcsIA0KICAgICAgICAgICAgIHRpdGxlPSJUw610dWxvOiBSZXN1bHRhZG8gZGEgUmVncmVzc8OjbyBQb29sZWQgT0xTIiwNCiAgICAgICAgICAgICBhbGlnbj1UUlVFLA0KICAgICAgICAgICAgIHR5cGUgPSAidGV4dCIsIHN0eWxlID0gImFsbCIsDQogICAgICAgICAgICAga2VlcC5zdGF0PWMoIkFJQyIsIkJJQyIsInJzcSIsICJhZGoucnNxIiwibiIpDQopDQpgYGANCg0KIyMgRml4ZWQgZWZmZWN0cyBvciB3aXRoaW4gZXN0aW1hdG9yDQoNCg0KIyMjIE9uZXdheSAoaW5kaXZpZHVhbCkgZWZmZWN0IFdpdGhpbiBNb2RlbA0KDQpgYGB7ciwgZXZhbD1UUlVFfQ0KZml4ZWQub25lIDwtIHBsbShmb3JtdWxhID0gZm0xLCANCiAgICAgICAgICAgICBkYXRhID0gcGFuZWwsIGluZGV4ID0gY291bnRyeSwNCiAgICAgICAgICAgICBlZmZlY3QgPSBjKCJpbmRpdmlkdWFsIiksDQogICAgICAgICAgICAgbW9kZWw9ICJ3aXRoaW4iKQ0Kc3VtbWFyeShmaXhlZC5vbmUpDQpzb3VyY2UoImFpY2JpY19wbG0uUiIpDQooZml4ZWQub25lJEFJQyA8LSBhaWNiaWNfcGxtKGZpeGVkLm9uZSwiQUlDIikpDQooZml4ZWQub25lJEJJQyA8LSBhaWNiaWNfcGxtKGZpeGVkLm9uZSwiQklDIikpDQpgYGANCg0KIyMgT25ld2F5ICh0aW1lKSBlZmZlY3QgV2l0aGluIE1vZGVsDQoNCkFnb3JhIGFsdGVyYW5kbyBwYXJhIGNvbnRlciBlZmVpdG9zIGZpeG9zIG5vIHRlbXBvLiANCg0KYGBge3IsIGV2YWw9VFJVRX0NCmZpeGVkLm9uZXQgPC0gcGxtKGZvcm11bGEgPSBmbTEsIA0KICAgICAgICAgICAgIGRhdGEgPSBwYW5lbCwgDQogICAgICAgICAgICAgaW5kZXggPSBjKHBlcmlvZCksDQogICAgICAgICAgICAgZWZmZWN0ID0gYygidGltZSIpLA0KICAgICAgICAgICAgIG1vZGVsPSAid2l0aGluIikNCnN1bW1hcnkoZml4ZWQub25ldCkNCihmaXhlZC5vbmV0JEFJQyA8LSBhaWNiaWNfcGxtKGZpeGVkLm9uZXQsIkFJQyIpKQ0KKGZpeGVkLm9uZXQkQklDIDwtIGFpY2JpY19wbG0oZml4ZWQub25ldCwiQklDIikpDQpgYGANCg0KIyMgVHdvd2F5cyAoaW5kaXZpZHVhbCBhbmQgdGltZSkgZWZmZWN0cyBXaXRoaW4gTW9kZWwNCg0KYGBge3IsIGV2YWw9VFJVRX0NCmZpeGVkLnR3byA8LSBwbG0oZm9ybXVsYSA9IGZtMSwgDQogICAgICAgICAgICAgZGF0YSA9IHBhbmVsLCANCiAgICAgICAgICAgICBpbmRleCA9IGMoY291bnRyeSxwZXJpb2QpLA0KICAgICAgICAgICAgIGVmZmVjdCA9IGMoInR3b3dheXMiKSwNCiAgICAgICAgICAgICBtb2RlbD0gIndpdGhpbiIpDQpzdW1tYXJ5KGZpeGVkLnR3bykNCihmaXhlZC50d28kQUlDIDwtIGFpY2JpY19wbG0oZml4ZWQudHdvLCJBSUMiKSkNCihmaXhlZC50d28kQklDIDwtIGFpY2JpY19wbG0oZml4ZWQudHdvLCJCSUMiKSkNCmBgYA0KDQojIFJhbmRvbSBlZmZlY3RzIGVzdGltYXRvcg0KDQojIyBPbmV3YXkgKGluZGl2aWR1YWwpIGVmZmVjdCBSYW5kb20gRWZmZWN0IE1vZGVsIChTd2FteS1Bcm9yYSdzIHRyYW5zZm9ybWF0aW9uIC0gZGVmYXVsdCkNCmBgYHtyfQ0KIyBSYW5kb20gZWZmZWN0cyBlc3RpbWF0b3INCnJhbmRvbSA8LSBwbG0oZm9ybXVsYSA9IGZtMSwgDQogICAgICAgICAgICAgZGF0YSA9IHBhbmVsLA0KICAgICAgICAgICAgIG1vZGVsPSAicmFuZG9tIikNCnN1bW1hcnkocmFuZG9tKQ0KKHJhbmRvbSRBSUMgPC0gYWljYmljX3BsbShyYW5kb20sIkFJQyIpKQ0KKHJhbmRvbSRCSUMgPC0gYWljYmljX3BsbShyYW5kb20sIkJJQyIpKQ0KYGBgDQoNCg0KDQpSZXN1bW8NCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQoNCmBgYHtyfQ0Kc3VwcHJlc3NNZXNzYWdlcyhsaWJyYXJ5KHN0YXJnYXplcikpDQpzdGFyZ2F6ZXIoZml4ZWQub25lLGZpeGVkLm9uZXQsZml4ZWQudHdvLHJhbmRvbSwgDQogICAgICAgICAgdGl0bGU9IlVtYSBjb21wYXJhw6fDo28gZW50cmUgRml4ZWQgRWZmZWN0cyBlIFJhbmRvbSBFZmZlY3RzIG1vZGVscyIsDQogICAgICAgICAgYWxpZ249VFJVRSwNCiAgICAgICAgICB0eXBlID0gInRleHQiLCBzdHlsZSA9ICJhbGwiLA0KICAgICAgICAgIGNvbHVtbi5sYWJlbHMgPSBjKCJFRi1pbmQiLCJFRi10aW1lIiwiRUZ0d28iLCJFQS1pbmQiKSwNCiAgICAgICAgICBrZWVwLnN0YXQ9YygiQUlDIiwiQklDIiwicnNxIiwgImFkai5yc3EiLCJuIikNCikNCmBgYA0KDQpCYXNpY2FtZW50ZSwgcGVsb3MgcmVzdWx0YWRvcyBhY2ltYSBlc3RhbW9zIGVudHJlIG9zIGVmZWl0b3MgZml4b3MgaW5kaXZpZHVhaXMgZSBvcyB0d28td2F5cy4gTWFzIGZhcmVtb3Mgb3MgdGVzdGVzIG1haXMgcm9idXN0b3MuDQoNClRlc3RlcyBwYXJhIGVzY29saGEgZG9zIG1vZGVsb3MgDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KDQojIyBMTSB0ZXN0IGZvciBwYW5lbCBlZmZlY3RzIHZlcnN1cyBPTFMNCg0KTyBgcGxtdGVzdGAgcmVhbGl6YSB0ZXN0ZXMgZGUgbXVsdGlwbGljYWRvciBkZSBMYWdyYW5nZSBwYXJhIGVmZWl0b3MgaW5kaXZpZHVhaXMgb3UgZGUgdGVtcG8sIGNvbSBiYXNlIG5vcyByZXN1bHRhZG9zIGRvIG1vZGVsbyBlbXBpbGhhZG8gKHBvb2xpbmcpLg0KDQpgYGB7ciwgZXZhbD1UUlVFfQ0KcGxtdGVzdChwb29saW5nLGVmZmVjdD0iaW5kaXZpZHVhbCIsIHR5cGU9ImhvbmRhIikNCnBsbXRlc3QocG9vbGluZyxlZmZlY3Q9InRpbWUiLCB0eXBlPSJob25kYSIpDQpwbG10ZXN0KHBvb2xpbmcsZWZmZWN0PSJ0d293YXlzIiwgdHlwZT0iaG9uZGEiKQ0KDQpgYGANCg0KRW0gdG9kb3Mgb3MgY2Fzb3Mgb3MgZWZlaXRvcyBzw6NvIHNpZ25pZmljYXRpdm9zLg0KDQojIyBGIHRlc3QgZm9yIGZpeGVkIGVmZmVjdHMgdmVyc3VzIE9MUw0KDQpPIGBwRnRlc3RgIGNhbGN1bGEgdGVzdGVzIHRpcG8gRiBkb3MgZWZlaXRvcyBiYXNlYWRvcyBuYSBjb21wYXJhw6fDo28gZW50cmUgbyBtb2RlbG8gcG9vbGluZyBjb20gbyBtb2RlbG8gZGUgZWZlaXRvcyBmaXhvcyAod2l0aGluKS4gT3MgYXJndW1lbnRvcyBkYSBmdW7Dp8OjbyBzw6NvIGRvaXMgb2JqZXRvcyB0aXBvIGBwbG1gIChwb29saW5nIGUgd2l0aGluKS4gT3MgZWZlaXRvcyBzZXLDo28gb2J0aWRvcyBkbyBvYmpldG8gZG8gbW9kZWxvICd3aXRoaW4nLg0KT3MgZWZlaXRvcyBmb3JhbSBzaWduaWZpY2F0aXZvcyBlbSB0b2RvcyBvcyBjYXNvcywgcHJlZmVyaW5kbyBvIG1vZGVsbyBjb20gZWZlaXRvcy4NCg0KYGBge3IsIGV2YWw9VFJVRX0NCnBGdGVzdChmaXhlZC5vbmUsIHBvb2xpbmcpDQpwRnRlc3QoZml4ZWQub25ldCwgcG9vbGluZykNCnBGdGVzdChmaXhlZC50d28sIHBvb2xpbmcpDQpgYGANCg0KIyMgSGF1c21hbiB0ZXN0IGZvciBmaXhlZCB2ZXJzdXMgcmFuZG9tIGVmZmVjdHMgbW9kZWwNCg0KTyB0ZXN0ZSBgcGh0ZXN0YCBkZSBIYXVzbWFuIGJhc2VpYS1zZSBuYSBjb21wYXJhw6fDo28gZGFzIGVzdGltYXRpdmFzIGRlIGRvaXMgbW9kZWxvcyBkZSBkYWRvcyBlbSBwYWluZWwgY29uZm9ybWUgSGF1c21hbiAoMTk3OCkuIFVtYSBhcGxpY2HDp8OjbyB0cmFkaWNpb25hbCDDqSBmZWl0YSBlbnRyZSBvcyBtb2RlbG9zIGRlIGVmZWl0b3MgZml4b3MgZSBhbGVhdMOzcmlvcy4gDQpFbSB0b2RvcyBvcyBjYXNvcywgcmVqZWl0YS1zZSBIMCBlIGVzY29saGUtc2UgbyBtb2RlbG8gZGUgZWZlaXRvcyBmaXhvcy4NCg0KDQpgYGB7ciwgZXZhbD1UUlVFfQ0KcGh0ZXN0KGZpeGVkLm9uZSxyYW5kb20pDQpwaHRlc3QoZml4ZWQub25ldCxyYW5kb20pDQpwaHRlc3QoZml4ZWQudHdvLHJhbmRvbSkNCmBgYA0KDQojIyBUZXN0ZSBkZSBhdXPDqm5jaWEgZGUgY29ycmVsYcOnw6NvIHNlcmlhbA0KDQpPIHRlc3RlIGRlIGVmZWl0b3MgbsOjbyBvYnNlcnZhZG9zIGFvIGVzdGlsbyBkZSBXb29sZHJpZGdlKDIwMDIsIHNlw6fDo28gMTAuNC40KSwgdGVzdGEgYSBoaXDDs3Rlc2UgbnVsYSBkZSBxdWUgJM+DXjJfe868fT0gMCQsIGUgbsOjbyBleGlzdGVtIGVmZWl0b3MgbsOjbyBvYnNlcnZhZG9zIG5vcyByZXPDrWR1b3MuIE8gdGVzdGUgYmFzZWlhLXNlIG5vcyByZXPDrWR1b3MgZG8gbW9kZWxvIGVtcGlsaGFkbyBlc3RpbWFkbyBwb3IgTcOtbmltb3MgUXVhZHJhZG9zIChwb29saW5nKS4gICAgDQpOw6NvIHJlamVpdGFyIEgwLCBmYXZvcmVjZSBvIHVzbyBkbyBtb2RlbG8gcG9vbGVkIE9MUy4gQSByZWplacOnw6NvIGRlIEgwIHBvZGUgc2UgZGFyIHBvciBwcmVzZW7Dp2EgZGUgY29ycmVsYcOnw6NvIHNlcmlhbCBkZSBkaWZlcmVudGVzIGZvcm1hcyBlIG7Do28gZGV2ZSBzZXIgaW50ZXJwcmV0YWRhIGRlIG1vZG8gYSBzZSBvcHRhciBwZWxvIG1vZGVsbyBkZSBlZmVpdG9zIGFsZWF0w7NyaW9zIChXb29sZHJpZGdlLCAyMDAyKS4gDQpTYWJlbmRvIHF1ZSBvIG1vZGVsbyBwcmVmZXLDrXZlbCDDqSBkZSBlZmVpdG9zIGZpeG9zLCBvIHJlc3VsdGFkbyBpbmRpY2EgcG9zc2liaWxpZGFkZSBkZSBjb3JyZWxhw6fDo28gc2VyaWFsIGUgbmVjZXNzaWRhZGUgZGUgcmVhbGl6YXIgZXN0aW1hdGl2YXMgcm9idXN0YXMuDQoNCmBgYHtyfSAgICANCnB3dGVzdChncm93dGggfiAobGdkcCkgKyBwcml2bytsbHkrYnRvdCtzZWMrZ292K2xibXArbHBpK3RyYWRlLCBkYXRhID0gcGFuZWwpDQpgYGANCg0KRml6ZW1vcyB0YW1iw6ltIG8gdGVzdGUgZGUgQmFsdGFnaSBlIExpIGUgYSBoaXDDs3Rlc2UgYWx0ZXJuYXRpdmEgZGUgZXJyb3MgQVIoMSkgw6kgcHJlZmVyaWRhLg0KDQpgYGB7cn0NCnBic3l0ZXN0KGdyb3d0aCB+IChsZ2RwKSArIHByaXZvK2xseStidG90K3NlYytnb3YrbGJtcCtscGkrdHJhZGUsIGRhdGEgPSBwYW5lbCwgdGVzdD0gImoiKQ0KYGBgDQoNCk1vZGVsbyBmaW5hbA0KPT09PT09PT09PT09PT09PT09PQ0KDQpSZWFsaXphbmRvIGEgZXN0aW1hdGl2YSByb2J1c3RhIGRlIEFyZWxsYW5vIHBhcmEgbyBtb2RlbG8gZGUgZWZlaXRvcyBmaXhvcyBpbmRpdmlkdWFpcy4gU2FiZW5kbyBxdWUgYXMgdmFyacOhdmVpcyBzw6NvOg0KYGBgDQpjb3VudHJ5ICBjb3VudHJ5IG5hbWUNCnBlcmlvZCBwZXJpb2QNCmdyb3d0aCBncm93dGggcmF0ZSAqIDEwMA0KcHJpdm8gbG9nIHByaXZhdGUgY3JlZGl0IC8gR0RQDQpsbHkgbG9nIGxpcXVpZCBsaWFiaWxpdGllcyAvIEdEUA0KYnRvdCBsb2cgYmFuayBjcmVkaXQvdG90YWwgY3JlZGl0DQpsZ2RwIGxvZyBpbml0aWFsIGdkcCBwZXIgY2FwaXRhIChQUFApDQpzZWMgbWVhbiB5ZWFycyBvZiBzZWNvbmRhcnkgc2Nob29saW5nDQpnb3YgbG9nIGdvdmVybm1lbnQgc3BlbmRpbmcgLyBHRFANCmxibXAgbG9nKDEgYmxhY2sgbWFya2V0IHByZW1pdW0pDQpscGkgbG9nKDEgKyBpbmZsYXRpb24gcmF0ZSkNCnRyYWRlIGxvZyAoaW1wb3J0cyArIGV4cG9ydHMpL0dEUA0KYGBgDQpGb3JhbSBzaWduaWZpY2F0aXZhcyBwYXJhIGV4cGxpY2FyIG8gY3Jlc2NpbWVudG8gKGdyb3d0aCk6IGxnZHAsIGJ0b3QsIGxwaS4NCg0KYGBge3J9DQojIHZlciBwbG06OnZjb3ZIQyBwYXJhIGRldGFsaGVzIGRvIG3DqXRvZG8gZSB0aXBvDQojIGFyZWxsYW5vIHBlcm1pdGUgdW1hIGVzdHJ1dHVyYSBtYWlzIGNvbXBsZXRhIGUgZ2VyYWwgcGFyYSB2YXItY292DQojIGNvbSBoZXRlcm9jZWRhc3RpY2lkYWRlIGUgY29ycmVsYcOnw6NvIHNlcmlhbCAoY3Jvc3Mtc2VjdGlvbmFsKQ0KZmVfc3VtbWFyeTwtIHN1bW1hcnkoZml4ZWQub25lLCANCiAgICAgICAgICAgIHZjb3YgPSBmdW5jdGlvbih4KSB2Y292SEMoeCwgDQogICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCA9ICJhcmVsbGFubyIsdHlwZSA9IGMoIkhDMSIpKSkNCihmZV9zdW1tYXJ5KQ0KYGBgDQoNCiMjIEVmZWl0b3MgZml4b3MgKG9uZS13YXkgaW5kaXZpZHVhbCkgDQoNCmBgYHtyfQ0KZWZlaXRvczwtZml4ZWYoZml4ZWQub25lKQ0Kb3B0aW9ucyhtYXgucHJpbnQ9MTAwMDAwMCkNCnN1bW1hcnkoZWZlaXRvcykNCmBgYA==