Questão 1

As variáveis da base de dados gpa1 incluem a nota média em um curso de ensino superior (\(colGPA\) ), a nota média do ensino médio (\(hsGPA\)) e a nota do teste de avaliação de conhecimentos para ingresso em curso superior (\(ACT\)) para uma amostra de 141 estudantes de uma grande universidade dos Estados Unidos, faça o que se pede:

  1. Estime o modelo abaixo em que em que \(hsGPA\) e \(ACT\) são determinantes de \(colGPA\) e interprete os coeficientes estimados.

\[colGPA = \beta_{1} + \beta_{2} hsGPA + \beta_{3}ACT + u\]

  1. Calcule as duas medidas de ajustamento apresentadas em sala.

  2. Teste a significância individual dos coeficientes estimados no item a.

  3. Teste a significância conjunta dos coeficientes estimados.

Solução

  1. Para estimar os coeficientes da equação de interesse, deve-se utilizar a fórmula abaixo:

\[ \hat{\beta} = (X^{´}X)^{-1}X^{´}Y\].

Computacionalmente, deve-se seguir os seeguintes passos:

Instalar e carregar os pacotes necessários:

library(tidyverse)  # Manipualação de dados
library(wooldridge) # Várias bases de dados

Carregar a base de dados a ser utilizada:

dados <- data("gpa1")

Construir as matrizes com variáveis dependente e explicativas

X <- cbind(1,gpa1$hsGPA,gpa1$ACT) # Variáveis explicativas
colnames(X) <- c("X1","X2","X3")

Y <- cbind(gpa1$colGPA) # Variável dependente
colnames(Y) <- "Y"

XX <- t(X)%*%X
XY <- t(X)%*%Y

Aplicar a fórmula de MQO para estimar os coeficientes de interesse:

beta_hat <- solve(t(X)%*%X)%*%XY
beta_hat
##              Y
## X1 1.286327767
## X2 0.453455885
## X3 0.009426012

o intercepto de 1,29 é o valor previsto de \(colGPA\) quando \(hsGPA\) e \(ACT\) forem iguais a zero. Como ninguém que frequenta um curso superior teve nota média no ensino médio igual a zero ou uma nota no teste de ingresso no curso superior igual a zero, o intercepto nessa equação não é, por si mesmo, significativo.

As estimativas mais interessantes são os coeficientes de inclinação de \(hsGPA\) e \(ACT\). Como esperado, há uma relação parcial positiva entre \(colGPA\) e \(hsGPA\): mantendo \(ACT\) fixo, um ponto adicional em \(hsGPA\) está associado a 0,453 de um ponto em \(colGPA\), ou quase meio ponto. Em outras palavras, se escolhermos dois estudantes, A e B, e esses estudantes tiverem a mesma nota \(ACT\), mas \(hsGPA\) do estudante A é um ponto maior que a \(hsGPA\) do estudante B, prevemos que o estudante A tem \(colGPA\) 0,453 maior que \(colGPA\) do estudante B.

  1. As medidas de ajustamento apresentadas em sala de aula foram o coefeciente de determinação (\(R^2\)) e sua versão ajustada (\(\bar{R}^2\)):

\[R^2 = 1 - \frac{SQR}{STQ}\] \[\bar{R}^2 = 1 - \frac{\frac{SQR}{N-K}}{\frac{STQ}{N-1}}\]

Onde \(STQ\) é a Soma Total dos Quadrados: \(\sum(Y_{i} - \bar{Y})^2\); \(SQR\) é a Soma dos Quadrados dos Resíduos \((\sum \hat{u_{i}}^2 = \sum(Y_{i} - \hat{Y_{i}})^2)\); \(N\) o número de observações e \(K\) a quantidade de parâmetros incluindo o intercepto.

Calculando \(\hat{u_{i}}\):

y_hat <- X%*%beta_hat # Valores previstos para a variável dependente

u_hat <- Y - y_hat # Resíduo estimado

Calculando STQ e SQR:

STQ <- sum((Y-mean(Y))^2)
SQR <- sum(u_hat^2)

Obtendo as medidas de ajustamento:

R2 <- 1-SQR/STQ
R2
## [1] 0.1764216
adjusted_R2 <- 1 - (SQR/(length(Y)-3))/(STQ/(length(Y)-1))
adjusted_R2
## [1] 0.1644857
  1. Para analisar a significância individual dos coeficientes, deve-se aplicar o teste t. Para isso, é necessário obter inicialmente o erro-padrão dos coeficientes estimados que pode ser obtido na matriz de variância-covariância dos .

