# "limpar" ambiente
rm(list = ls())
# Carregar bibliotecas
library(readxl)
library(readr)
library(ggplot2)
library(glm2)
library(corrplot)
library(psych)
library(factoextra)
library(FactoMineR)
library(stats)
library(plm)
library(car)
library(lmtest)
library(tseries)
library(cli)
library(skimr) # Este pacote auxilia na descrição de conjunto de dados
# Carregar dados m1 contém os contratos ativos
m1 <- read_excel("C:/Users/kassy/OneDrive - caen.ufc.br/Consultoria/Marcelo 02_24/teste.xlsx")
m1=pdata.frame(m1, index = c("ESTADO","ANO"))
head(m1)
## ANO ESTADO AnoUF Despesa.de.Pessoal.Executivo.DP despesa_defla
## AC-2013 2013 AC 2013AC 1665266185 5438879961
## AC-2014 2014 AC 2014AC 1898982186 6594753917
## AC-2015 2015 AC 2015AC 1927024333 7296431679
## AC-2016 2016 AC 2016AC 2008305920 8268735466
## AC-2017 2017 AC 2017AC 2408736386 10259206524
## AC-2018 2018 AC 2018AC 2326733547 10273127444
## RCL receita_defla DP.RCL X..DP.RCL População pib
## AC-2013 3700350635 12085613155 0.4500293 45.00293 776463 11473930000
## AC-2014 4267230697 14819168168 0.4450151 44.50151 790101 13458698000
## AC-2015 3949107687 14952792212 0.4879645 48.79645 803513 13622802000
## AC-2016 4442141071 18289489191 0.4521031 45.21031 816687 13754240000
## AC-2017 4471916240 19046630642 0.5386363 53.86363 829619 14272941000
## AC-2018 4846051637 21396565205 0.4801297 48.01297 869265 15331123000
## pib_defla covid carga_trib_siconfi carga_confaz receita_trib_defla
## AC-2013 37474686 0 0.08850380 0.07424913 2782463039
## AC-2014 46739144 0 0.08599018 0.07106219 3321386117
## AC-2015 51581001 0 0.09187333 0.07707305 3975504826
## AC-2016 56629904 0 0.09509435 0.07873574 4458797647
## AC-2017 60790816 0 0.10306762 0.08676824 5274712062
## AC-2018 67690854 0 0.11841386 0.09742134 6594533671
## area.km. dens_demo REGIÃO Ano.eleição anos_educ vinculos
## AC-2013 164122.3 4.731002 3 0 6.88 129232
## AC-2014 164122.3 4.814099 3 1 7.15 133161
## AC-2015 164122.3 4.895819 3 0 7.96 136011
## AC-2016 164122.3 4.976088 3 0 8.50 128137
## AC-2017 164122.3 5.054883 3 0 8.80 131291
## AC-2018 164122.3 5.296447 3 1 8.90 126304
sd(m1$carga_confaz)
## [1] 0.02553088
sd(m1$covid)
## [1] 0.4013032
sd(m1$Ano.eleição)
## [1] 0.4595978
sd(m1$dens_demo)
## [1] 115.6959
sd(m1$anos_educ)
## [1] 1.998678
sd(m1$DP.RCL)
## [1] 0.108652
ano=m1$ANO
uf=m1$ESTADO
dp_rec=m1$DP.RCL
despesa=m1$despesa_defla
rcl=m1$receita_defla
receitatrib=m1$receita_trib_defla
pop=m1$População
pib=m1$pib_defla
covid=m1$covid
covid=factor(covid)
cargasiconf=m1$carga_trib_siconfi
cargaconfaz=m1$carga_confaz
carga2=cargaconfaz^2
densdem=m1$dens_demo
eleicao=m1$Ano.eleição
eleicao=factor(eleicao)
educ=m1$anos_educ
trab=m1$vinculos
#Data frame com as variáveis númericas
data1 <- data.frame(cargaconfaz, cargasiconf, densdem, pop, pib, educ, trab, despesa, rcl, receitatrib)
#datacat <- data.frame(catbidm1, catpppm1, sector)
matcor <- cor(data1)
print(matcor, digits = 2)
## cargaconfaz cargasiconf densdem pop pib educ trab despesa
## cargaconfaz 1.0000 0.881 -0.501 -0.120 0.399 -0.158 -0.138 -0.010
## cargasiconf 0.8812 1.000 -0.361 -0.202 0.375 -0.074 -0.195 -0.058
## densdem -0.5009 -0.361 1.000 0.247 0.082 0.509 0.290 0.290
## pop -0.1202 -0.202 0.247 1.000 0.079 0.191 0.970 0.903
## pib 0.3987 0.375 0.082 0.079 1.000 0.098 0.083 0.281
## educ -0.1582 -0.074 0.509 0.191 0.098 1.000 0.288 0.289
## trab -0.1378 -0.195 0.290 0.970 0.083 0.288 1.000 0.914
## despesa -0.0104 -0.058 0.290 0.903 0.281 0.289 0.914 1.000
## rcl 0.0064 -0.041 0.294 0.887 0.271 0.288 0.901 0.988
## receitatrib -0.0021 -0.066 0.228 0.897 0.196 0.265 0.922 0.979
## rcl receitatrib
## cargaconfaz 0.0064 -0.0021
## cargasiconf -0.0413 -0.0662
## densdem 0.2944 0.2277
## pop 0.8869 0.8973
## pib 0.2708 0.1959
## educ 0.2877 0.2645
## trab 0.9013 0.9225
## despesa 0.9883 0.9786
## rcl 1.0000 0.9888
## receitatrib 0.9888 1.0000
corrplot(matcor, method = "circle")
# A relação da despesa com pessoal por Uf no tempo.
ggplot(data = m1, aes(x = ano, y = dp_rec, group = uf, color = uf)) +
geom_line() +
labs(title = "Série temporal de dp_rec para cada UF",
x = "Tempo",
y = "dp_rec") +
theme_minimal()
#par(mar = c(4, 4, 2, 2))
#dev.new(width = 12, height = 8)
#coplot(despesa ~ ANO|ESTADO, type="b", data=m1)
regressão considerando que o intercepto do modelo e seus coeficientes angulares são constantes ao longo do tempo e no espaço, sendo que o termo de erro capta a diferença no tempo e entre os indivíduos (POOLED);
regressão considerando que os coeficientes angulares são constantes e o intercepto varia entre os indivíduos (EFEITOS FIXOS);
regressão considerando que o intercepto assume um valor médio comum entre os indivíduos e os coeficientes angulares variam ao longo do tempo e também entre indivíduos (EFEITOS ALEATÓRIOS).
Este modelo trata de “empilhar” todas as observações da base de dados, ignorando a estrutura de dados em painel. Desta forma, todas as observações são tratadas como não correlacionadas para os indivíduos, com erros homoscedásticos para com os indivíduos. Trata-se, portanto, da forma mais simplista e ingênua pois desconsidera as dimensões de tempo e espaço combinados, ao mesmo tempo que estima a regressão pelo método dos Mínimos Quadrados Ordinários (MQO) (Gujarati e Porter 2011). Desta forma:
\[ Y_{it} = \beta_1+\beta_2X_{2it} + \beta_3X_{3it} +u_{it}\\ i=1,2,3,4,...,27\\ t=2013,2014,\dots,2022 \] em que \(i\) corresponde à \(i\)-nésima unidade de corte transversal e \(t\) o \(t\)-nésimo período de tempo.
reg.pooled=plm(dp_rec ~ cargaconfaz + covid + eleicao + densdem + educ ,
data=m1, model="pooling")
#dp_rec ~ cargaconfaz + covid + eleicao + densdem + educ
summary(reg.pooled)
## Pooling Model
##
## Call:
## plm(formula = dp_rec ~ cargaconfaz + covid + eleicao + densdem +
## educ, data = m1, model = "pooling")
##
## Unbalanced Panel: n = 27, T = 9-10, N = 269
##
## Residuals:
## Min. 1st Qu. Median 3rd Qu. Max.
## -0.1612251 -0.0338608 -0.0071613 0.0176525 1.5328838
##
## Coefficients:
## Estimate Std. Error t-value Pr(>|t|)
## (Intercept) 0.52427353 0.04273120 12.2691 < 2e-16 ***
## cargaconfaz -0.78876199 0.32844808 -2.4015 0.01702 *
## covid -0.04180683 0.01743871 -2.3974 0.01721 *
## eleicao1 -0.00666259 0.01655086 -0.4026 0.68760
## densdem -0.00015019 0.00007729 -1.9432 0.05306 .
## educ 0.00285400 0.00386559 0.7383 0.46098
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 3.1638
## Residual Sum of Squares: 3.0102
## R-Squared: 0.048538
## Adj. R-Squared: 0.030449
## F-statistic: 2.68334 on 5 and 263 DF, p-value: 0.021926
A estimação da regressão pooled averiguou significância estatística nas variáveis dependentes Carga tributária, a dummy covid para os anos de 2020 e 2021 que compreende os anos da pandemia da Covid-19. Pode-se considerar que a nível de significância de 10% que a variável densidade demográfica também tem efeito sobre a relação de despesa com pessoal/receita corrente liquída. O modelo apresenta baixo \(R^2\), contudo a especificação do modelo apresenta significância global. As variáveis carga tributária e covid tiveram efeito negativo sobre a relação da despesa. A relação do período pandemico faz sentido, na medida em que houve aumento restrição de gastos espera-se que as despesas respondam negativamente. Contudo o resultado para carga tributária, possui um efeito econômico ambíguo sobre a relação da despesa com pessoal.
Este tipo de modelo não faz diferenciação entre a influência/diferença das UF’s na variável despesa com pessoal e nem se a resposta da despesa às variáveis explicativas é a mesma ao longo do tempo. Isto faz com que não se saiba se existe heterogeneidade entre as Uf’s. A comparação do modelo pooled com as regressões de efeitos fixos e efeitos aleatórios, que serão estimados na sequência, servirá mostrar qual é o melhor modelo dentre eles.
# Calcular os VIF
vif_values <- vif(reg.pooled)
print(vif_values)
## cargaconfaz covid eleicao densdem educ
## 1.646469 1.146733 1.354832 1.872276 1.397672
Os resultados dos valores VIF que você obteve sugerem que a multicolinearidade não é uma grande preocupação em seu modelo, pois todos os valores estão abaixo de 5, o que geralmente é considerado um limiar para multicolinearidade problemática.
O modelo de regressão com efeitos fixos considera, que os valores dos interceptos para cada regressão (\(\alpha_i\)) variam de acordo com o efeito de cada indivíduo (“Uf’s”) e que os coeficientes de declividade (das variáveis independentes “carga tributária”, “covid”, “eleição”, “educação” e “densidade demográfica”) para cada equação são os mesmos para cada UF, conforme equação abaixo:
\[ Despesa com pessoal_{it}= β_1 ciclo politico+ β_2 Covid + β_3 densidade demografica + β_4 taxa de desemprego + β_5 nível de educação + β_6 carga tributária dos estados \] Desta forma, o intercepto da equação é diferente para cada Uf, mas o efeito das variáveis independentes é o mesmo sobre a variável independente. Isto indica que existe características especiais em cada Uf influenciando a despesa.
reg.ef=plm(dp_rec ~ cargaconfaz + covid + eleicao + densdem + educ,
data=m1, model="within")
summary(reg.ef)
## Oneway (individual) effect Within Model
##
## Call:
## plm(formula = dp_rec ~ cargaconfaz + covid + eleicao + densdem +
## educ, data = m1, model = "within")
##
## Unbalanced Panel: n = 27, T = 9-10, N = 269
##
## Residuals:
## Min. 1st Qu. Median 3rd Qu. Max.
## -0.16506584 -0.02092597 -0.00045441 0.01773859 1.39567740
##
## Coefficients:
## Estimate Std. Error t-value Pr(>|t|)
## cargaconfaz -0.76086161 0.36181947 -2.1029 0.03653 *
## covid -0.04065109 0.01796952 -2.2622 0.02459 *
## eleicao1 -0.00688113 0.01650416 -0.4169 0.67710
## densdem -0.00021134 0.00176721 -0.1196 0.90491
## educ 0.00127943 0.00561446 0.2279 0.81994
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 2.6765
## Residual Sum of Squares: 2.5476
## R-Squared: 0.048177
## Adj. R-Squared: -0.076323
## F-statistic: 2.39916 on 5 and 237 DF, p-value: 0.037994
A regressão de efeitos fixos, assim como no modelo pooled só tem significância nas variáveis carga tributária e covid.
No entanto, ainda resta definir o efeito dos interceptos de cada Uf, como segue:
summary(fixef(reg.ef))
## Estimate Std. Error t-value Pr(>|t|)
## AC 0.558383 0.062054 8.9983 < 2.2e-16 ***
## AL 0.541441 0.229914 2.3550 0.0193403 *
## AM 0.547829 0.064693 8.4681 2.639e-15 ***
## AP 0.482488 0.066020 7.3082 4.121e-12 ***
## BA 0.517615 0.082295 6.2898 1.519e-09 ***
## CE 0.504553 0.131942 3.8241 0.0001679 ***
## DF 0.573781 0.934988 0.6137 0.5400169
## ES 0.493847 0.180641 2.7339 0.0067322 **
## GO 0.516625 0.081235 6.3597 1.031e-09 ***
## MA 0.467963 0.071986 6.5008 4.679e-10 ***
## MG 0.587949 0.100124 5.8722 1.444e-08 ***
## MS 0.518041 0.071965 7.1985 7.995e-12 ***
## MT 0.540919 0.066794 8.0983 2.934e-14 ***
## PA 0.510184 0.060058 8.4948 2.212e-15 ***
## PB 0.576682 0.150529 3.8310 0.0001635 ***
## PE 0.552561 0.192988 2.8632 0.0045696 **
## PI 0.521992 0.066004 7.9085 9.879e-14 ***
## PR 0.679357 0.135012 5.0318 9.604e-07 ***
## RJ 0.549919 0.704039 0.7811 0.4355279
## RN 0.619739 0.142327 4.3543 1.987e-05 ***
## RO 0.507049 0.067630 7.4974 1.295e-12 ***
## RR 0.513918 0.068449 7.5080 1.213e-12 ***
## RS 0.524971 0.111602 4.7040 4.336e-06 ***
## SC 0.542414 0.162852 3.3307 0.0010046 **
## SE 0.559124 0.203652 2.7455 0.0065053 **
## SP 0.526316 0.349389 1.5064 0.1332989
## TO 0.557949 0.064264 8.6822 6.383e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Com este resultado é possível observar que o efeito das UF’s sobre a relação da despesa/rcl parece ser diferente para cada indivíduo, assim cada valor estimado corresponde ao intercepto de cada Uf. Por exemplo, temos para o estado do Ceará a seguinte especificação:
\[ Despesa com pessoal_{it}= 0.504553 - 0.76 carga tributária dos estados -0.04 Covid \]
Apenas, Distrito federal, Rio de Janeiro e São Paulo, não possuem significância estatística. Foi testado, tirar esses estados como possíveis outliers. Quando tirado os ouliers, diminuiu a significância de outros estados, e deixou AL insignificante, além de não melhorar a capacidade de explicação do modelo. Todas as Ufs tem efeito positivo sobre a relação da despesa.
No modelo de regressão com efeitos aleatórios, os efeitos individuais das Ufs são considerados variáveis aleatórias, ao contrário do modelo visto anteriormente. Desta forma:
\[ Y_{1i}=\beta_{1i}+\beta_2X_{2it}+\beta_3X_{3it}+u_{it} \] onde $_{1i} $ é variável aleatória com valor médio \(\beta_1\), e o intercepto para a empresa individual é dado por (Gujarati e Porter 2011):
\[ \beta_{1i} = \beta_{1}+\varepsilon_{i} \quad i=1,2,\dots,N \]
em que \(\epsilon_i\) é um termo de erro de média zero e variânvia \(\sigma_{ε}^2\).Assim, as Ufs possuem um valor médio para o intercepto (\(=β_1\) ), sendo que as diferenças refletem o termo de erro \(ε_i\). Obtêm-se: \[ \beta_{1i} = \beta_{1}+\varepsilon_{i} \quad i=1,2,\dots,N \]
O erro composto \(w_{it}\) é formado por \(\epsilon_i\)- elemento de corte transversal dos indivíduos e \(u_{it}\), que é o elemento da série temporal e do corte transversal (Gujarati e Porter 2011). Desta forma, assume-se que os erros individuais não estão correlacionados entre si e também não estão correlacionados entre aquelas unidades de corte transversal e das séries temporais.
O modelo estimado a seguir:
reg.ea=plm(dp_rec ~ cargaconfaz + covid + eleicao + densdem + educ,
data=m1, model="random",
random.method = "walhus")
summary(reg.ea)
## Oneway (individual) effect Random Effect Model
## (Wallace-Hussain's transformation)
##
## Call:
## plm(formula = dp_rec ~ cargaconfaz + covid + eleicao + densdem +
## educ, data = m1, model = "random", random.method = "walhus")
##
## Unbalanced Panel: n = 27, T = 9-10, N = 269
##
## Effects:
## var std.dev share
## idiosyncratic 0.0106656 0.1032744 0.927
## individual 0.0008453 0.0290746 0.073
## theta:
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.2360 0.2531 0.2531 0.2525 0.2531 0.2531
##
## Residuals:
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -0.15739 -0.03355 -0.00500 0.00001 0.01613 1.49870
##
## Coefficients:
## Estimate Std. Error z-value Pr(>|z|)
## (Intercept) 5.2737e-01 4.4348e-02 11.8917 < 2e-16 ***
## cargaconfaz -7.8187e-01 3.3252e-01 -2.3513 0.01871 *
## covid -4.1500e-02 1.6866e-02 -2.4606 0.01387 *
## eleicao1 -6.6562e-03 1.6107e-02 -0.4133 0.67942
## densdem -1.4515e-04 9.1627e-05 -1.5842 0.11315
## educ 2.3972e-03 4.1702e-03 0.5748 0.56540
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 2.9471
## Residual Sum of Squares: 2.8061
## R-Squared: 0.047852
## Adj. R-Squared: 0.029751
## Chisq: 13.3408 on 5 DF, p-value: 0.020386
Assim como nos modelos anteriores temos as mesmas variáveis significativas e com o mesmo efeito (negativo) sobre a variável dependente.
Inicialmente compara-se o modelo Pooled com a regressão de Efeitos Fixos (within). Para isto utiliza-se o Teste F ou teste F de Chow. A hipótese nula é de que há igualdade nos interceptos e nas inclinações para todos os indivíduos, caracterizando o modelo de dados agrupados (pooled).
pFtest(reg.ef,reg.pooled)
##
## F test for individual effects
##
## data: dp_rec ~ cargaconfaz + covid + eleicao + densdem + educ
## F = 1.6555, df1 = 26, df2 = 237, p-value = 0.02758
## alternative hypothesis: significant effects
Como o valor p é inferior a 0,05, o modelo de Efeitos Fixos é melhor do que o modelo Pooled.
O teste desenvolvido por Breusch e Pagan (1980) compara as estimativas entre os modelos, verificando se \(\sigma_\alpha^2=0\) , sendo que:
\[ H_0: \sigma_\alpha^2=0\] \[ H_1: \sigma_\alpha^2\neq0 \]
Desta forma, a aceitação da hipótese nula implica que o modelo de dados agrupados (pooled) é preferível.
plmtest(reg.pooled, type="bp")
##
## Lagrange Multiplier Test - (Breusch-Pagan)
##
## data: dp_rec ~ cargaconfaz + covid + eleicao + densdem + educ
## chisq = 4.2498, df = 1, p-value = 0.03926
## alternative hypothesis: significant effects
Como o p valor foi inferior a 0,05 o modelo de Efeitos Aleatórios é superior ao Pooled.
O teste de Hausmann (Hausman 1978) efetua a especificação dos modelos de Efeito Fixo e de Efeitos Aleatórios, sendo que se o teste rejeitar a hipótese nula, o modelo de Efeitos Fixos é o mais adequado.
\[ H_0: \alpha_i \ \textrm{não são correlacionados com}X_{it} \] \[ H_1: \alpha_i \ \textrm{são correlacionados com}X_{it} \]
phtest(reg.ef,reg.ea)
##
## Hausman Test
##
## data: dp_rec ~ cargaconfaz + covid + eleicao + densdem + educ
## chisq = 0.13715, df = 5, p-value = 0.9996
## alternative hypothesis: one model is inconsistent
Como o valor p foi superior a 0,05 o modelo de Efeitos Aleatórios foi considerado superior ao modelo de Efeitos Fixos.
%%%%%%%%%%%%%%% \[EF>Pooled\\ Pooled>EA\\ EA>EF\]
A dependência cross-sectional se apresenta em panieis com longas séries de tempo. A hipótese nula é de que os resíduos através dos indivíduos não estão correlacionados. Como resultado, nossa regressão aceita a hipótese nula do teste de Pesaran (2015):
pcdtest(reg.ea, test="cd")
##
## Pesaran CD test for cross-sectional dependence in panels
##
## data: dp_rec ~ cargaconfaz + covid + eleicao + densdem + educ
## z = 5.3336, p-value = 9.629e-08
## alternative hypothesis: cross-sectional dependence
O valor p associado à estatística z é 9.629e-08, que é muito menor que 0.05. Isso sugere forte evidência para rejeitar a hipótese nula de não haver dependência cruzada entre seções transversais em painel.
Hipótese alternativa: A hipótese alternativa é que há dependência cruzada entre as seções transversais em seu painel, ou seja, de que os resíduos através dos indivíduos estão correlacionados.
Com base nos resultados, parece que há evidências significativas de dependência cruzada entre as diferentes unidades de seção transversal do painel, o que pode ter implicações importantes para a modelagem.
shapiro.test(reg.ea$residuals)
##
## Shapiro-Wilk normality test
##
## data: reg.ea$residuals
## W = 0.3491, p-value < 2.2e-16
O valor p associado ao teste é menor que 2.2e-16, o que indica que é essencialmente zero. Isso significa que há uma forte evidência para rejeitar a hipótese nula de que os resíduos do modelo de regressão seguem uma distribuição normal. Assim, com base nos resultados do teste de Shapiro-Wilk, os resíduos do modelo de regressão não seguem uma distribuição normal.
Isso sugere que a suposição de normalidade dos resíduos pode ter sido violada. Isso pode influenciar a validade dos resultados da sua análise de regressão, especialmente quando se trata de inferências baseadas em testes estatísticos que assumem normalidade dos resíduos. É importante considerar alternativas ou técnicas robustas para lidar com essa violação da normalidade.
Abaixo o teste para homocedasticidade (variância constante) dos resíduos de Breusch-Pagan (1979):
bptest(reg.ea)
##
## studentized Breusch-Pagan test
##
## data: reg.ea
## BP = 2.6327, df = 5, p-value = 0.7564
O valor p associado ao teste é 0.7564. Este valor p é maior que 0.05, o que sugere que não há evidência estatisticamente significativa para rejeitar a hipótese nula de homocedasticidade dos resíduos. Dessa forma, com base nos resultados do teste de Breusch-Pagan, não há evidência para sugerir que a variância dos resíduos é heterocedástica. Os resultados indicam que os resíduos do modelo de regressão exibem homocedasticidade, o que traz robustez a validade dos testes de inferência associados ao modelo de regressão.
A hipótese nula do teste de correlação serial do teste Breusch-Godfrey/Wooldridge (Breusch 1978) é a de que não se encontra esta característica na série. Abaixo o resultado do teste, sendo que aprovou a hipótese nula, ou seja, não há problemas de correlação serial nos dados, pois o p-value é superior a 0,05.
pbgtest(reg.ea)
##
## Breusch-Godfrey/Wooldridge test for serial correlation in panel models
##
## data: dp_rec ~ cargaconfaz + covid + eleicao + densdem + educ
## chisq = 3.0802, df = 9, p-value = 0.961
## alternative hypothesis: serial correlation in idiosyncratic errors
Pode ser efetuado o teste para verificar a presença de efeitos não observados de tempo ou individuais nos modelos de dados em painel (Wooldridge 2010). Não se rejeitando a hipótese nula, isso significa que os dados não fornecem evidência estatisticamente significativa para concluir que existem efeitos individuais não observados no modelo.
pwtest(reg.pooled)
##
## Wooldridge's test for unobserved individual effects
##
## data: formula
## z = 1.7462, p-value = 0.08077
## alternative hypothesis: unobserved effect
Hipótese nula (\(H_0\)): A hipótese nula é de que não há efeitos temporais não observados no modelo.
Hipótese alternativa (\(H_1\)): A hipótese alternativa é de que existem efeitos temporais não observados no modelo.
pwtest(reg.pooled, effect = "time")
##
## Wooldridge's test for unobserved time effects
##
## data: formula
## z = -0.87667, p-value = 0.3807
## alternative hypothesis: unobserved effect
O valor p associado ao teste é 0.3807. Este valor p é maior que 0.05, o que sugere que não há evidência estatisticamente significativa para rejeitar a hipótese nula de ausência de efeitos temporais não observados.
Com base nos resultados do teste de Wooldridge, não há evidência para sugerir que existem efeitos temporais não observados significativos no modelo de regressão. Portanto, os resultados indicam que, de acordo com o teste de Wooldridge, os efeitos temporais não observados não são um componente significativo no modelo de regressão.
O teste de Dickey-Fuller prova se a série é estocástica, sendo que a hipótese nula é de que a série possui raiz unitária (não-estacionaridade).
Abaixo o resultado do teste, sendo que observou-se que a série é estacionária, assim, não há problemas de dependência temporal determinística.
adf.test(m1$DP.RCL, k=2)
## Warning in adf.test(m1$DP.RCL, k = 2): p-value smaller than printed p-value
##
## Augmented Dickey-Fuller Test
##
## data: m1$DP.RCL
## Dickey-Fuller = -8.9144, Lag order = 2, p-value = 0.01
## alternative hypothesis: stationary
Breusch, Trevor S. 1978. «Testing for autocorrelation in dynamic linear models». Australian Economic Papers 17 (31): 334–55.
Breusch, Trevor S, e Adrian R Pagan. 1979. «A simple test for heteroscedasticity and random coefficient variation». Econometrica: Journal of the Econometric Society, 1287–94.
Breusch, Trevor Stanley, e Adrian Rodney Pagan. 1980. «The Lagrange multiplier test and its applications to model specification in econometrics». The Review of Economic Studies 47 (1): 239–53.
Gujarati, Damodar N., e Down C Porter. 2011. Econometria básica. 5a ed. New York: Mc Graw Hill. https://doi.org/10.1126/science.1186874.
Hausman, Jerry A. 1978. «Specification tests in econometrics». Econometrica: Journal of the econometric society, 1251–71.
Pesaran, M Hashem. 2015. «Testing weak cross-sectional dependence in large panels». Econometric Reviews 34 (6-10): 1089–1117.
Wooldridge, Jeffrey M. 2010. Econometric analysis of cross section and panel data. MIT Press.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%55 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
rm(list = ls())
m1 <- read_excel("C:/Users/kassy/OneDrive - caen.ufc.br/Consultoria/Marcelo 02_24/teste.xlsx")
#2013-2019
m1$ANO <- as.numeric(as.character(m1$ANO))
# Criando o subset
subset_m1 <- subset(m1, ANO >= 2013 & ANO <= 2019)
summary(subset_m1)
## ANO ESTADO AnoUF
## Min. :2013 Length:188 Length:188
## 1st Qu.:2014 Class :character Class :character
## Median :2016 Mode :character Mode :character
## Mean :2016
## 3rd Qu.:2018
## Max. :2019
## Despesa de Pessoal Executivo-DP despesa_defla RCL
## Min. :1.097e+09 Min. :3.810e+09 Min. :2.785e+09
## 1st Qu.:3.512e+09 1st Qu.:1.382e+10 1st Qu.:7.361e+09
## Median :5.752e+09 Median :2.309e+10 Median :1.250e+10
## Mean :9.936e+09 Mean :4.018e+10 Mean :2.154e+10
## 3rd Qu.:1.054e+10 3rd Qu.:4.355e+10 3rd Qu.:2.193e+10
## Max. :7.119e+10 Max. :3.261e+11 Max. :1.604e+11
## receita_defla DP/RCL % DP/RCL População
## Min. :9.672e+09 Min. :0.2955 Min. : 29.55 Min. : 496936
## 1st Qu.:2.998e+10 1st Qu.:0.4342 1st Qu.: 43.42 1st Qu.: 2771245
## Median :5.070e+10 Median :0.4615 Median : 46.15 Median : 3985096
## Mean :8.699e+10 Mean :0.4698 Mean : 46.98 Mean : 7660360
## 3rd Qu.:9.444e+10 3rd Qu.:0.4815 3rd Qu.: 48.15 3rd Qu.: 9294588
## Max. :7.348e+11 Max. :2.0206 Max. :202.06 Max. :45919049
## pib pib_defla covid carga_trib_siconfi
## Min. :9.744e+09 Min. :3.384e+07 Min. :0 Min. :0.05923
## 1st Qu.:4.612e+10 1st Qu.:1.855e+08 1st Qu.:0 1st Qu.:0.08102
## Median :1.092e+11 Median :4.439e+08 Median :0 Median :0.09193
## Mean :2.359e+11 Mean :9.510e+08 Mean :0 Mean :0.09032
## 3rd Qu.:2.448e+11 3rd Qu.:9.592e+08 3rd Qu.:0 3rd Qu.:0.09819
## Max. :2.348e+12 Max. :1.076e+10 Max. :0 Max. :0.14064
## carga_confaz receita_trib_defla area km² dens_demo
## Min. :0.03602 Min. :2.639e+09 Min. : 5788 Min. : 2.216
## 1st Qu.:0.07830 1st Qu.:1.675e+10 1st Qu.: 56470 1st Qu.: 6.876
## Median :0.08556 Median :3.784e+10 Median : 224301 Median : 35.837
## Mean :0.08488 Mean :7.552e+10 Mean : 315398 Mean : 74.579
## 3rd Qu.:0.09398 3rd Qu.:7.745e+10 3rd Qu.: 340104 3rd Qu.: 84.520
## Max. :0.12212 Max. :8.092e+11 Max. :1559162 Max. :525.147
## REGIÃO Ano eleição anos_educ vinculos
## Min. :0.000 Min. :0.0000 Min. : 4.090 Min. : 94320
## 1st Qu.:1.000 1st Qu.:0.0000 1st Qu.: 8.100 1st Qu.: 460739
## Median :3.000 Median :0.0000 Median : 9.000 Median : 802676
## Mean :2.553 Mean :0.2872 Mean : 8.996 Mean : 1791947
## 3rd Qu.:4.000 3rd Qu.:1.0000 3rd Qu.: 9.825 3rd Qu.: 2179108
## Max. :4.000 Max. :1.0000 Max. :22.180 Max. :17276911
#sd(m1$ANO)
subset_m1=subset(subset_m1, ESTADO %in% c("AC", "RO","AM","RR", "PA", "AP", "TO", "MA", "PI", "CE", "RN", "PB", "PE", "AL", "SE", "BA", "MG", "ES", "RJ", "SP", "PR", "SC", "RS", "MS", "MT", "GO", "DF"))
subset_m1=pdata.frame(subset_m1, index = c("ESTADO","ANO"))
head(subset_m1)
## ANO ESTADO AnoUF Despesa.de.Pessoal.Executivo.DP despesa_defla
## AC-2013 2013 AC 2013AC 1665266185 5438879961
## AC-2014 2014 AC 2014AC 1898982186 6594753917
## AC-2015 2015 AC 2015AC 1927024333 7296431679
## AC-2016 2016 AC 2016AC 2008305920 8268735466
## AC-2017 2017 AC 2017AC 2408736386 10259206524
## AC-2018 2018 AC 2018AC 2326733547 10273127444
## RCL receita_defla DP.RCL X..DP.RCL População pib
## AC-2013 3700350635 12085613155 0.4500293 45.00293 776463 11473930000
## AC-2014 4267230697 14819168168 0.4450151 44.50151 790101 13458698000
## AC-2015 3949107687 14952792212 0.4879645 48.79645 803513 13622802000
## AC-2016 4442141071 18289489191 0.4521031 45.21031 816687 13754240000
## AC-2017 4471916240 19046630642 0.5386363 53.86363 829619 14272941000
## AC-2018 4846051637 21396565205 0.4801297 48.01297 869265 15331123000
## pib_defla covid carga_trib_siconfi carga_confaz receita_trib_defla
## AC-2013 37474686 0 0.08850380 0.07424913 2782463039
## AC-2014 46739144 0 0.08599018 0.07106219 3321386117
## AC-2015 51581001 0 0.09187333 0.07707305 3975504826
## AC-2016 56629904 0 0.09509435 0.07873574 4458797647
## AC-2017 60790816 0 0.10306762 0.08676824 5274712062
## AC-2018 67690854 0 0.11841386 0.09742134 6594533671
## area.km. dens_demo REGIÃO Ano.eleição anos_educ vinculos
## AC-2013 164122.3 4.731002 3 0 6.88 129232
## AC-2014 164122.3 4.814099 3 1 7.15 133161
## AC-2015 164122.3 4.895819 3 0 7.96 136011
## AC-2016 164122.3 4.976088 3 0 8.50 128137
## AC-2017 164122.3 5.054883 3 0 8.80 131291
## AC-2018 164122.3 5.296447 3 1 8.90 126304
anosub=subset_m1$ANO
ufsub=subset_m1$ESTADO
dp_recsub=subset_m1$DP.RCL
popsub=subset_m1$População
pibsub=subset_m1$pib
covidsub=subset_m1$covid
covidsub=factor(covidsub)
cargasiconfsub=subset_m1$carga_trib_siconfi
cargaconfazsub=subset_m1$carga_confaz
densdemsub=subset_m1$dens_demo
eleicaosub=subset_m1$Ano.eleição
eleicaosub=factor(eleicaosub)
educsub=subset_m1$anos_educ
trabsub=subset_m1$vinculos
#Data frame com as variáveis númericas
data1 <- data.frame(cargaconfazsub, cargasiconfsub, densdemsub, popsub, pibsub, educsub, trabsub)
#datacat <- data.frame(catbidm1, catpppm1, sector)
matcor <- cor(data1)
print(matcor, digits = 2)
## cargaconfazsub cargasiconfsub densdemsub popsub pibsub educsub
## cargaconfazsub 1.00 0.74 -0.75 -0.13 -0.23 -0.42
## cargasiconfsub 0.74 1.00 -0.58 -0.27 -0.34 -0.31
## densdemsub -0.75 -0.58 1.00 0.25 0.35 0.55
## popsub -0.13 -0.27 0.25 1.00 0.95 0.19
## pibsub -0.23 -0.34 0.35 0.95 1.00 0.33
## educsub -0.42 -0.31 0.55 0.19 0.33 1.00
## trabsub -0.19 -0.31 0.30 0.97 0.99 0.30
## trabsub
## cargaconfazsub -0.19
## cargasiconfsub -0.31
## densdemsub 0.30
## popsub 0.97
## pibsub 0.99
## educsub 0.30
## trabsub 1.00
corrplot(matcor, method = "circle")
#coplot(dp_recsub ~ ANO|ESTADO, type="b", data=subset_m1)
reg.pooled_subset=plm(dp_recsub ~ cargaconfazsub + eleicaosub + densdemsub + educsub,
data=subset_m1, model="pooling")
summary(reg.pooled_subset)
## Pooling Model
##
## Call:
## plm(formula = dp_recsub ~ cargaconfazsub + eleicaosub + densdemsub +
## educsub, data = subset_m1, model = "pooling")
##
## Unbalanced Panel: n = 27, T = 6-7, N = 188
##
## Residuals:
## Min. 1st Qu. Median 3rd Qu. Max.
## -0.1557723 -0.0345325 -0.0076696 0.0168397 1.5319921
##
## Coefficients:
## Estimate Std. Error t-value Pr(>|t|)
## (Intercept) 0.51776495 0.09461132 5.4725 1.445e-07 ***
## cargaconfazsub -0.75384556 0.92044793 -0.8190 0.4139
## eleicaosub1 -0.00682995 0.02005117 -0.3406 0.7338
## densdemsub -0.00017184 0.00012912 -1.3309 0.1849
## educsub 0.00342577 0.00474456 0.7220 0.4712
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 2.8596
## Residual Sum of Squares: 2.8295
## R-Squared: 0.010515
## Adj. R-Squared: -0.011113
## F-statistic: 0.486187 on 4 and 183 DF, p-value: 0.74587
As variáveis preservam o sinal de efeito do modelo estimado com todos os dados, contudo não possuem significância estatística.
# Calcular os VIF
vif_values <- vif(reg.pooled_subset)
print(vif_values)
## cargaconfazsub eleicaosub densdemsub educsub
## 2.263348 1.000822 2.679277 1.439777
Os resultados dos valores VIF que você obteve sugerem que a multicolinearidade não é uma grande preocupação em seu modelo, pois todos os valores estão abaixo de 5, o que geralmente é considerado um limiar para multicolinearidade problemática.
reg.ef_subset=plm(dp_recsub ~ cargaconfazsub + eleicaosub + densdemsub + educsub,
data=subset_m1, model="within")
summary(reg.ef_subset)
## Oneway (individual) effect Within Model
##
## Call:
## plm(formula = dp_recsub ~ cargaconfazsub + eleicaosub + densdemsub +
## educsub, data = subset_m1, model = "within")
##
## Unbalanced Panel: n = 27, T = 6-7, N = 188
##
## Residuals:
## Min. 1st Qu. Median 3rd Qu. Max.
## -0.2269504 -0.0205891 -0.0023151 0.0153177 1.3263728
##
## Coefficients:
## Estimate Std. Error t-value Pr(>|t|)
## cargaconfazsub -1.70596435 2.08987934 -0.8163 0.4156
## eleicaosub1 -0.00678323 0.01980474 -0.3425 0.7324
## densdemsub -0.00024225 0.00313216 -0.0773 0.9385
## educsub 0.00177759 0.00774503 0.2295 0.8188
##
## Total Sum of Squares: 2.3677
## Residual Sum of Squares: 2.3549
## R-Squared: 0.0053894
## Adj. R-Squared: -0.18466
## F-statistic: 0.212679 on 4 and 157 DF, p-value: 0.93109
Com este resultado é possível observar que o efeito das UF’s sobre a relação da despesa/rcl parece ser diferente para cada indivíduo
summary(fixef(reg.ef_subset))
## Estimate Std. Error t-value Pr(>|t|)
## AC 0.61474 0.17319 3.5496 0.0005093 ***
## AL 0.63437 0.40816 1.5542 0.1221495
## AM 0.62730 0.20260 3.0962 0.0023220 **
## AP 0.52968 0.15575 3.4008 0.0008523 ***
## BA 0.62019 0.21767 2.8492 0.0049704 **
## CE 0.57711 0.25396 2.2725 0.0244161 *
## DF 0.61657 1.63770 0.3765 0.7070639
## ES 0.57475 0.32748 1.7551 0.0811955 .
## GO 0.59387 0.19748 3.0073 0.0030708 **
## MA 0.54205 0.17116 3.1669 0.0018518 **
## MG 0.65913 0.21829 3.0195 0.0029558 **
## MS 0.60508 0.21137 2.8627 0.0047739 **
## MT 0.64733 0.20564 3.1479 0.0019683 **
## PA 0.59481 0.17609 3.3778 0.0009213 ***
## PB 0.64856 0.28631 2.2652 0.0248659 *
## PE 0.63386 0.35142 1.8037 0.0731922 .
## PI 0.60970 0.19512 3.1248 0.0021199 **
## PR 0.81496 0.25194 3.2347 0.0014846 **
## RJ 0.59392 1.22602 0.4844 0.6287578
## RN 0.68584 0.27080 2.5327 0.0123013 *
## RO 0.61608 0.23439 2.6284 0.0094302 **
## RR 0.57528 0.17467 3.2936 0.0012222 **
## RS 0.59155 0.21988 2.6903 0.0079108 **
## SC 0.61124 0.28820 2.1209 0.0355048 *
## SE 0.63305 0.36293 1.7443 0.0830659 .
## SP 0.59774 0.60288 0.9915 0.3229730
## TO 0.64841 0.17431 3.7199 0.0002771 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
reg.ea_subset=plm(dp_recsub ~ cargaconfazsub + eleicaosub + densdemsub + educsub,
data=subset_m1, model="random",
random.method = "walhus")
summary(reg.ea_subset)
## Oneway (individual) effect Random Effect Model
## (Wallace-Hussain's transformation)
##
## Call:
## plm(formula = dp_recsub ~ cargaconfazsub + eleicaosub + densdemsub +
## educsub, data = subset_m1, model = "random", random.method = "walhus")
##
## Unbalanced Panel: n = 27, T = 6-7, N = 188
##
## Effects:
## var std.dev share
## idiosyncratic 0.0148051 0.1216764 0.953
## individual 0.0007276 0.0269732 0.047
## theta:
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.1212 0.1374 0.1374 0.1369 0.1374 0.1374
##
## Residuals:
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -0.15186 -0.03619 -0.00570 0.00002 0.01392 1.50444
##
## Coefficients:
## Estimate Std. Error z-value Pr(>|z|)
## (Intercept) 0.52678126 0.10198591 5.1652 2.401e-07 ***
## cargaconfazsub -0.82018999 1.00797514 -0.8137 0.4158
## eleicaosub1 -0.00681491 0.01962341 -0.3473 0.7284
## densdemsub -0.00017393 0.00014291 -1.2171 0.2236
## educsub 0.00306129 0.00495728 0.6175 0.5369
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 2.7324
## Residual Sum of Squares: 2.7095
## R-Squared: 0.0084378
## Adj. R-Squared: -0.013236
## Chisq: 1.64029 on 4 DF, p-value: 0.80153
pFtest(reg.ef_subset,reg.pooled_subset)
##
## F test for individual effects
##
## data: dp_recsub ~ cargaconfazsub + eleicaosub + densdemsub + educsub
## F = 1.2171, df1 = 26, df2 = 157, p-value = 0.2295
## alternative hypothesis: significant effects
Como o valor p é maior a 0,05, o modelo de ** modelo Pooled é melhor do que o Efeitos Fixos**.
plmtest(reg.pooled_subset, type="bp")
##
## Lagrange Multiplier Test - (Breusch-Pagan)
##
## data: dp_recsub ~ cargaconfazsub + eleicaosub + densdemsub + educsub
## chisq = 0.39484, df = 1, p-value = 0.5298
## alternative hypothesis: significant effects
Como o p valor foi superior a 0,05 o modelo Pooled é superior ao Efeitos Aleatórios.
phtest(reg.ef_subset,reg.ea_subset)
##
## Hausman Test
##
## data: dp_recsub ~ cargaconfazsub + eleicaosub + densdemsub + educsub
## chisq = 0.51817, df = 4, p-value = 0.9717
## alternative hypothesis: one model is inconsistent
Como o valor p foi superior a 0,05 o modelo de Efeitos Aleatórios foi considerado superior ao modelo de Efeitos Fixos.
pcdtest(reg.pooled_subset, test="cd")
##
## Pesaran CD test for cross-sectional dependence in panels
##
## data: dp_recsub ~ cargaconfazsub + eleicaosub + densdemsub + educsub
## z = 4.6034, p-value = 4.157e-06
## alternative hypothesis: cross-sectional dependence
O valor p associado à estatística z é 4.157e-06, que é muito menor que 0.05. Isso sugere forte evidência para rejeitar a hipótese nula de não haver dependência cruzada entre seções transversais em painel.
Hipótese alternativa: A hipótese alternativa é que há dependência cruzada entre as seções transversais em seu painel.
Com base nos resultados, parece que há evidências significativas de dependência cruzada entre as diferentes unidades de seção transversal em seu painel, o que pode ter implicações importantes para a modelagem e análise dos dados.
shapiro.test(reg.pooled_subset$residuals)
##
## Shapiro-Wilk normality test
##
## data: reg.pooled_subset$residuals
## W = 0.3343, p-value < 2.2e-16
O valor p associado ao teste é menor que 2.2e-16, o que indica que é essencialmente zero. Isso significa que há uma forte evidência para rejeitar a hipótese nula de que os resíduos do seu modelo de regressão seguem uma distribuição normal. Conclusão: Com base nos resultados do teste de Shapiro-Wilk, os resíduos do seu modelo de regressão não seguem uma distribuição normal.
Isso sugere que a suposição de normalidade dos resíduos pode ter sido violada. Isso pode influenciar a validade dos resultados da sua análise de regressão, especialmente quando se trata de inferências baseadas em testes estatísticos que assumem normalidade dos resíduos. É importante considerar alternativas ou técnicas robustas para lidar com essa violação da normalidade.
bptest(reg.pooled_subset)
##
## studentized Breusch-Pagan test
##
## data: reg.pooled_subset
## BP = 2.8696, df = 4, p-value = 0.5799
O valor p associado ao teste é 0.5799. Este valor p é maior que 0.05, o que sugere que não há evidência estatisticamente significativa para rejeitar a hipótese nula de homocedasticidade dos resíduos. Conclusão: Com base nos resultados do teste de Breusch-Pagan, não há evidência para sugerir que a variância dos resíduos é heterocedástica. Em resumo, os resultados indicam que os resíduos do seu modelo de regressão exibem homocedasticidade, o que é uma suposição importante para a validade dos testes de inferência associados ao modelo de regressão.
Abaixo o resultado do teste, sendo que aprovou a hipótese nula, ou seja, não há problemas de correlação serial nos dados, pois o p-value é superior a 0,05.
pbgtest(reg.pooled_subset)
##
## Breusch-Godfrey/Wooldridge test for serial correlation in panel models
##
## data: dp_recsub ~ cargaconfazsub + eleicaosub + densdemsub + educsub
## chisq = 1.4412, df = 6, p-value = 0.9633
## alternative hypothesis: serial correlation in idiosyncratic errors
Pode ser efetuado o teste para verificar a presença de efeitos não observados de tempo ou individuais nos modelos de dados em painel (Wooldridge 2010). A hipótese nula é a não correlação entre os erros do mesmo grupo .Pelo teste feito, não há correlação entre os erros.
pwtest(reg.pooled_subset)
##
## Wooldridge's test for unobserved individual effects
##
## data: formula
## z = 0.83703, p-value = 0.4026
## alternative hypothesis: unobserved effect
pwtest(reg.pooled_subset, effect = "time")
##
## Wooldridge's test for unobserved time effects
##
## data: formula
## z = -0.93129, p-value = 0.3517
## alternative hypothesis: unobserved effect
O valor p associado ao teste é 0.3517. Este valor p é maior que 0.05, o que sugere que não há evidência estatisticamente significativa para rejeitar a hipótese nula de ausência de efeitos temporais não observados.
Conclusão: Com base nos resultados do teste de Wooldridge, não há evidência para sugerir que existem efeitos temporais não observados significativos no modelo de regressão. Portanto, os resultados indicam que, de acordo com o teste de Wooldridge, os efeitos temporais não observados não são um componente significativo no modelo de regressão.
O teste de Dickey-Fuller prova se a série é estocástica, sendo que a hipótese nula é de que a série possui raiz unitária (não-estacionaridade).
Abaixo o resultado do teste, sendo que observou-se que a série é estacionária, assim, não há problemas de dependência temporal determinística.
adf.test(subset_m1$DP.RCL, k=2)
## Warning in adf.test(subset_m1$DP.RCL, k = 2): p-value smaller than printed
## p-value
##
## Augmented Dickey-Fuller Test
##
## data: subset_m1$DP.RCL
## Dickey-Fuller = -7.5163, Lag order = 2, p-value = 0.01
## alternative hypothesis: stationary
O modelo especificado com a diferença temporal sem incluir a pandemia, não consegue atestar a robustez da especificação da explicação dos controles para a relação despesa com pessoal/receita corrente líquida.