Editor / Pesquisador: Dr. Ramon Gregório Silva
Área: Econometria Aplicada e Simulações
Computacionais
Timóteo - MG
Outubro de 2026
O governo do Québec solicita que você compare os salários dos empregados do setor público com os dos empregados do setor privado. Deseja-se saber se há um prêmio salarial para quemtrabalha no setor privado. Você dispõe de dados sobre o salário anual de trabalhadores empregados em tempo integral no Québec em 2010. Para cada indivíduo da base de dados, você também dispõe de informações sobre sua escolaridade (medida em anos), sua experiência (medida em anos) e se ele trabalhava no setor público ou no setor privado.
Para testar o diferencial salarial mantendo o efeito constante para qualquer nível de escolaridade e experiência, especificamos o modelo sem termos de interação:
Definição das Variáveis:
O parâmetro β₁ captura a diferença percentual aproximada constante entre o setor privado e o público.
Procedimento do Teste t:
Para permitir que a escolaridade e a experiência tenham impactos distintos sobre o salário dependendo do setor, incluímos os termos de interação:
Onde β₄ mede a diferença no retorno da escolaridade no setor privado em relação ao público, e β₅ mede a diferença no retorno da experiência.
Procedimento do Teste F (Restrições Múltiplas):
Deseja-se testar se a soma dos retornos da escolaridade e experiência é igual entre o setor público (β₂ + β₃) e o privado ((β₂ + β₄) + (β₃ + β₅)).
A hipótese reduz-se a:
Construção do Teste t:
Defina θ = β₄ + β₅. Seu estimador é θ̂ = β̂₄ + β̂₅, com erro padrão dado por:
Estatística de teste t e Intervalo de Confiança Completo:
Método Alternativo por Reparametrização:
Substituindo β₄ = θ - β₅ na equação, estima-se a regressão equivalente:
O coeficiente estimado da variável (privado · educ) fornecerá diretamente o valor de θ̂, seu erro padrão e o p-valor do teste t desejado.
Considere o seguinte modelo de regressão:
yi = β0 +β1x1,i +εi, i =1,2,…,n, εi ∼ N(0,σ2), (4)
com E[ε | X1] = 0,
onde X1 = (ι x1) é uma matriz particionada.
Lembre-se de que ι é um vetor de uns e x1 é um vetor com os n valores de x1,i.
library(knitr)
set.seed(42) # Reprodutibilidade
# 1. Parametros da Simulacao
n_obs <- 5000 # Numero de observacoes por amostra (n)
n_reps <- 100 # Numero de replicacoes de Monte Carlo (R)
beta_0_true <- 2.0
beta_1_true <- 1.5
sigma_true <- 1.0
# Vetores para armazenar as estimativas das replicacoes
b1_modelo1 <- numeric(n_reps)
b1_modelo2 <- numeric(n_reps)
b2_modelo2 <- numeric(n_reps)
# 2. Loop de Monte Carlo
for (i in 1:n_reps) {
# Variaveis exogenas
x1 <- rnorm(n_obs, mean = 5, sd = 2)
x2 <- rnorm(n_obs, mean = 10, sd = 3) # Variavel fora do DGP (Irrelevante)
epsilon <- rnorm(n_obs, mean = 0, sd = sigma_true)
# Processo Gerador de Dados (DGP): Y NAO depende de x2
y <- beta_0_true + beta_1_true * x1 + epsilon
# Modelo 1: Correto (y ~ x1)
reg1 <- lm(y ~ x1)
b1_modelo1[i] <- coef(reg1)["x1"]
# Modelo 2: Com Variavel Irrelevante (y ~ x1 + x2)
reg2 <- lm(y ~ x1 + x2)
b1_modelo2[i] <- coef(reg2)["x1"]
b2_modelo2[i] <- coef(reg2)["x2"]
}
# 3. Funcao para calcular Media, Desvio Padrao e IC da Media de Monte Carlo
calc_stats_mc <- function(vetor, valor_verdadeiro) {
media <- mean(vetor)
dp <- sd(vetor) # Desvio padrao amostral
erro_padrao_mc <- dp / sqrt(length(vetor)) # Erro padrao da Média de Monte Carlo
vies <- media - valor_verdadeiro
# IC 95% para a MEDIA do estimador em Monte Carlo
ic_inf <- media - 1.96 * erro_padrao_mc
ic_sup <- media + 1.96 * erro_padrao_mc
c(Media = media, Vies = vies, DP = dp, Erro_Padrao_MC = erro_padrao_mc, IC_Inf = ic_inf, IC_Sup = ic_sup)
}
res_m1_b1 <- calc_stats_mc(b1_modelo1, beta_1_true)
res_m2_b1 <- calc_stats_mc(b1_modelo2, beta_1_true)
res_m2_b2 <- calc_stats_mc(b2_modelo2, 0.0) # No DGP, o valor verdadeiro de beta_2 e 0
# 4. Criacao do Data Frame com Resultados e Intervalos de Confianca
tabela_resultados <- data.frame(
Modelo = c("Modelo 1 (Correto: y ~ x1)",
"Modelo 2 (Com Irrelevante: y ~ x1 + x2)",
"Modelo 2 (Coeficiente de x2)"),
Parametro = c("beta_1", "beta_1", "beta_2"),
Valor_Verdadeiro = c(beta_1_true, beta_1_true, 0.0),
Media_Estimada = round(c(res_m1_b1["Media"], res_m2_b1["Media"], res_m2_b2["Media"]), 5),
Vies = round(c(res_m1_b1["Vies"], res_m2_b1["Vies"], res_m2_b2["Vies"]), 5),
DP_Amostral = round(c(res_m1_b1["DP"], res_m2_b1["DP"], res_m2_b2["DP"]), 5),
IC_95_Inf = round(c(res_m1_b1["IC_Inf"], res_m2_b1["IC_Inf"], res_m2_b2["IC_Inf"]), 5),
IC_95_Sup = round(c(res_m1_b1["IC_Sup"], res_m2_b1["IC_Sup"], res_m2_b2["IC_Sup"]), 5)
)
# 5. Exibicao Final da Tabela Formatada com knitr::kable
kable(tabela_resultados,
col.names = c("Especificacao do Modelo", "Parametro", "Valor Real", "Media MC", "Vies", "DP Amostral", "IC 95% Inf", "IC 95% Sup"),
caption = "Resultados de Monte Carlo com Intervalo de Confianca da Media Estimada")
| Especificacao do Modelo | Parametro | Valor Real | Media MC | Vies | DP Amostral | IC 95% Inf | IC 95% Sup |
|---|---|---|---|---|---|---|---|
| Modelo 1 (Correto: y ~ x1) | beta_1 | 1.5 | 1.50003 | 0.00003 | 0.00612 | 1.49883 | 1.50123 |
| Modelo 2 (Com Irrelevante: y ~ x1 + x2) | beta_1 | 1.5 | 1.50003 | 0.00003 | 0.00612 | 1.49883 | 1.50123 |
| Modelo 2 (Coeficiente de x2) | beta_2 | 0.0 | 0.00057 | 0.00057 | 0.00443 | -0.00030 | 0.00144 |
library(knitr)
set.seed(42) # Reprodutibilidade
# 1. Parâmetros da Simulação
n_obs <- 5000 # Número de observações por amostra (n)
n_reps <- 100 # Número de réplicas de Monte Carlo (R)
beta_0_true <- 2.0
beta_1_true <- 1.5
sigma_true <- 1.0
nivel_significancia <- 0.05
# Vetor para armazenar se a hipótese nula foi rejeitada em cada réplica
rejeitou_h0 <- logical(n_reps)
# 2. Loop de Monte Carlo
for (i in 1:n_reps) {
# Geração das variáveis
x1 <- rnorm(n_obs, mean = 5, sd = 2)
x2 <- rnorm(n_obs, mean = 10, sd = 3) # Variável irrelevante (beta_2 = 0 no DGP)
epsilon <- rnorm(n_obs, mean = 0, sd = sigma_true)
# Processo Gerador de Dados (Y não depende de x2)
y <- beta_0_true + beta_1_true * x1 + epsilon
# Estimação do modelo com a variável irrelevante
reg <- lm(y ~ x1 + x2)
# Extração do p-valor associado ao teste t do coeficiente de x2
p_valor_x2 <- summary(reg)$coefficients["x2", "Pr(>|t|)"]
# Rejeita H0 se o p-valor for menor que o nível de significância (0.05)
rejeitou_h0[i] <- (p_valor_x2 < nivel_significancia)
}
# 3. Análise dos Resultados
total_rejeicoes <- sum(rejeitou_h0)
taxa_rejeicao <- total_rejeicoes / n_reps
# 4. Construção da Tabela Final
tabela_teste <- data.frame(
Metrica = c(
"Numero de Replicas (R)",
"Tamanho da Amostra por Base (n)",
"Nivel de Significancia Teorico (alfa)",
"Total de Rejeicoes de H0 (p < 0.05)",
"Proporcao Empirica de Rejeicao (Taxa de Erro Tipo I)"
),
Resultado = c(
n_reps,
n_obs,
paste0(nivel_significancia * 100, "%"),
total_rejeicoes,
paste0(taxa_rejeicao * 100, "%")
)
)
# 5. Exibição da Tabela com knitr::kable
kable(tabela_teste,
col.names = c("Metrica da Simulacao", "Valor Observado"),
caption = "Desempenho do Teste t para H0: beta2 = 0 (Variavel Irrelevante)")
| Metrica da Simulacao | Valor Observado |
|---|---|
| Numero de Replicas (R) | 100 |
| Tamanho da Amostra por Base (n) | 5000 |
| Nivel de Significancia Teorico (alfa) | 5% |
| Total de Rejeicoes de H0 (p < 0.05) | 4 |
| Proporcao Empirica de Rejeicao (Taxa de Erro Tipo I) | 4% |
O Impacto do Viés de Omissão de VariáveisContexto do Problema:Imagine que o verdadeiro Processo Gerador de Dados (DGP) da variável dependente \(y_i\) seja influenciado simultaneamente por quatro fatores na população: \[y_i = \beta_0 + \beta_1 x_{1,i} + \beta_2 x_{2,i} + \beta_3 x_{3,i} + \beta_4 x_{4,i} + \varepsilon_i\]
Onde as variáveis omitidas (\(x_2, x_3, x_4\)) possuem correlação com a nossa variável de interesse \(x_1\).Se o pesquisador ignorar a teoria e estimar o modelo contendo apenas \(x_1\) (omitindo as demais), o que acontece com a estimativa e o viés de \(\beta_1\)?
Vamos testar isso empiricamente na simulação abaixo.
library(knitr)
set.seed(42) # Reprodutibilidade
# 1. Parâmetros da Simulação
n_obs_por_base <- 5000 # Tamanho da amostra por base
n_reps <- 100 # Réplicas de Monte Carlo
# Coeficientes populacionais verdadeiros
beta_0 <- 1.0
beta_1 <- 1.5 # O parâmetro alvo que queremos rastrear
beta_2 <- 2.0
beta_3 <- -1.0
beta_4 <- 0.5
sigma <- 1.0
# Vetores para armazenar as estimativas de b1 em cada especificação
b1_full <- numeric(n_reps)
b1_no_x2 <- numeric(n_reps)
b1_no_x3 <- numeric(n_reps)
b1_no_x4 <- numeric(n_reps)
b1_no_x2_x3 <- numeric(n_reps)
b1_no_all <- numeric(n_reps)
# 2. Loop de Monte Carlo
for (i in 1:n_reps) {
# Geração das variáveis exógenas com correlação
x1 <- rnorm(n_obs_por_base, mean = 5, sd = 2)
x2 <- 0.5 * x1 + rnorm(n_obs_por_base, mean = 0, sd = 1)
x3 <- -0.4 * x1 + rnorm(n_obs_por_base, mean = 0, sd = 1.5)
x4 <- 0.3 * x1 + rnorm(n_obs_por_base, mean = 0, sd = 1)
epsilon <- rnorm(n_obs_por_base, mean = 0, sd = sigma)
# DGP Real (Depende de x1, x2, x3 e x4)
y <- beta_0 + beta_1 * x1 + beta_2 * x2 + beta_3 * x3 + beta_4 * x4 + epsilon
# Estimações (todas contendo x1)
b1_full[i] <- coef(lm(y ~ x1 + x2 + x3 + x4))["x1"]
b1_no_x2[i] <- coef(lm(y ~ x1 + x3 + x4))["x1"]
b1_no_x3[i] <- coef(lm(y ~ x1 + x2 + x4))["x1"]
b1_no_x4[i] <- coef(lm(y ~ x1 + x2 + x3))["x1"]
b1_no_x2_x3[i] <- coef(lm(y ~ x1 + x4))["x1"]
b1_no_all[i] <- coef(lm(y ~ x1))["x1"]
}
# 3. Função para calcular estatísticas resumo
calc_stats <- function(vetor, valor_verdadeiro) {
media <- mean(vetor)
dp <- sd(vetor)
vies <- media - valor_verdadeiro
c(Media = media, Vies = vies, DP = dp)
}
res_full <- calc_stats(b1_full, beta_1)
res_no_x2 <- calc_stats(b1_no_x2, beta_1)
res_no_x3 <- calc_stats(b1_no_x3, beta_1)
res_no_x4 <- calc_stats(b1_no_x4, beta_1)
res_no_x2_x3 <- calc_stats(b1_no_x2_x3, beta_1)
res_no_all <- calc_stats(b1_no_all, beta_1)
# 4. Construção da Tabela Consolidada
tabela_resultados <- data.frame(
Especificacao = c(
"Modelo Completo (x1, x2, x3, x4)",
"Omitindo apenas x2 (x1, x3, x4)",
"Omitindo apenas x3 (x1, x2, x4)",
"Omitindo apenas x4 (x1, x2, x3)",
"Omitindo x2 e x3 (x1, x4)",
"Omitindo Todas (Apenas x1)"
),
Parametro = rep("beta_1", 6),
Valor_Real = rep(beta_1, 6),
Media_Estimada = round(c(
res_full["Media"], res_no_x2["Media"], res_no_x3["Media"],
res_no_x4["Media"], res_no_x2_x3["Media"], res_no_all["Media"]
), 4),
Vies = round(c(
res_full["Vies"], res_no_x2["Vies"], res_no_x3["Vies"],
res_no_x4["Vies"], res_no_x2_x3["Vies"], res_no_all["Vies"]
), 4),
Desvio_Padrao = round(c(
res_full["DP"], res_no_x2["DP"], res_no_x3["DP"],
res_no_x4["DP"], res_no_x2_x3["DP"], res_no_all["DP"]
), 4)
)
# 5. Exibição da Tabela Final com knitr::kable
kable(tabela_resultados,
col.names = c("Especificacao do Modelo", "Parametro", "Valor Real", "Media Estimada", "Vies", "Desvio Padrao"),
caption = "Resultados Completos de Monte Carlo: Omissao Parcial e Total de Variaveis Relevantes")
| Especificacao do Modelo | Parametro | Valor Real | Media Estimada | Vies | Desvio Padrao |
|---|---|---|---|---|---|
| Modelo Completo (x1, x2, x3, x4) | beta_1 | 1.5 | 1.4981 | -0.0019 | 0.0102 |
| Omitindo apenas x2 (x1, x3, x4) | beta_1 | 1.5 | 2.5013 | 1.0013 | 0.0192 |
| Omitindo apenas x3 (x1, x2, x4) | beta_1 | 1.5 | 1.8989 | 0.3989 | 0.0189 |
| Omitindo apenas x4 (x1, x2, x3) | beta_1 | 1.5 | 1.6485 | 0.1485 | 0.0095 |
| Omitindo x2 e x3 (x1, x4) | beta_1 | 1.5 | 2.9010 | 1.4010 | 0.0226 |
| Omitindo Todas (Apenas x1) | beta_1 | 1.5 | 3.0500 | 1.5500 | 0.0178 |
O Ministerio da Educacao propoe a estimacao do seguinte modelo para os salarios da amostra do Quebec:
Onde expersqᵢ = experᵢ² representa a experiencia ao quadrado para capturar a curvatura salarial.
O coeficiente β₁ mede o retorno marginal da escolaridade sobre os salarios. Mantendo a experiencia e os demais fatores constantes (ceteris paribus), ele indica o acrescimo medio no salario proporcionado por cada ano adicional de estudo do individuo no Quebec.
Como o modelo inclui a experiencia de forma quadratica, o efeito marginal da experiencia sobre o salario nao e constante, sendo dado por:
Esse efeito e positivo inicialmente (devido a β₂ > 0), mas decresce ao longo do tempo (devido a β₃ < 0), refletindo a concavidade tipica do perfil de rendimentos ao longo da vida profissional.
O valor-p associado ao coeficiente da escolaridade (β₁) e igual a 0.036 .
Como o valor-p (0.036) e menor do que o nivel de significancia padrao de 5% (α = 0.05), devemos rejeitar a hipotese nula H₀: β₁ = 0 . Isso demonstra que ha forte evidencia estatistica de que a escolaridade afeta de forma significativa os salarios.
10 Questões Integrais • Até 3 tentativas por questão
Abrange Mínimos Quadrados Ordinários, Variáveis Instrumentais, Variáveis Dummy, Estudo de Monte Carlo e Inferência.
0 de 10 questões concluídas
[Questão 1a - 5 pontos] Um pesquisador estima o modelo y = Xβ + ε sob a hipótese de que ε ~ N(0, Inσ²).
Se o termo de erro não seguir uma distribuição normal, o estimador de Mínimos Quadrados Ordinários (MQO) será viesado para β?
[Questão 1b - 5 pontos] Após estimar por MQO o modelo yi = β₁x₁i + β₂x₂i + εi, um pesquisador observa que:
onde ei representa o resíduo estimado. O pesquisador apresenta esse resultado como evidência favorável à exogeneidade e independência entre os erros e as explicativas. Ele tem razão?
[Questão 1c - 5 pontos] Considere os modelos:
onde X = (X₁ X₂) e PX = X(X'X)⁻¹X'. Os coeficientes estimados por MQO serão idênticos nos dois modelos?
[Questão 1d - 5 pontos] Considere novamente os modelos (2) y = X₁β₁ + X₂β₂ + ε e (3) PXy = X₁β₁ + X₂β₂ + ε.
Os resíduos estimados por MQO serão idênticos nos modelos (2) e (3)?
[Questão 2a - 10 pontos] Considere o modelo y = Xβ + ε e uma matriz Z tal que E[ε | X, Z] = 0 e a matriz Z'X é definida positiva (e inversível).
Qual é a demonstração formal para a não-viesosidade do estimador instrumental simplificado b̃ = (Z'X)⁻¹ Z'y?
[Questão 2b - 10 pontos] Sob as hipóteses da Questão 5 e assumindo homocedasticidade E[εε' | X, Z] = σ²In, compare a variância de b̃ = (Z'X)⁻¹ Z'y com a do estimador de MQO b = (X'X)⁻¹ X'y.
Por que b̃ é ineficiente em relação ao estimador de MQO?
[Questão 3a/3b - 10 pontos] Para analisar o prêmio salarial do setor privado no Québec em 2010 com dados de salário (y), escolaridade (educ), experiência (exper) e uma dummy de setor privado (priv = 1 se privado, 0 se público):
Qual especificação permite testar se os efeitos marginais do retorno da escolaridade e da experiência são diferentes entre o setor público e o privado?
[Questão 3c - 10 pontos] No modelo interativo ln(y) = β₀ + β₁educ + β₂exper + β₃priv + β₄(priv × educ) + β₅(priv × exper) + ε, deseja-se testar a hipótese de que a soma dos efeitos da escolaridade e experiência é a mesma nos setores público e privado (H₀: β₄ + β₅ = 0).
Какo realizar esse teste usando um teste t?
[Questão 4a/4b - 15 pontos] Os dados populacionais são gerados pelo modelo yi = β₀ + β₁x₁i + εi (modelo 4). Um pesquisador estima o modelo incorreto yi = β₀ + β₁x₁i + β₂x₂i + εi (modelo 5) e testa H₀: β₂ = 0 a um nível de significância α = 5%.
O que acontece com o viés de b₁ e qual é a taxa esperada de rejeição da hipótese nula H₀: β₂ = 0 no teste t?
[Questão 5 - 15 pontos] Considere a regressão de salários (y):
Estatísticas obtidas: educ (p = 0.036), exper (p = 0.000), expersq (p = 0.000). Considere as três afirmações abaixo:
Qual das opções a seguir é a correta?
Sua pontuação final:
0%