\[V(\hat{\beta}|X) = \sigma^2(X^{´}X)^{-1}\] onde \(\sigma^2\) pode ser estimado por:

\[ \hat{\sigma}^2 = \frac{\sum \hat{u_{i}}^2}{N-K}\]

Assim, \(\hat{\sigma}^2\) é obtido da seguinte forma:

sigma2_hat <- sum(u_hat^2)/(length(Y)-3)

\(V(\hat{\beta}|X)\) então será dado por:

var_beta <- sigma2_hat*solve(t(X)%*%X)
var_beta
##              X1            X2            X3
## X1  0.116159717 -0.0226063687 -0.0015908486
## X2 -0.022606369  0.0091801149 -0.0003570767
## X3 -0.001590849 -0.0003570767  0.0001161478

Os testes t podem ser calculados como se segue:

t_beta1 <- (beta_hat[1] - 0)/sqrt(var_beta[1,1])
t_beta1
## [1] 3.774191
t_beta2 <- (beta_hat[2] - 0)/sqrt(var_beta[2,2])
t_beta2
## [1] 4.732722
t_beta3 <- (beta_hat[3] - 0)/sqrt(var_beta[3,3])
t_beta3
## [1] 0.8746263
  1. A significância conjunta, ou significância global, dos coeficientes estimados pode ser analisada pela aplicação do Teste F. Sua fórmula pode ser apresentada em função do \(R^2\) calculado anteriormente: \[F = \frac{\frac{R^2}{K-1}}{\frac{1-R^2}{N-K}}\]
F <- (R2/(3-1))/((1-R2)/(length(Y)-3))
F
## [1] 14.78073

Todos os resultados computados manualmente nos itens acima podem ser facilmente obtidos através do comando lm disponível nativamente no R através dos seguintes comandos:

Modelo1 <- lm(colGPA~hsGPA+ACT, data = gpa1)
summary(Modelo1)
## 
## Call:
## lm(formula = colGPA ~ hsGPA + ACT, data = gpa1)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.85442 -0.24666 -0.02614  0.28127  0.85357 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 1.286328   0.340822   3.774 0.000238 ***
## hsGPA       0.453456   0.095813   4.733 5.42e-06 ***
## ACT         0.009426   0.010777   0.875 0.383297    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3403 on 138 degrees of freedom
## Multiple R-squared:  0.1764, Adjusted R-squared:  0.1645 
## F-statistic: 14.78 on 2 and 138 DF,  p-value: 1.526e-06

Questão 2

Utilize dados da base crime4 para para estimar um modelo de taxas de criminalidade a nível municipal, utilizando apenas o ano de 1987.

  1. utilize todas as variáveis em forma logarítmica , estime um modelo relacionando a taxa de criminalidade às variáveis \(prbarr\), \(prbconv\), \(prbpris\) e \(avgsen\).

  2. Adicione \(log(crmrte)\) de 1986 como uma variável explicativa adicional e comente sobre como as elasticidades estimadas diferem da parte a.

  3. Adicione todas as variáveis de salário (novamente em logaritmos) ao modelo estimado no item b;

  4. Calcule a estatística F para a significância conjunta de todas as variáveis de salário usando o modelo restrito da parte b.

Solução

  1. Carregando e filtrando os dados necessários
data("crime4")

crime_1987 <- crime4 |>  # Filtrando apenas as observações referentes ao no de 1987
  filter(year==87)

Estimando o modelo utilizando o comando lm:

Modelo1_Q2 <- lm(lcrmrte ~ lprbarr + lprbconv + lprbpris + lavgsen, data = crime_1987)
summary(Modelo1_Q2)
## 
## Call:
## lm(formula = lcrmrte ~ lprbarr + lprbconv + lprbpris + lavgsen, 
##     data = crime_1987)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.36105 -0.19129  0.07939  0.27754  0.86843 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -4.86792    0.43153 -11.281  < 2e-16 ***
## lprbarr     -0.72397    0.11532  -6.278 1.39e-08 ***
## lprbconv    -0.47251    0.08311  -5.686 1.80e-07 ***
## lprbpris     0.15967    0.20644   0.773    0.441    
## lavgsen      0.07642    0.16347   0.467    0.641    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.429 on 85 degrees of freedom
## Multiple R-squared:  0.4162, Adjusted R-squared:  0.3888 
## F-statistic: 15.15 on 4 and 85 DF,  p-value: 2.171e-09

