Carregando bibliotecas

# "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

Carregando informações

# Carregar dados m1 contém os contratos ativos 
m1 <- read_excel("C:/Users/kassy/OneDrive - caen.ufc.br/Consultoria/Marcelo 02_24/teste.xlsx")

Definição das variáveis

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

Análise de Correlação

#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) 

Modelos de dados em painel

  1. 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);

  2. regressão considerando que os coeficientes angulares são constantes e o intercepto varia entre os indivíduos (EFEITOS FIXOS);

  3. 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).

Regressão Polled

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.

Teste de Multicolinearidade

# 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.

Modelo Efeitos Fixos

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.

Modelo de Efeitos Aleatórios

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.

Comparação e escolha dos modelos

Modelo Pooled x Modelo de Efeitos Fixos

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.

Modelo Pooled x Modelo de Efeitos Aleatórios

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.

Modelo Efeitos Fixos x Modelo de Efeitos Aleatórios

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\]

Alguns testes para os modelos

Testando dependência transversal (cross-sectional)

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.

Normalidade dos resíduos

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.

Hocedasticidade dos resíduos

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.

Testando correlação serial

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

Teste para efeitos individuais ou de tempo

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.

Teste de Raiz unitária

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

Referências

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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Teste de Robustez (Considerando tempo de 2013 à 2019)

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)

Definição das variáveis

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

Análise de Correlação

#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)

Modelos de dados em painel

Regressão Polled

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.

Teste de Multicolinearidade

# 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.

Modelo Efeitos Fixos

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

Modelo de Efeitos Aleatórios

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

Comparação e escolha dos modelos

Modelo Pooled x Modelo de Efeitos Fixos

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**.

Modelo Pooled x Modelo de Efeitos Aleatórios

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.

Modelo Efeitos Fixos x Modelo de 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.

Alguns testes para os modelos

Testando dependência transversal (cross-sectional)

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.

Normalidade dos resíduos

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.

Hocedasticidade dos resíduos

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.

Testando correlação serial

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

Teste para efeitos individuais ou de tempo

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.

Teste de Raiz unitária

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

Conclusão da Robustez

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.