O objetivo do estudo é de estimar o efeito de possuir contrato de trabalho com carteira assinada sobre o rendimento mensal dos trabalhadores no Brasil, utilizando os dados da PNAD Contínua de 2024 e o método de Propensity Score Matching (PSM). O estudo busca isolar o “prêmio salarial da formalidade” ao controlar o viés de seleção e as diferenças observáveis entre os grupos de trabalhadores com e sem carteira assinada.
A alta taxa de informalidade é uma característica estrutural e persistente do mercado de trabalho brasileiro. Embora seja consenso que trabalhadores formais possuem maior acesso a benefícios e proteções, o verdadeiro impacto da formalidade sobre o salário é frequentemente debatido. Uma simples comparação de médias salariais é enganosa, pois trabalhadores que conseguem empregos formais podem já possuir características (observáveis e não observáveis) que os levariam a ter salários mais altos de qualquer maneira (viés de seleção).
Este estudo se justifica por utilizar uma metodologia quase-experimental robusta, o Propensity Score Matching (PSM) e os microdados da PNAD Contínua, para criar um grupo de comparação mais adequado, permitindo uma estimativa mais precisa do prêmio salarial. Os resultados são de alta relevância para políticas públicas voltadas à formalização do trabalho e para o debate sobre a precarização das relações de emprego no cenário econômico.
A eficácia do método de pareamento (matching) em estimar o impacto causal de um programa ou política está condicionada a uma suposição fundamental: a atribuição do tratamento no grupo pareado deve se comportar como se fosse aleatória. Esta é a premissa central que sustenta a validade da abordagem.
Conforme Imbens (2015) e Castro, Costa e Finamor (2024), as condições necessárias para aplicação do método são:
1. independência condicional: os resultados potenciais \(Y_i^1\) e \(Y_i^0\) são estatisticamente independentes do tratamento \(T_i\), condicional ao conjunto de variáveis \(X_i\):
\[ T_i \perp (Y_i^1, Y_i^0) | X_i \]
2. suporte comum: o escore de propensão \(p(x)\) respeita a condição \(0 < p(X) < 1\)
Na hipótese 2, o escore de propensão é definido como a probabilidade de participação na política, assim:
\[ p(x) = {E}[T_i \mid X_i = x] = \Pr(T_i = 1 \mid X_i = x) \] Para que a condição de suporte comum seja válida, nenhuma característica observável pode perfeitamente prever o acesso ao tratamento. Em outras palavras, não pode existir nenhum grupo com atributos que garantam sempre a participação (ou sempre a exclusão) do programa. Quando essa situação ocorre, os indivíduos desses grupos devem ser removidos da análise, o que limita a abrangência das conclusões obtidas.
Sob essas duas hipóteses, o viés de seleção é igual a zero, já que:
\[ E[Y_i^0|T_i = 1, X_i = x] = E[Y_i^0|T_i = 0, X_i = x] \] Dessa forma, a diferença observada nas médias do indicador de resultado entre os grupos de tratamento e de controle será igual ao impacto causal entre os tratados, condicional ao conjunto de características observáveis:
\[ E[Y_i \mid T_i = 1, X_i = x] - E[Y_i \mid T_i = 0, X_i = x] = E[Y_i^1 - Y_i^0 \mid T_i = 1, X_i = x] \] Finalmente, ao calcular o valor esperado da expressão anterior em relação às variáveis observadas X, obtemos a identificação do efeito médio do tratamento sobre os tratados (ATT).
\[{E}_X \{ E[Y_i \mid T_i = 1, X_i = x] - E[Y_i \mid T_i = 0, X_i = x] \} = E[Y_i^1 - Y_i^0 \mid T_i = 1] \quad \Rightarrow \text{ATT}\]
knitr::opts_chunk$set(echo = TRUE)
# limpar ambiente
rm(list=ls())
#Carregar pacotes necessários
library(data.table) # Para manipulação de dados
library(knitr)
library(dplyr) # Para manipulação de dados
library(tidyr) # Para manipulação de dados
library(PNADcIBGE) # Para carregar dados da PNAD Contínua
library(tidyverse) # Para manipulação de dados
library(ggplot2) # Para visualização de dados
library(stargazer) # Para gerar tabelas de regressão
library(tidyverse) # Para manipulação de base de dados
library(broom) # Para converter regressões em base de dados
library(data.table) # Para gerar data frames
library(randomizr) # Para randomização
library(RCT) # Para análise de ensaios clínicos randomizados
library(xtable) # Para gerar tabelas em LaTeX
library(MatchIt) # Pacote para matching
library(cobalt) # Para balanceamento de covariáveis
library(lfe) # Para regressões com efeitos fixos
set.seed(2024) # Definindo uma semente para reprodutibilidade
A biblitoeca pnadcIBGE permite baixar os dados da PNAD Contínua diretamente do site do IBGE. A seguir, são baixados os dados dos quatro trimestres de 2024 e combinados em uma única base de dados.
pnadc20241tri <- get_pnadc(year = 2024, quarter = 1, design = FALSE)
pnadc20242tri <- get_pnadc(year = 2024, quarter = 2, design = FALSE)
pnadc20243tri <- get_pnadc(year = 2024, quarter = 3, design = FALSE)
pnadc20244tri <- get_pnadc(year = 2024, quarter = 4, design = FALSE)
#Combinando os trimestres em uma única base de dados
#pnadc2024 <- rbind(pnadc20241tri, pnadc20242tri, pnadc20243tri, pnadc20244tri) # O rbind() funciona bem desde que os data.frames tenham exatamente as mesmas colunas, na mesma ordem.
pnadc2024 <- bind_rows(pnadc20241tri, pnadc20242tri, pnadc20243tri, pnadc20244tri) #bind_rows() alinha as colunas pelo nome, mesmo que a ordem seja diferente, e insere NA se alguma variável estiver ausente em um dos data frames.
#salvando a base
#save(pnadc2024, file = "pnadc2024.RData")
#setwd("C:/Users/joaov/Desktop/") # Definindo o diretório de trabalho
#load("C:/Users/joaov/Desktop/pnadc2024.RData")
Aqui é realizado o tratamento dos dados, incluindo a criação de variáveis necessárias para a análise, como o código do domicílio e da pessoa, além da conversão de variáveis categóricas em numéricas. Também são criadas variáveis binárias para regiões geográficas e outras características relevantes.
#Tratando os dados
#table(pnadc2024c$ANOS_ESTUDO, useNA = "ifany") # dica --> para verificar a distribuição de uma variável
pnadc2024c = pnadc2024 %>%
mutate(
UPA = as.numeric(UPA), #
V1008 = as.numeric(V1008), #Número do domicílio
V1014 = as.numeric(V1014), #Grupo da amostra
V2003 = as.numeric(V2003),
CODIGO = UPA * 1000 + V1008 * 10 + V1014, # código do domicílio
CODPES = UPA *1000 + V1008 *100 + V1014 *10 + V2003, # código da pessoa
UF_char = as.character(UF), # converte o fator em string
cod_uf = recode(UF_char,
"Rondônia" = 11,
"Acre" = 12,
"Amazonas" = 13,
"Roraima" = 14,
"Pará" = 15,
"Amapá" = 16,
"Tocantins" = 17,
"Maranhão" = 21,
"Piauí" = 22,
"Ceará" = 23,
"Rio Grande do Norte" = 24,
"Paraíba" = 25,
"Pernambuco" = 26,
"Alagoas" = 27,
"Sergipe" = 28,
"Bahia" = 29,
"Minas Gerais" = 31,
"Espírito Santo" = 32,
"Rio de Janeiro" = 33,
"São Paulo" = 35,
"Paraná" = 41,
"Santa Catarina" = 42,
"Rio Grande do Sul" = 43,
"Mato Grosso do Sul" = 50,
"Mato Grosso" = 51,
"Goiás" = 52,
"Distrito Federal" = 53))%>%
rename(
CLT = V4029, # contrato CLT
RPM = V403412, # renda mensal
FAIXA_SM = V403411, # faixa de salário mínimo
DIA_NASC = V2008, # dia de nascimento,
MES_NASC = V20081, # mês de nascimento
ANO_NASC = V20082, # ano de nascimento
OCUPADO = V4001, # ocupado
ANOS_ESTUDO = VD3005,
IDADE = V2009,
SEXO = V2007,
HORAS_TRABALHO = V4039
)%>%
#transformando anos de estudo em numérico
mutate(
ANOS_ESTUDO = as.numeric(ANOS_ESTUDO), # convertendo ANOS_ESTUDO para numérico
ANOS_ESTUDO = (ANOS_ESTUDO -1),# subtraindo 1 para ajustar a escala
)%>%
#removendo NA e transformando a horas de estudo semanal em mensal
drop_na(HORAS_TRABALHO)%>% # Retirando valores faltantes de HORAS_TRABALHO
mutate(
HORAS_TRABALHO = as.numeric(HORAS_TRABALHO), # convertendo HORAS_TRABALHO para numérico
HORAS_TRABALHO = HORAS_TRABALHO*4 # multiplicando por 4 para obter o total mensal
)%>%
filter(OCUPADO == "Sim")%>% # Filtrando apenas os ocupados
#Criando binárias de região
mutate(
NORDESTE = ifelse(UF %in% c("Maranhão", "Piauí", "Ceará", "Rio Grande do Norte", "Paraíba", "Pernambuco", "Alagoas", "Sergipe", "Bahia"), 1, 0),
NORTE = ifelse(UF %in% c("Rondônia", "Acre", "Amazonas", "Roraima", "Pará", "Amapá", "Tocantins"), 1, 0),
SUDESTE = ifelse(UF %in% c("Minas Gerais", "Espírito Santo", "Rio de Janeiro", "São Paulo"), 1, 0),
SUL = ifelse(UF %in% c("Paraná", "Santa Catarina", "Rio Grande do Sul"), 1, 0),
CENTRO_OESTE = ifelse(UF %in% c("Mato Grosso do Sul", "Mato Grosso", "Goiás", "Distrito Federal"), 1, 0))%>%
#Criando outras binárias
mutate(
CLT = ifelse(CLT == "Sim", 1, 0), # Convertendo CLT para numérico
MULHER = ifelse(SEXO == "Mulher", 1, 0), # Convertendo Mulher para numérico
NAO_BRANCO = ifelse(V2010 != "Branca", 1, 0), # Convertendo Não Branco para numérico
# Proxy da experiência: no Brasil normalmente as crinaças iniciam sua alfabetização aos 6 anos. Nesse caso, para construtir proxy da experiência, temos:
EXPER = IDADE - ANOS_ESTUDO - 6,
EXPER = if_else(EXPER < 0, 0, EXPER) # Garantindo que a experiência não seja negativa
) %>%
# Filtrando apenas os indivíduos com idade entre 18 e 60 anos
filter(
IDADE >=18 & IDADE <= 60 # Filtrando apenas indivíduos com idade entre 18 e 60 anos
)%>%
drop_na(CLT)
psm_clt = pnadc2024c %>%
select(UF, NORDESTE, NORTE, SUDESTE, SUL, CENTRO_OESTE, CLT, RPM, FAIXA_SM, HORAS_TRABALHO, IDADE, EXPER, ANOS_ESTUDO, MULHER, NAO_BRANCO, OCUPADO)
psm_clt = as.data.frame(psm_clt) # Convertendo para data.table para melhor performance
stargazer(psm_clt,
type = "text",
title = "Estatísticas Descritivas")
##
## Estatísticas Descritivas
## ======================================================
## Statistic N Mean St. Dev. Min Max
## ------------------------------------------------------
## NORDESTE 433,192 0.265 0.441 0 1
## NORTE 433,192 0.116 0.321 0 1
## SUDESTE 433,192 0.298 0.458 0 1
## SUL 433,192 0.200 0.400 0 1
## CENTRO_OESTE 433,192 0.120 0.325 0 1
## CLT 433,192 0.634 0.482 0 1
## RPM 433,178 2,585.327 3,420.493 0 300,000
## HORAS_TRABALHO 433,192 159.570 38.264 4 480
## IDADE 433,192 36.779 11.309 18 60
## EXPER 433,192 19.612 12.843 0 54
## ANOS_ESTUDO 433,192 11.171 3.848 0 16
## MULHER 433,192 0.457 0.498 0 1
## NAO_BRANCO 433,192 0.611 0.488 0 1
## ------------------------------------------------------
A tabela acima apresenta as estatísticas descritivas das variáveis selecionadas para a análise. As variáveis incluem informações sobre a região geográfica, se o trabalhador possui carteira assinada (CLT), renda mensal (RPM), horas de trabalho, idade, anos de estudo, gênero e raça.
df_balance_antes = psm_clt %>%
select(NORDESTE, NORTE, SUDESTE, SUL, CENTRO_OESTE, CLT, RPM, HORAS_TRABALHO, IDADE, ANOS_ESTUDO, MULHER, NAO_BRANCO)
teste_bal_antes = balance_table(df_balance_antes, "CLT")
teste_bal_antes = teste_bal_antes%>%
mutate(
p_value1 = round(p_value1, 7)
)
teste_bal_antes
print(teste_bal_antes, row.names = FALSE)
## # A tibble: 11 × 4
## variables1 Media_control1 Media_trat1 p_value1
## <chr> <dbl> <dbl> <dbl>
## 1 ANOS_ESTUDO 10.3 11.7 0
## 2 CENTRO_OESTE 0.102 0.130 0
## 3 HORAS_TRABALHO 143. 169. 0
## 4 IDADE 36.6 36.9 0
## 5 MULHER 0.502 0.431 0
## 6 NAO_BRANCO 0.681 0.570 0
## 7 NORDESTE 0.380 0.199 0
## 8 NORTE 0.159 0.0916 0
## 9 RPM 1902. 2980. 0
## 10 SUDESTE 0.239 0.333 0
## 11 SUL 0.119 0.247 0
#exporta para latex
#print.xtable(xtable(teste_bal_antes, longtable = TRUE))
O teste de balanceamento antes do PSM mostra que existem diferenças estatisticamente significativas entre os grupos de trabalhadores com e sem carteira assinada (CLT) em relação às variáveis observáveis. As médias salariais (RPM), horas de trabalho, idade, anos de estudo, gênero e raça apresentam diferenças significativas entre os grupos. Portanto, é necessário aplicar o Propensity Score Matching (PSM) para ajustar as diferenças entre os grupos e tornar a comparação mais justa.
Para estimar o escore de propensão, é necessário realizar uma regressão logística (logit) onde a variável dependente é o tratamento (CLT) e as variáveis independentes são as covariáveis selecionadas. O escore de propensão é a probabilidade de um indivíduo receber o tratamento (ter carteira assinada) dado suas características observáveis.
pscore_fs = glm(CLT ~ HORAS_TRABALHO + IDADE + ANOS_ESTUDO + MULHER + NAO_BRANCO + NORDESTE + NORTE + SUL + CENTRO_OESTE, family = binomial(link = logit), data= psm_clt)
summary(pscore_fs)
##
## Call:
## glm(formula = CLT ~ HORAS_TRABALHO + IDADE + ANOS_ESTUDO + MULHER +
## NAO_BRANCO + NORDESTE + NORTE + SUL + CENTRO_OESTE, family = binomial(link = logit),
## data = psm_clt)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -3.6287267 0.0278486 -130.302 < 2e-16 ***
## HORAS_TRABALHO 0.0194209 0.0001096 177.193 < 2e-16 ***
## IDADE 0.0100494 0.0003229 31.123 < 2e-16 ***
## ANOS_ESTUDO 0.1028003 0.0009823 104.648 < 2e-16 ***
## MULHER -0.2398846 0.0072848 -32.930 < 2e-16 ***
## NAO_BRANCO -0.0484565 0.0077892 -6.221 4.94e-10 ***
## NORDESTE -0.7837408 0.0092549 -84.684 < 2e-16 ***
## NORTE -0.8006328 0.0116533 -68.704 < 2e-16 ***
## SUL 0.4311461 0.0110920 38.870 < 2e-16 ***
## CENTRO_OESTE -0.0676602 0.0120381 -5.621 1.90e-08 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 569024 on 433191 degrees of freedom
## Residual deviance: 486272 on 433182 degrees of freedom
## AIC: 486292
##
## Number of Fisher Scoring iterations: 4
O modelo de regressão logística (logit) foi estimado para prever a probabilidade de um trabalhador ter carteira assinada (CLT) com base em suas características observáveis. As variáveis independentes incluem horas de trabalho, idade, anos de estudo, gênero, raça e região geográfica. O modelo fornece os coeficientes estimados para cada variável, que indicam a relação entre essas características e a probabilidade de ter carteira assinada.
O pacote MatchIt pode ser utilizado para parear os trabalhadores tratados e não tratados. Não seria necessário estimar o primeiro estágio previamente, já que o próprio MatchIt faz isso. A biblioteca também permite utilizar a opção “discard”, que exclui observações fora do suporte comum.
Para parear os grupos de tratamento e controle, é necessário primeiramente definir os critérios que serão utilizados. Utilizaremos o pareamento por escore de propensão e compararemos os resultados utilizando três critérios diferentes:
Modelo 1: Pareamento por vizinho mais próximo
psm1 = matchit(CLT ~ HORAS_TRABALHO + IDADE + ANOS_ESTUDO + MULHER + NAO_BRANCO + NORDESTE + NORTE + SUL + CENTRO_OESTE, data = psm_clt, method = "nearest", ratio = 1, discard = "both")
#summary(psm1)
plot(psm1, type = "hist") #histrograma dos escores de propensão antes e após
#Love plot (gráfico de balanço das covariáveis)
love.plot(psm1, stats = "mean.diffs", threshold = 0.1) #Mostra a diferença média padronizada entre os grupos tratado e controle antes e depois do pareamento.
df_matched1 = match.data(psm1) # Extraindo os dados pareados
O gráfico acima mostra o histograma dos escores de propensão antes e após o pareamento. O Love plot exibe o balanço das covariáveis, indicando a diferença média padronizada entre os grupos tratado e controle antes e depois do pareamento. Os resultados mostram que não houve um bom pareamento a partir do primeiro modelo, pois as covariáveis não estão balanceadas entre os grupos tratado e controle. Isso indica que o método de pareamento por vizinho mais próximo sem caliper não foi suficiente para controlar as diferenças entre os grupos.
Modelo 2: Pareamento por vizinho mais próximo limitado ao caliper de 0.25
psm2 = matchit(CLT ~ HORAS_TRABALHO + IDADE + ANOS_ESTUDO + MULHER + NAO_BRANCO + NORDESTE + NORTE + SUL + CENTRO_OESTE, data = psm_clt, method = "nearest", ratio = 1, caliper = 0.25, discard = "both")
#summary(psm1)
plot(psm2, type = "hist") #histrograma dos escores de propensão antes e após
#Love plot (gráfico de balanço das covariáveis)
love.plot(psm2, stats = "mean.diffs", threshold = 0.1) #Mostra a diferença média padronizada entre os grupos tratado e controle antes e depois do pareamento.
df_matched2 = match.data(psm2) # Extraindo os dados pareados
O gráfico acima mostra o histograma dos escores de propensão antes e após o pareamento. O Love plot exibe o balanço das covariáveis, indicando a diferença média padronizada entre os grupos tratado e controle antes e depois do pareamento. Os resultados mostram que o segundo modelo (caliper de 0.25) melhorou o balanceamento das covariáveis, mas ainda não foi suficiente para garantir um bom pareamento, pois algumas covariáveis ainda apresentam diferenças significativas entre os grupos tratado e controle.
Modelo 3: Pareamento por vizinho mais próximo limitado ao caliper de 0.005
psm3 = matchit(CLT ~ HORAS_TRABALHO + IDADE + ANOS_ESTUDO + MULHER + NAO_BRANCO + NORDESTE + NORTE + SUL + CENTRO_OESTE, data = psm_clt, method = "nearest", ratio = 1, caliper = 0.005, discard = "both", )
#summary(psm1)
plot(psm3, type = "hist") #histrograma dos escores de propensão antes e após
#Love plot (gráfico de balanço das covariáveis)
love.plot(psm3, stats = "mean.diffs", threshold = 0.1) #Mostra a diferença média padronizada entre os grupos tratado e controle antes e depois do pareamento.
df_matched3 = match.data(psm3) # Extraindo os dados pareados
O gráfico acima mostra o histograma dos escores de propensão antes e após o pareamento. O Love plot exibe o balanço das covariáveis, indicando a diferença média padronizada entre os grupos tratado e controle antes e depois do pareamento. Os resultados mostram que o terceiro modelo (caliper de 0.005) melhorou significativamente o balanceamento das covariáveis, tornando os grupos tratado e controle mais comparáveis. No entanto, ainda é importante verificar se as diferenças entre os grupos são estatisticamente significativas.
df_balance1 = df_matched1 %>%
select(NORDESTE, NORTE, SUDESTE, SUL, CENTRO_OESTE, CLT, RPM, HORAS_TRABALHO, IDADE, ANOS_ESTUDO, MULHER, NAO_BRANCO)
df_balance2 = df_matched2 %>%
select(NORDESTE, NORTE, SUDESTE, SUL, CENTRO_OESTE, CLT, RPM, HORAS_TRABALHO, IDADE, ANOS_ESTUDO, MULHER, NAO_BRANCO)
df_balance3 = df_matched3 %>%
select(NORDESTE, NORTE, SUDESTE, SUL, CENTRO_OESTE, CLT, RPM, HORAS_TRABALHO, IDADE, ANOS_ESTUDO, MULHER, NAO_BRANCO)
Gera a tabela com médias dos grupos de trabalhadores tratados (CLT) e não tratados após o pareamento
teste_bal1 = balance_table(df_balance1, "CLT")
teste_bal1 = teste_bal1%>%
mutate(
p_value1 = round(p_value1, 7)
)
teste_bal1
teste_bal2 = balance_table(df_balance2, "CLT")
teste_bal2 = teste_bal2%>%
mutate(
p_value1 = round(p_value1, 7)
)
teste_bal2
teste_bal3 = balance_table(df_balance3, "CLT")
teste_bal3 = teste_bal3%>%
mutate(
p_value1 = round(p_value1, 7)
)
teste_bal3
Após o pareamento pelos 3 métodos, o teste de balanceamento aponta que não houve um bom balanceamento das covariáveis entre os grupos tratados e não tratados. As diferenças entre as médias das variáveis observáveis ainda são estatisticamente significativas, indicando que o pareamento não conseguiu controlar completamente as diferenças entre os grupos. Isso sugere que o método de pareamento utilizado pode não ser adequado para este conjunto de dados ou que as covariáveis selecionadas não são suficientes para controlar as diferenças entre os grupos.
#print.xtable(xtable(head(teste_bal1)))
#print.xtable(xtable(head(teste_bal2)))
#print.xtable(xtable(head(teste_bal3)))
Ao invés de realizar um simples teste de médias, utiliza-se a regressão para estimar o impacto.
Utilizando as bases de dados pareados, podemos estimar a mesma regressão linear sob os diferentes critérios:
reg0 = lm( RPM ~ CLT + HORAS_TRABALHO + IDADE + I(IDADE^2) + ANOS_ESTUDO + MULHER + NAO_BRANCO + NORDESTE + NORTE + SUL + CENTRO_OESTE, data = psm_clt)
reg1 = lm( RPM ~ CLT + HORAS_TRABALHO + IDADE + I(IDADE^2) + ANOS_ESTUDO + MULHER + NAO_BRANCO + NORDESTE + NORTE + SUL + CENTRO_OESTE, data = df_matched1)
reg2 = lm( RPM ~ CLT + HORAS_TRABALHO + IDADE + I(IDADE^2) + ANOS_ESTUDO + MULHER + NAO_BRANCO + NORDESTE + NORTE + SUL + CENTRO_OESTE, data = df_matched2)
reg3 = lm( RPM ~ CLT + HORAS_TRABALHO + IDADE + I(IDADE^2) + ANOS_ESTUDO + MULHER + NAO_BRANCO + NORDESTE + NORTE + SUL + CENTRO_OESTE, data = df_matched3)
#exportar os resultados
suppressWarnings({
stargazer(reg0, reg1, reg2, reg3,
type = "text",
title = "Resultados das Regressões",
dep.var.labels = "Renda Pessoal Mensal (RPM)",
omit.stat = c("f", "ser"),
no.space = TRUE,
add.lines = list(c("Observações", nrow(psm_clt), nrow(df_matched1), nrow(df_matched2), nrow(df_matched3))))
})
##
## Resultados das Regressões
## ======================================================================
## Dependent variable:
## -------------------------------------------------------
## Renda Pessoal Mensal (RPM)
## (1) (2) (3) (4)
## ----------------------------------------------------------------------
## CLT 196.731*** 80.112*** 326.217*** 327.353***
## (10.908) (16.318) (12.684) (12.751)
## HORAS_TRABALHO 7.423*** 7.747*** 9.979*** 9.555***
## (0.134) (0.164) (0.177) (0.184)
## IDADE 170.366*** 187.677*** 156.470*** 155.611***
## (2.930) (3.775) (3.751) (3.779)
## I(IDADE2) -1.560*** -1.717*** -1.403*** -1.404***
## (0.038) (0.049) (0.049) (0.049)
## ANOS_ESTUDO 265.263*** 310.678*** 257.198*** 249.695***
## (1.355) (1.851) (1.705) (1.760)
## MULHER -836.330*** -902.635*** -845.185*** -827.066***
## (9.938) (12.890) (13.112) (13.298)
## NAO_BRANCO -633.824*** -704.110*** -548.004*** -513.988***
## (10.592) (13.499) (13.834) (14.071)
## NORDESTE -778.905*** -708.510*** -796.862*** -794.166***
## (13.168) (19.481) (16.971) (17.075)
## NORTE -611.888*** -575.786*** -610.505*** -630.135***
## (16.805) (25.148) (20.505) (20.367)
## SUL -114.449*** -145.799*** 61.915*** 83.246***
## (14.084) (16.738) (19.918) (20.793)
## CENTRO_OESTE -11.829 -68.845*** 41.691** 31.338
## (16.342) (20.429) (21.075) (21.273)
## Constant -4,571.551*** -5,432.054*** -4,760.438*** -4,615.095***
## (58.045) (75.002) (75.437) (77.328)
## ----------------------------------------------------------------------
## Observações 433192 317016 249048 230852
## Observations 433,178 317,002 249,038 230,845
## R2 0.161 0.172 0.147 0.133
## Adjusted R2 0.161 0.172 0.147 0.133
## ======================================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
Os resultados das regressões mostram o impacto da formalidade (CLT) sobre a renda pessoal mensal (RPM) dos trabalhadores. As variáveis de controle incluem horas de trabalho, idade, anos de estudo, gênero, raça e região geográfica. Os coeficientes estimados indicam a relação entre essas variáveis e a renda mensal. O efeito do tratamento (CLT) é positivo e significativo em todos os modelos. Isso indica que trabalhadores com carteira assinada tendem a ter uma renda mensal maior do que aqueles sem carteira assinada. No entanto, o tamanho do efeito varia entre os modelos, sugerindo que o método de pareamento utilizado pode influenciar as estimativas. Além disto, o pareamento não conseguiu balancear completamente as covariáveis entre os grupos tratados e não tratados, o que pode afetar a validade das estimativas. Desse modo, é necessário encontrar outro método de pareamento que consiga balancear as covariáveis entre os grupos tratados e não tratados, para melhorar a validade das estimativas.
Castro, C. de S., Costa, G. W., Finamor, L. Avaliação de Impacto. Rio de Janeiro: FGV, 2024.
Imbens, G. W. (2015). Matching methods in practice: Three examples. Journal of Human Resources, 50(2), 373-419.