Devido à forma funcional log-log, todos os coeficientes são elasticidades. As elasticidades da criminalidade em relação às probabilidades de prisão e condenação têm o sinal esperado, e ambas são estatisticamente significativas. As elasticidades em relação à probabilidade de cumprir pena de prisão e à duração média da sentença são positivas, mas estatisticamente insignificantes.

  1. Adicionando a variável \(log(crmrte)\) de 1986 na base de dados
crime_1987 <- crime4 |> 
  mutate(lcrmrte_1=lag(lcrmrte)) |> 
  filter(year==87)

Estimando o modelo com a nova variável:

Modelo2_Q2 <- lm(lcrmrte ~ lcrmrte_1 +lprbarr + lprbconv + lprbpris + lavgsen, data = crime_1987)
summary(Modelo2_Q2)
## 
## Call:
## lm(formula = lcrmrte ~ lcrmrte_1 + lprbarr + lprbconv + lprbpris + 
##     lavgsen, data = crime_1987)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.28023 -0.08931  0.03055  0.11019  0.32422 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.76663    0.31310  -2.449  0.01643 *  
## lcrmrte_1    0.77981    0.04521  17.248  < 2e-16 ***
## lprbarr     -0.18504    0.06276  -2.948  0.00414 ** 
## lprbconv    -0.03868    0.04660  -0.830  0.40890    
## lprbpris    -0.12669    0.09885  -1.282  0.20351    
## lavgsen     -0.15202    0.07829  -1.942  0.05552 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2025 on 84 degrees of freedom
## Multiple R-squared:  0.8715, Adjusted R-squared:  0.8638 
## F-statistic: 113.9 on 5 and 84 DF,  p-value: < 2.2e-16

Há algumas mudanças notáveis nos coeficientes das variáveis originais. As elasticidades em relação a \(prbarr\) e \(prbconv\) são muito menores agora, mas ainda possuem os sinais previstos pela teoria do efeito dissuasor. A probabilidade de condenação não é mais estatisticamente significativa. Adicionar a taxa de criminalidade defasada altera os sinais das elasticidades em relação a \(prbpris\) e \(avgsen\), e esta última é quase estatisticamente significativa ao nível de 5%. Não é surpreendente que a elasticidade em relação à taxa de criminalidade defasada seja grande e muito estatisticamente significativa.

  1. O modelo com a adição de variáveis explicativas de salário é estimado da seguinte forma:
Modelo3_Q2 <- lm(lcrmrte ~ lcrmrte_1 +lprbarr + lprbconv + lprbpris + lavgsen +
                   lwcon+lwtuc+lwtrd+lwfir+lwser+lwmfg+lwfed+
                   lwsta+lwloc, data = crime_1987)
summary(Modelo3_Q2)
## 
## Call:
## lm(formula = lcrmrte ~ lcrmrte_1 + lprbarr + lprbconv + lprbpris + 
##     lavgsen + lwcon + lwtuc + lwtrd + lwfir + lwser + lwmfg + 
##     lwfed + lwsta + lwloc, data = crime_1987)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.08551 -0.08893  0.01248  0.10860  0.35101 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -3.79253    1.95747  -1.937   0.0565 .  
## lcrmrte_1    0.74534    0.05303  14.054   <2e-16 ***
## lprbarr     -0.17251    0.06595  -2.616   0.0108 *  
## lprbconv    -0.06836    0.04973  -1.375   0.1733    
## lprbpris    -0.21556    0.10240  -2.105   0.0386 *  
## lavgsen     -0.19605    0.08446  -2.321   0.0230 *  
## lwcon       -0.28500    0.17752  -1.605   0.1126    
## lwtuc        0.06413    0.13433   0.477   0.6344    
## lwtrd        0.25371    0.23174   1.095   0.2771    
## lwfir       -0.08353    0.19650  -0.425   0.6720    
## lwser        0.11275    0.08474   1.331   0.1874    
## lwmfg        0.09874    0.11861   0.832   0.4078    
## lwfed        0.33613    0.24531   1.370   0.1747    
## lwsta        0.03951    0.20721   0.191   0.8493    
## lwloc       -0.03699    0.32915  -0.112   0.9108    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1973 on 75 degrees of freedom
## Multiple R-squared:  0.8911, Adjusted R-squared:  0.8707 
## F-statistic: 43.81 on 14 and 75 DF,  p-value: < 2.2e-16
  1. Desejamos testar se os coeficientes estimados para as variáveis são estatisticamente iguais a zero. Para isso, utiliza-se o Teste com os resíduos dos modelos restrito e irrestrito.

Calculando manualmente o teste:

SQR_r <- sum(Modelo2_Q2$residuals^2) #Soma dos quadrados dos resíduos do modelo restrito
SQR_r
## [1] 3.444725
SQR_u <- sum(Modelo3_Q2$residuals^2) #Soma dos quadrados dos resíduos do modelo irrestrito
SQR_u
## [1] 2.919821
F <- ((SQR_r - SQR_u)/9)/(SQR_u/(90-15))
F
## [1] 1.498106

Calculando através da função linearHypothesis do pacote car

library(car)



linearHypothesis(Modelo3_Q2, c("lwcon=0","lwtuc=0","lwtrd=0","lwfir=0","lwser=0",
                            "lwmfg=0","lwfed=0","lwsta=0","lwloc=0"), test = "F")
## Linear hypothesis test
## 
## Hypothesis:
## lwcon = 0
## lwtuc = 0
## lwtrd = 0
## lwfir = 0
## lwser = 0
## lwmfg = 0
## lwfed = 0
## lwsta = 0
## lwloc = 0
## 
## Model 1: restricted model
## Model 2: lcrmrte ~ lcrmrte_1 + lprbarr + lprbconv + lprbpris + lavgsen + 
##     lwcon + lwtuc + lwtrd + lwfir + lwser + lwmfg + lwfed + lwsta + 
##     lwloc
## 
##   Res.Df    RSS Df Sum of Sq      F Pr(>F)
## 1     84 3.4447                           
## 2     75 2.9198  9    0.5249 1.4981 0.1643

As nove variáveis de salário são conjuntamente insignificantes, mesmo ao nível de 15%. Além disso, as elasticidades não são consistentemente positivas ou negativas. As duas maiores elasticidades – que também têm os maiores valores absolutos das estatísticas t – têm sinais opostos. Estas são em relação ao salário na construção (-0,285) e ao salário para funcionários federais (0,336).

Questão 3

Considere uma equação para explicar os salários dos diretores executivos em termos das vendas anuais das empresas (vendas), dos retornos das ações sobre o patrimônio (\(roe\), na forma percentual) e dos retornos das ações sobre o valor das ações das empresas (\(ros\), na forma percentual):

\[log(salary) = \beta_{0} + \beta_{1}log(sales) + \beta_{2}roe + \beta_{3}ros + u\]

  1. Usando os dados em ceosal1, estime a equação acima por MQO. Se \(ros\) aumenta em 50 pontos, qual é a variação percentual prevista em salário? Na prática, \(ros\) tem um efeito grande sobre salário?

  2. Teste a hipótese nula de que \(ros\) não tem efeito sobre o salário.

  3. Você incluiria \(ros\) no modelo final que explica a remuneração dos diretores executivos em termos do desempenho das empresas? Explique.

Solução

  1. Carregando os dados necessários
data("ceosal1")

Estimando o modelo:

Modelo1_Q3 <- lm(lsalary ~ lsales + roe + ros, data = ceosal1)
summary(Modelo1_Q3)
## 
## Call:
## lm(formula = lsalary ~ lsales + roe + ros, data = ceosal1)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.96060 -0.27144 -0.03264  0.22563  2.79805 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 4.3117125  0.3154329  13.669  < 2e-16 ***
## lsales      0.2803149  0.0353200   7.936 1.34e-13 ***
## roe         0.0174168  0.0040923   4.256 3.17e-05 ***
## ros         0.0002417  0.0005418   0.446    0.656    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4832 on 205 degrees of freedom
## Multiple R-squared:  0.2827, Adjusted R-squared:  0.2722 
## F-statistic: 26.93 on 3 and 205 DF,  p-value: 1.001e-14

O efeito proporcional sobre o salário é 0,00024(50) = 0,012. Para obter o efeito percentual, multiplicamos isso por 100: 1,2%. Portanto, um aumento de 50 pontos ceteris paribus em \(ros\) é previsto para aumentar o salário em apenas 1,2%. Em termos práticos, este é um efeito muito pequeno para uma mudança tão grande em \(ros\).

  1. Com base nesta amostra, o coeficiente estimado de \(ros\) parece ser diferente de zero apenas por causa da variação amostral. Por outro lado, incluir \(ros\) pode não estar causando nenhum mal; isso depende de quão correlacionado ele está com as outras variáveis independentes (embora estas sejam muito significativas, mesmo com \(ros\) na equação).